Ir al contenido

Guía rápida de iOS

En unos minutos tu app de iOS leerá un feature flag real — con caché, respaldo sin conexión y la identidad del dispositivo gestionada por ti.

Requiere iOS 17, macOS 14 o visionOS 1. El SDK no tiene dependencias propias.

El SDK vive en un repositorio público en GitHub — añádelo directamente desde ahí como paquete Swift, en Xcode (File → Add Package Dependencies…) o en Package.swift:

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

Una vez, al iniciar — en SwiftUI, el init de tu App es el sitio natural:

import FortressFlag
FortressFlag.start(
Configuration(
sdkKey: "ffc_prod_…", // de la pantalla Claves SDK de tu proyecto
environment: .production,
keychainAccessGroup: "com.acme.fortressflag" // la misma cadena en cada app que publiques
)
)

start vuelve en cuanto se cargan los valores en caché, y a partir de ahí el SDK sondea en busca de cambios en segundo plano. La clave es una clave de cliente — viaja en tu app por diseño.

En cualquier sitio, incluido dentro de un body de SwiftUI:

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

Los flags de cadena y numéricos se leen igual — FortressFlag.stringValue("checkout-cta", default: "buy-now") — y puedes observar los cambios con FortressFlag.onChange.

Eso es todo — tu flag está activo. Cámbialo en el panel y la app le sigue en su siguiente sondeo.

Ninguna llamada de esta API lanza excepciones, bloquea ni puede hacer que tu app se cierre. Cada lectura se resuelve a través de una cascada — los últimos valores recibidos, después la caché duradera de ejecuciones anteriores, después tu valor por defecto en el punto de llamada — así que una caída, una red muerta o una clave revocada nunca llegan a tus usuarios.

Configura el llavero compartido — no hacerlo te cuesta dinero

Sección titulada «Configura el llavero compartido — no hacerlo te cuesta dinero»

FortressFlag factura por dispositivo, no por app. Un teléfono que ejecuta tres de tus apps es un puesto — pero solo si las tres se ponen de acuerdo en una identidad de dispositivo, lo que en iOS significa un grupo de acceso al llavero compartido:

  1. En cada target de app: Signing & Capabilities → + Capability → Keychain Sharing.
  2. Añade el mismo grupo a cada una de tus apps — por ejemplo com.acme.fortressflag.
  3. Pasa esa cadena (sin el prefijo del equipo) como keychainAccessGroup.

Sáltate esto y todo sigue funcionando, pero cada app guarda su propia identidad: un dispositivo cuenta como tres dispositivos facturables. El SDK registra un aviso una vez cuando eso está ocurriendo.

Una nota de plataforma: la identidad vive en el llavero, así que en iOS sobrevive a las desinstalaciones de la app — y nunca se sincroniza con iCloud, así que nunca viaja en una copia de seguridad hasta un segundo dispositivo.

El paquete incluye una segunda biblioteca, FortressFlagDebugUI, con FlagListView — una pantalla SwiftUI que muestra cada flag que tiene este dispositivo, su valor y de dónde vino, en directo. Es la respuesta más rápida a «¿está el SDK siquiera hablando con el servidor?».