Zum Inhalt springen

iOS-Quickstart

In ein paar Minuten liest deine iOS-App ein echtes Feature Flag — mit Caching, Offline-Fallback und einer Geräteidentität, um die du dich nicht kümmern musst.

Erfordert iOS 17, macOS 14 oder visionOS 1. Das SDK hat keine eigenen Abhängigkeiten.

Das SDK liegt in einem öffentlichen Repository auf GitHub — füge es direkt von dort als Swift Package hinzu, in Xcode (File → Add Package Dependencies…) oder in Package.swift:

.package(url: "https://github.com/FortressFlag/FortressFlag_SDK_ios.git", from: "1.0.0")

Einmal, beim Start — für SwiftUI ist das init deiner App der natürliche Ort:

import FortressFlag
FortressFlag.start(
Configuration(
sdkKey: "ffc_prod_…", // aus dem Bildschirm SDK-Schlüssel deines Projekts
environment: .production,
keychainAccessGroup: "com.acme.fortressflag" // derselbe String in jeder App, die du auslieferst
)
)

start kehrt zurück, sobald die gecachten Werte geladen sind, und das SDK fragt von da an im Hintergrund nach Änderungen. Der Schlüssel ist ein Client-Schlüssel — er steckt by design in deiner App.

Überall, auch innerhalb eines SwiftUI-Bodys:

if FortressFlag.isEnabled("new-checkout") {
NewCheckoutView()
} else {
LegacyCheckoutView()
}

String- und Number-Flags liest du genauso — FortressFlag.stringValue("checkout-cta", default: "buy-now") —, und auf Änderungen kannst du mit FortressFlag.onChange hören.

Das war’s — dein Flag ist live. Schalte es im Dashboard um, und die App folgt mit ihrer nächsten Abfrage.

Wenn FortressFlag ausfällt, fällt deine App nicht aus

Abschnitt betitelt „Wenn FortressFlag ausfällt, fällt deine App nicht aus“

Kein Aufruf in dieser API wirft, blockiert oder kann deine App zum Absturz bringen. Jede Lesung löst sich über eine Kaskade auf — die zuletzt empfangenen Werte, dann der dauerhafte Cache aus früheren Läufen, dann dein Standard an der Aufrufstelle —, sodass ein Ausfall, ein totes Netzwerk oder ein widerrufener Schlüssel deine Nutzer nie erreicht.

Richte Keychain-Sharing ein — es kostet dich Geld, es nicht zu tun

Abschnitt betitelt „Richte Keychain-Sharing ein — es kostet dich Geld, es nicht zu tun“

FortressFlag rechnet pro Gerät ab, nicht pro App. Ein Telefon mit drei deiner Apps ist ein Seat — aber nur, wenn sich alle drei auf eine Geräteidentität einigen, was auf iOS eine gemeinsame Keychain-Zugriffsgruppe bedeutet:

  1. In jedem App-Target: Signing & Capabilities → + Capability → Keychain Sharing.
  2. Füge dieselbe Gruppe zu jeder deiner Apps hinzu — zum Beispiel com.acme.fortressflag.
  3. Übergib diesen String (ohne das Team-Präfix) als keychainAccessGroup.

Lässt du das aus, funktioniert trotzdem alles, aber jede App speichert ihre eigene Identität: Ein Gerät zählt als drei abrechenbare Geräte. Das SDK loggt einmal eine Warnung, wenn das passiert.

Ein Plattformhinweis: Die Identität lebt in der Keychain, auf iOS überlebt sie also App-Deinstallationen — und sie wird nie mit iCloud synchronisiert, wandert also nie per Backup auf ein zweites Gerät.

Das Package liefert eine zweite Library, FortressFlagDebugUI, mit FlagListView — einem SwiftUI-Bildschirm, der live jedes Flag zeigt, das dieses Gerät hält, seinen Wert und woher er kam. Es ist die schnellste Antwort auf „Redet das SDK überhaupt mit dem Server?“.