Configuración persistente de la aplicación iOS después de la aplicación eliminada

Estamos creando una aplicación de la siguiente manera:

  • El usuario comienza con 2 "tokens" gratis
  • El usuario puede comprar un package de 10 tokens con una compra en la aplicación de $ .99.

Hemos implementado esto usando NSUserDefaults para save el número de tokens.

¿Hay alguna manera de hacer que nuestra configuration de token 2 libre sea persistente? ¿Incluso si borran la aplicación? En este momento puede eliminar la aplicación y volver a instalarla para get 2 tokens nuevamente. iOS 5 tiene NSUbiquitousKeyValueStore para save configuraciones en iCloud, ¿es eso mejor?

Si no, tendremos que usar un service web para esto …

NOTA: esta aplicación está en MonoTouch, pero probablemente no sea pertinente a la pregunta. Además, en nuestra aplicación, al usuario no le gustaría volver a instalar la aplicación para get 2 tokens más (no hay otra configuration o progreso del juego que perderían).

Solo mi 2c ya que @Almo cubre la mayor parte de esto y debería get los créditos 🙂

NSUbiquitousKeyValueStore tiene la ventaja de ser por usuario, por ejemplo, varios dispositivos compartirían los mismos tokens gratuitos. OTOH que tal vez no sea algo que quieras en tu aplicación …

Dejar los datos después de la desinstallation va en contra del sandboxing de las aplicaciones. Hay forms de hacerlo, como si pudiera agregar imágenes / fotos / contactos / …, pero es poco probable que sea "aprobado por Apple" y más que probable que sea fácil de piratear.

Entonces, también sugiero que use un service web. Una forma sencilla sería validar con el service (p. Ej., Utilizando la dirección MAC del dispositivo ya que el identificador único del dispositivo desaparece) cuando no se encuentran datos de la aplicación (installation y reinstallation) si se trata de un dispositivo conocido (no token) o no (get fichas).

Si los tokens pagados son reutilizables (podrían volver a reproducirse volviendo a instalar una copy de security que los incluye como datos), entonces es posible que desee rastrearlos con el service web. Los tokens no reutilizables no sufrirán de esto (y probablemente sean más fáciles de manejar).

Puede establecer el token en el llavero. Si el usuario desinstala la aplicación y la instala de nuevo, puede restaurar el token desde el llavero.

sskeychain

Incluso si intenta hacer que la configuration sea persistente, no creo que sea tan difícil para ellos encontrarlo y eliminarlo también durante una reinstallation. Si quiere evitar solo hacer trampa ocasional, tal vez esté bien. Pero si este es su flujo de ingresos, recomiendo utilizar un service web.

Editado para agregar: no tengo ninguna experiencia con iCloud. Eso podría tener sentido también.