para pago paga gratis descargar cuenta crear apps apple app aplicaciones ios in-app-purchase app-store

pago - Convierta la aplicación paga de iOS existente en el modelo de freemium con la compra en la aplicación



itunes crear cuenta (5)

Actualmente tengo una aplicación paga en la tienda. Apple no ha permitido que se envíe una versión ''lite'', así que no tengo más remedio que actualizar la versión paga actual a un modelo freemium (con la compra en la aplicación). Tengo el problema de no perder funcionalidad para los usuarios de v1 que compraron la aplicación la primera vez.

¿Hay alguna forma de determinar si una aplicación se ha actualizado desde una versión previamente instalada para que pueda desbloquear las partes pagas de la aplicación?

Dos preguntas similares (desde hace algunos meses):

Transición de una aplicación pagada existente a una versión gratuita con la compra en la aplicación

iPhone + actualice la aplicación pagada existente en la tienda de aplicaciones a la aplicación gratuita con la compra In App + qué pasa con los clientes que ya compraron la aplicación paga


Ahora hay una forma aprobada por Apple de hacer esto tanto en iOS como en macOS. La versión descargada originalmente de la aplicación se puede obtener del recibo utilizando la clave de información Original Purchased Version . A continuación, puede decidir si desea desbloquear funciones si esa versión es anterior al cambio a IAP.

Por ejemplo, una vez que haya recuperado la información del recibo:

NSArray *versionsSoldWithoutIAP = @[@"1.0", @"1.1", @"1.2", @"1.3"]; NSString *originalPurchasedVersion = [receiptInfoDict objectForKey:@"Original Purchased Version"]; for (NSString *version in versionsSoldWithoutIAP) { if ([version isEqualToString:originalPurchasedVersion]) { // user paid for the currently installed version } }

Para obtener más información, consulte el video WWDC 13 Uso de recibos para proteger sus ventas digitales . A las 5:40, el presentador comenta: "Creo que lo más emocionante del recibo este año, especialmente para ustedes, si tienen una aplicación de pago en la tienda, es que hemos incluido información en el recibo que les permitirá haga una transición de ser una aplicación paga a ser una aplicación gratuita con compras en la aplicación sin dejar atrás a todos los clientes que ya han pagado por su aplicación ".


Con iOS7, la aplicación iOS puede verificar el recibo de la tienda de aplicaciones, que contiene la fecha de descarga de la aplicación. Al usar esta fecha de donwload, puede determinar si un cliente se compró anteriormente o no


Estoy tratando con lo mismo y se me ocurrió la siguiente idea: crear la versión de freemium con un nuevo nombre y una ID de aplicación. Mantenga la aplicación de pago existente en la tienda de aplicaciones, pero eleve el precio a algo absurdo y establezca claramente en la descripción que la aplicación está allí para mantener el soporte para los usuarios existentes y que los nuevos usuarios deberían probar la versión de freemium.

Los usuarios pagos existentes no perderán soporte para su aplicación existente y pueden eliminarla e instalarla en cualquier momento sin tener que volver a comprarla.

No tendrá que seguir actualizando la aplicación pagada anterior, tampoco. Solo guárdalo en la tienda de aplicaciones.

La desventaja es que los usuarios pagados existentes no podrán migrar sin problemas a la versión de freemium para obtener funciones adicionales que agregue en el futuro sin volver a pagar por lo que ya tienen.

Todavía estoy tratando de decidir si esto funcionará para mí, pero podría ser una buena opción para otros. Comentarios apreciados.


He estado pensando en este problema desde hace un tiempo. Tengo una cantidad sustancial de clientes que pagaron mi aplicación de nicho de alto precio (en términos de App Store) y odiaría tener que decirles que vuelvan a comprar, ya que planeo migrar a un modelo de compra en la aplicación.

La idea que surgió (y le pediré a Apple soporte si es legal) es eliminar la aplicación pagada actual pero enviar una última actualización que permita "desbloquear" las compras en la aplicación de la nueva aplicación basada en el Modelo In-App. Estaba pensando en un esquema de respuesta al desafío:

  • El usuario ha instalado la aplicación de pago en su dispositivo
  • El usuario instala una nueva aplicación integrada en la aplicación y la abre. La nueva aplicación detecta la versión paga y ofrece desbloquear las compras en la aplicación (en este dispositivo solo por supuesto y siempre que la aplicación no se elimine)
  • La nueva aplicación genera un nonce, lo firma y llama a la aplicación anterior a través de un esquema de URL
  • La aplicación anterior descifra el nonce, agrega +1 a él y lo vuelve a firmar. Llamadas a la nueva aplicación a través del esquema de URL
  • La nueva aplicación valida el nonce y desbloquea las características

El esquema se puede implementar fácilmente usando una clave precompartida. Por supuesto, es una debilidad en los dispositivos rotos de la cárcel, pero luego todas las aplicaciones que almacenan recibos en la aplicación tienen esos problemas.


Primero, solo quiero decir que personalmente creo que el modelo freemium es genial. Ha funcionado muy bien para muchos desarrolladores. A la gente le encanta descargar aplicaciones gratuitas, y lo hará por capricho, pero prestan mucha más atención a una aplicación antes de gastar $ 0,99 (lo que se debe al efecto de gratis). Para más información, echa un vistazo al libro Predictably Irrational de Dan Ariely.

Para obtener más información sobre freemium, google it: ha habido toneladas de artículos escritos sobre el éxito de la misma.

Ok, volviendo a la pregunta real:

Hay algunas maneras en que puedes manejar una situación como esta, aunque el desafortunado asunto aquí es que ninguna de ellas es infalible.

  • La mejor solución probablemente sea que sus usuarios tengan cuentas. Sin conocer los detalles de su aplicación, no puedo decir si las cuentas de usuario son apropiadas para su aplicación. Las cuentas de usuario almacenadas en su servidor tienen muchos beneficios adicionales, incluida la administración de usuarios, y el seguimiento de las compras que ha realizado un usuario. Esto permitirá a los usuarios que eliminen la aplicación y luego la reinstalen u obtengan un nuevo dispositivo mantener su contenido comprado. Además, siempre que utilice la compra en la aplicación, debe validar la compra en su propio servidor (o con Apple), lo que puede hacer un sistema de administración de usuarios basado en el servidor. Si está totalmente loco con la creación de su propio servidor de administración de usuarios, eche un vistazo a Parse . Es muy simple crear un servidor backend increíble (básicamente gratis)
  • iCloud Key / Value tipo de sistema. No estoy muy familiarizado con cómo esto funcionaría, así que seguiré adelante.
  • Otra solución no tan infalible (pero mucho más rápida / fácil de implementar) es usar NSUserDefaults . Puede almacenar un objeto cuando el usuario realiza una compra o con la fecha en que un usuario instala su aplicación. Luego, si publica una actualización, convierta su aplicación a freemium. Luego, en la nueva actualización, compruebe qué compras ha realizado el usuario o la fecha en que lo instaló, y reaccione en consecuencia. Para obtener información sobre cómo hacer eso con NSUserDefaults , consulte mi respuesta a otra pregunta sobre cómo implementar eso: NSUserDefaults y las versiones de la aplicación . Pero esta solución presenta las siguientes trampas:

  • Si el usuario elimina su aplicación, los NSUserDefaults se pierden para siempre

  • Si el usuario no instaló la actualización configurando el sistema NSUserDefault, pero luego instaló la actualización con el nuevo modelo freemium, la aplicación los trataría como si no hubieran comprado el contenido.

En verano, esta es una pregunta difícil, con pocas opciones fáciles / perfectas.

De todas formas,

Espero que haya ayudado!