Pular para o conteúdo

Quickstart de iOS

Em poucos minutos o seu app iOS vai ler uma feature flag de verdade — com cache, fallback offline e a identidade do dispositivo cuidada para você.

Requer iOS 17, macOS 14 ou visionOS 1. O SDK não tem dependências próprias.

O SDK mora em um repositório público no GitHub — adicione-o direto de lá como um Swift Package, no Xcode (File → Add Package Dependencies…) ou no Package.swift:

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

Uma vez, na inicialização — para SwiftUI, o init do seu App é o lugar natural:

import FortressFlag
FortressFlag.start(
Configuration(
sdkKey: "ffc_prod_…", // da tela Chaves de SDK do seu projeto
environment: .production,
keychainAccessGroup: "com.acme.fortressflag" // a mesma string em todo app que você publica
)
)

start retorna assim que os valores em cache são carregados, e a partir daí o SDK consulta mudanças em segundo plano. A chave é uma chave de cliente — ela viaja no seu app por design.

Em qualquer lugar, inclusive dentro de um body do SwiftUI:

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

Flags de string e de número são lidas do mesmo jeito — FortressFlag.stringValue("checkout-cta", default: "buy-now") — e você pode observar mudanças com FortressFlag.onChange.

É isso — a sua flag está no ar. Ligue-a no painel e o app acompanha no próximo polling.

Nenhuma chamada desta API lança exceção, bloqueia ou consegue derrubar o seu app. Toda leitura resolve por uma cascata — os últimos valores recebidos, depois o cache durável de execuções anteriores, depois o padrão do ponto de chamada — então uma queda, uma rede morta ou uma chave revogada nunca chegam aos seus usuários.

Configure o compartilhamento de keychain — não fazer isso custa dinheiro

Seção intitulada “Configure o compartilhamento de keychain — não fazer isso custa dinheiro”

O FortressFlag cobra por dispositivo, não por app. Um celular rodando três dos seus apps é um assento — mas só se os três concordarem em uma única identidade de dispositivo, o que no iOS significa um grupo de acesso ao keychain compartilhado:

  1. Em cada target de app: Signing & Capabilities → + Capability → Keychain Sharing.
  2. Adicione o mesmo grupo a todos os seus apps — por exemplo com.acme.fortressflag.
  3. Passe essa string (sem o prefixo do time) como keychainAccessGroup.

Pule isso e tudo continua funcionando, mas cada app armazena a própria identidade: um dispositivo conta como três dispositivos cobráveis. O SDK registra um aviso uma vez quando isso está acontecendo.

Uma nota de plataforma: a identidade vive no keychain, então no iOS ela sobrevive à desinstalação do app — e nunca é sincronizada com o iCloud, então nunca pega carona em um backup para um segundo dispositivo.

O pacote traz uma segunda biblioteca, FortressFlagDebugUI, com FlagListView — uma tela SwiftUI mostrando toda flag que este dispositivo tem, o valor dela e de onde veio, ao vivo. É a resposta mais rápida para “o SDK está sequer falando com o servidor?”.