← Todas las extensiones

Extensión nativa

KlugKeychain

com.klug.keychain.Keychain

NO NECESITAS APM. Descarga y disfruta. No puede ser más sencillo.

Almacenamiento seguro de pares clave/valor en el llavero del sistema para apps AIR. Los valores sobreviven a la desinstalación y reinstalación de la app.

iOSmacOS En producción Desde €19 / año · Comprar

Resumen

KlugKeychain guarda valores pequeños, como indicadores, tokens o ID, en el llavero de iOS y macOS. A diferencia del almacenamiento normal de la app, el llavero conserva estos valores cuando la app se desinstala y se vuelve a instalar.

Eso lo convierte en un ancla duradera para lo que una app necesita recordar entre reinstalaciones, por ejemplo si un dispositivo ya ha usado una prueba gratuita o si una cuenta se eliminó antes.

KlugKeychain se usa a diario en nuestras apps, nuestra prueba de concepto.

Funciones

  • Autónoma: una ANE, sin biblioteca central ni ANE de dependencias que añadir
  • Guardar, leer, comprobar y eliminar valores por clave
  • Los valores sobreviven a la desinstalación y reinstalación de la app
  • Cifrados por el sistema operativo en el llavero del sistema
  • Una única API para iOS y macOS
  • Llamadas síncronas sencillas, sin eventos que gestionar

Plataformas compatibles

iOS arm64
macOS Apple silicon · Intel

En otras plataformas isSupported devuelve false, por lo que el mismo código puede permanecer en una app multiplataforma.

En Android, KlugDeviceId ofrece la misma ancla a prueba de reinstalaciones: el ID de dispositivo de Android sigue siendo el mismo después de desinstalar e instalar de nuevo la app.

Primeros pasos

Añade la extensión al descriptor de tu aplicación:

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

En macOS la app debe firmarse con un entitlement de grupo de acceso al llavero. En iOS no se necesita ningún entitlement adicional.

Ejemplos de código

Tres flujos completos. Todas las llamadas son síncronas y devuelven de inmediato; los valores son cadenas. Documentación completa →

1 · Comprobar la compatibilidad y elegir una 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 · Recordar una prueba gratuita entre reinstalaciones
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 · Guardar, leer y eliminar un 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" );

Resumen de la API

Keychain.getInstance()Devuelve la instancia única.
isSupportedVerdadero en iOS. En macOS, verdadero cuando la app está firmada con un entitlement de grupo de acceso al llavero; falso en otras plataformas.
set(key, value)Guarda una cadena, sustituyendo la existente. Devuelve true si tiene éxito; false si no es compatible o si key o value son null.
get(key)Devuelve el valor almacenado, o una cadena vacía si no hay ninguno.
has(key)Verdadero si hay un valor almacenado para la clave.
remove(key)Elimina el valor. Devuelve true cuando la clave ya no existe.
AlmacenamientoElementos de contraseña genéricos de tu app, legibles tras el primer desbloqueo del dispositivo, también en segundo plano.

Compra KlugKeychain

Una licencia anual para una aplicación AIR, con todas las actualizaciones durante 12 meses. Tras el pago recibes la extensión, la biblioteca ActionScript y la documentación por e-mail, normalmente en un día hábil. Licencia y términos

Simple
€19 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Sin soporte
Comprar Simple
Standard
€149 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 7 días
Comprar Standard
Priority
€299 / año
  • Licencia para una aplicación AIR
  • Todas las actualizaciones durante 12 meses
  • Respuesta por e-mail en un plazo de 48 horas
Comprar Priority
Link (Stripe) calcula los impuestos al pagar. Durante el pago indicas el ID de aplicación de tu app AIR.

Requisitos

AIR SDK51.x (HARMAN)
iOSiOS 17 o posterior
macOSmacOS 11 o posterior
Firma (macOS)Entitlement de grupo de acceso al llavero