← Todas as extensões

Extensão nativa

KlugKeychain

com.klug.keychain.Keychain

NÃO É NECESSÁRIO APM. Baixe e aproveite. Não tem como ser mais simples.

Armazenamento seguro de chave/valor no keychain do sistema para apps AIR. Os valores sobrevivem à desinstalação e reinstalação do app.

iOSmacOS Em produção A partir de €19 / ano · Comprar

Visão geral

O KlugKeychain guarda pequenos valores, como flags, tokens ou IDs, no keychain do iOS e macOS. Diferente do armazenamento normal do app, o keychain mantém esses valores quando o app é desinstalado e instalado de novo.

Isso o torna uma âncora durável para o que um app precisa lembrar entre reinstalações, por exemplo se um dispositivo já usou um teste gratuito ou se uma conta já foi excluída antes.

O KlugKeychain é usado diariamente em nossos apps, nossa prova de conceito.

Recursos

  • Autossuficiente: uma ANE, sem biblioteca principal nem ANEs de dependência para adicionar
  • Armazene, leia, verifique e remova valores por chave
  • Os valores sobrevivem à desinstalação e reinstalação do app
  • Criptografado pelo sistema operacional no keychain do sistema
  • Uma única API para iOS e macOS
  • Chamadas síncronas simples, sem eventos para tratar

Plataformas compatíveis

iOS arm64
macOS Apple silicon · Intel

Em outras plataformas, isSupported retorna false, de modo que o mesmo código pode permanecer em um app multiplataforma.

No Android, o KlugDeviceId oferece a mesma âncora à prova de reinstalação: o ID de dispositivo do Android continua o mesmo depois que o app é desinstalado e instalado de novo.

Primeiros passos

Adicione a extensão ao descritor do seu aplicativo:

app.xml
<extensions>
    <extensionID>com.klug.keychain.Keychain</extensionID>
</extensions>

No macOS, o app precisa ser assinado com uma entitlement de keychain access group. No iOS, nenhuma entitlement extra é necessária.

Exemplos de código

Três fluxos completos. Todas as chamadas são síncronas e retornam imediatamente; os valores são strings. Documentação completa →

1 · Verificar o suporte e escolher uma alternativa
Setup.as
import com.klug.keychain.Keychain;

var keychain:Keychain = Keychain.getInstance();

// iOS: always true.
// macOS: true only if the app is signed with a keychain access group entitlement;
//        the extension checks this with a test write.
// Android, Windows: false, and every call is a safe no-op.
if ( !keychain.isSupported )
    useLocalStorage();   // your app's fallback, e.g. a SharedObject
2 · Lembrar um teste gratuito entre reinstalações
Trial.as
const TRIAL_DAYS:Number = 7;

if ( keychain.has( "trialStarted" ) )
{
    var started:Number = Number( keychain.get( "trialStarted" ) );
    var days:Number = ( new Date().time - started ) / 86400000;
    if ( days > TRIAL_DAYS ) showPurchaseScreen();   // your app
}
else
{
    // stays in the keychain after the app is uninstalled and installed again
    keychain.set( "trialStarted", String( new Date().time ) );
}
3 · Armazenar, ler e remover um valor
Account.as
// set() replaces an existing value; false = not stored
if ( !keychain.set( "accountId", accountId ) )
    trace( "keychain: value not stored" );

// get() returns "" when nothing is stored
var id:String = keychain.get( "accountId" );
if ( id == "" ) showSignIn();   // your app

// sign-out: remove what the app no longer needs;
// true also when the key was already gone
keychain.remove( "accountId" );

Visão geral da API

Keychain.getInstance()Retorna a instância única.
isSupportedVerdadeiro no iOS. No macOS, verdadeiro quando o app é assinado com uma entitlement de keychain access group; falso nas demais plataformas.
set(key, value)Armazena uma string, substituindo uma existente. Retorna true em caso de sucesso; false se não houver suporte ou se a chave ou o valor for null.
get(key)Retorna o valor armazenado, ou uma string vazia se não houver nenhum.
has(key)Verdadeiro se há um valor armazenado para a chave.
remove(key)Remove o valor. Retorna true quando a chave deixa de existir.
ArmazenamentoItens de senha genéricos do seu app, legíveis após o primeiro desbloqueio do dispositivo, também em segundo plano.

Compre o KlugKeychain

Uma licença anual para um app AIR, com todas as atualizações por 12 meses. Após o pagamento, você recebe a extensão, a biblioteca ActionScript e a documentação por e-mail, normalmente em até um dia útil. Licença e termos

Simples
€19 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Sem suporte
Comprar Simples
Padrão
€149 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Resposta por e-mail em até 7 dias
Comprar Padrão
Prioritário
€299 / ano
  • Licença para um app AIR
  • Todas as atualizações por 12 meses
  • Resposta por e-mail em até 48 horas
Comprar Prioritário
Os impostos são calculados no checkout pelo Link (Stripe). Você informa o ID do aplicativo do seu app AIR durante o checkout.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 ou posterior
macOSmacOS 11 ou posterior
Assinatura (macOS)Entitlement de keychain access group