Salta ai contenuti

Quickstart iOS

In pochi minuti la tua app iOS leggerà un feature flag vero — con cache, fallback offline e l’identità del dispositivo gestita per te.

Richiede iOS 17, macOS 14 o visionOS 1. L’SDK non ha dipendenze proprie.

L’SDK vive in un repository pubblico su GitHub — aggiungilo direttamente da lì come Swift Package, in Xcode (File → Add Package Dependencies…) o in Package.swift:

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

Una volta, all’avvio — per SwiftUI, l’init della tua App è il posto naturale:

import FortressFlag
FortressFlag.start(
Configuration(
sdkKey: "ffc_prod_…", // dalla schermata Chiavi SDK del tuo progetto
environment: .production,
keychainAccessGroup: "com.acme.fortressflag" // la stessa stringa in ogni app che pubblichi
)
)

start ritorna non appena i valori in cache sono caricati, e da quel momento l’SDK fa poll per le modifiche in background. La chiave è una chiave client — viaggia nella tua app per progettazione.

Ovunque, anche dentro un body SwiftUI:

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

I flag stringa e numerici si leggono allo stesso modo — FortressFlag.stringValue("checkout-cta", default: "buy-now") — e puoi osservare le modifiche con FortressFlag.onChange.

Fatto — il tuo flag è online. Cambialo nella dashboard e l’app lo segue al suo prossimo poll.

Nessuna chiamata di questa API lancia eccezioni, blocca o può far crashare la tua app. Ogni lettura si risolve attraverso una cascata — gli ultimi valori ricevuti, poi la cache durevole delle esecuzioni precedenti, poi il valore predefinito nel punto di chiamata — così un’interruzione, una rete morta o una chiave revocata non raggiungono mai i tuoi utenti.

Configura la condivisione del keychain — non farlo ti costa soldi

Sezione intitolata “Configura la condivisione del keychain — non farlo ti costa soldi”

FortressFlag fattura per dispositivo, non per app. Un telefono con tre delle tue app è una postazione — ma solo se tutte e tre concordano su un’unica identità del dispositivo, il che su iOS significa un access group del keychain condiviso:

  1. In ogni target dell’app: Signing & Capabilities → + Capability → Keychain Sharing.
  2. Aggiungi lo stesso gruppo a ognuna delle tue app — per esempio com.acme.fortressflag.
  3. Passa quella stringa (senza il prefisso del team) come keychainAccessGroup.

Salta questo passaggio e tutto funziona comunque, ma ogni app memorizza la propria identità: un dispositivo conta come tre dispositivi fatturabili. L’SDK registra un avviso una volta quando sta succedendo.

Una nota di piattaforma: l’identità vive nel keychain, quindi su iOS sopravvive alla disinstallazione dell’app — e non viene mai sincronizzata su iCloud, quindi non viaggia mai con un backup su un secondo dispositivo.

Il pacchetto include una seconda libreria, FortressFlagDebugUI, con FlagListView — una schermata SwiftUI che mostra ogni flag che questo dispositivo detiene, il suo valore e da dove proviene, in tempo reale. È la risposta più rapida a «ma l’SDK sta parlando con il server?».