← Toutes les extensions

Extension native

KlugKeychain

com.klug.keychain.Keychain

AUCUN APM NÉCESSAIRE. Téléchargez et profitez-en. Impossible de faire plus simple.

Stockage clé/valeur sécurisé dans le trousseau du système pour les applications AIR. Les valeurs survivent à la désinstallation et à la réinstallation de l’application.

iOSmacOS En production À partir de €19 / an · Acheter

Vue d’ensemble

KlugKeychain stocke de petites valeurs, telles que des indicateurs, des jetons ou des identifiants, dans le trousseau d’iOS et de macOS. Contrairement au stockage normal d’une application, le trousseau conserve ces valeurs lorsque l’application est désinstallée puis réinstallée.

Cela en fait une ancre durable pour tout ce qu’une application doit retenir d’une réinstallation à l’autre, par exemple si un appareil a déjà utilisé un essai gratuit ou si un compte a déjà été supprimé.

KlugKeychain est utilisé chaque jour dans nos applications, notre preuve de concept.

Fonctionnalités

  • Autonome : une seule ANE, sans bibliothèque centrale ni ANE de dépendance à ajouter
  • Stocker, lire, vérifier et supprimer des valeurs par clé
  • Les valeurs survivent à la désinstallation et à la réinstallation de l’application
  • Chiffrées par le système d’exploitation dans le trousseau système
  • Une seule API pour iOS et macOS
  • Appels synchrones simples, aucun événement à gérer

Plateformes prises en charge

iOS arm64
macOS Apple silicon · Intel

Sur les autres plateformes, isSupported renvoie false : le même code peut donc rester dans une application multiplateforme.

Sur Android, KlugDeviceId fournit la même ancre résistante à la réinstallation : l’identifiant d’appareil Android reste identique après la désinstallation puis la réinstallation de l’application.

Prise en main

Ajoutez l’extension au descripteur de votre application :

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

Sur macOS, l’application doit être signée avec un droit (entitlement) de groupe d’accès au trousseau. Sur iOS, aucun droit supplémentaire n’est nécessaire.

Exemples de code

Trois flux complets. Tous les appels sont synchrones et retournent immédiatement ; les valeurs sont des chaînes. Documentation complète →

1 · Vérifier la prise en charge et choisir une solution de repli
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 · Mémoriser un essai gratuit d’une réinstallation à l’autre
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 · Stocker, lire et supprimer une valeur
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" );

Aperçu de l’API

Keychain.getInstance()Renvoie l’instance unique.
isSupportedVrai sur iOS. Sur macOS, vrai lorsque l’application est signée avec un droit (entitlement) de groupe d’accès au trousseau ; faux sur les autres plateformes.
set(key, value)Stocke une chaîne en remplaçant une éventuelle valeur existante. Renvoie true en cas de succès ; false si non pris en charge ou si la clé ou la valeur est null.
get(key)Renvoie la valeur stockée, ou une chaîne vide s’il n’y en a pas.
has(key)Vrai si une valeur est stockée pour la clé.
remove(key)Supprime la valeur. Renvoie true une fois que la clé n’existe plus.
StockageÉléments de type mot de passe générique de votre application, lisibles après le premier déverrouillage de l’appareil, y compris en arrière-plan.

Acheter KlugKeychain

Une licence annuelle pour une application AIR, avec toutes les mises à jour pendant 12 mois. Après le paiement, vous recevez l’extension, la bibliothèque ActionScript et la documentation par e-mail, généralement sous un jour ouvré. Licence et conditions

Simple
€19 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Sans support
Acheter Simple
Standard
€149 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Réponse par e-mail sous 7 jours
Acheter Standard
Priority
€299 / an
  • Licence pour une application AIR
  • Toutes les mises à jour pendant 12 mois
  • Réponse par e-mail sous 48 heures
Acheter Priority
Les taxes sont calculées lors du paiement par Link (Stripe). Vous saisissez l’identifiant d’application de votre app AIR pendant le paiement.

Prérequis

SDK AIR51.x (HARMAN)
iOSiOS 17 ou version ultérieure
macOSmacOS 11 ou version ultérieure
Signature (macOS)Droit (entitlement) de groupe d’accès au trousseau