iOS en la compra de la aplicación que resulta en una descarga de> 20 MB

Estoy considerando un layout para una aplicación siguiendo el model "freemium", donde cierto contenido es gratuito, pero el usuario puede comprar más contenido dentro de la aplicación.

Mi preocupación es que el contenido que puedan comprar sea> 20Mb, el límite para la descarga de una aplicación 3G.

¿Alguien ha intentado esto o tiene alguna idea de cuáles serían las implicaciones? Me pregunto qué pasará si compran la aplicación mientras están en 3G … ¿Tendrían que volver a su computadora para terminar de download el contenido y luego sincronizarlo con el teléfono?

Con respecto a lo que sucede con> 20 Mb en una connection 3G, esto no fallará. El contenido no se entrega desde los serveres de Apple (donde está el límite de 20 Mb) sino desde sus serveres. Entonces, la descarga continuará de manera normal. Sin embargo, con un tamaño de descarga grande hay una mayor probabilidad de que no se complete. Aquí es donde entras para verificar si necesitas entregar contenido adicional cuando sea posible.

La Guía de progtwigción de compra en la aplicación lo cubre bastante bien.

En última instancia, depende de usted la responsabilidad de entregar el contenido correctamente. Apple proporcionará los mecanismos para determinar si debe restaurar una compra. Restaura el contenido en varias situaciones (el usuario tiene un teléfono nuevo, la aplicación reinstalada por el usuario, el usuario no pudo get el contenido en la compra inicial, etc.). Toda la entrega de contenido es responsabilidad de usted (como desarrollador de la aplicación).

En el caso de trabajo mínimo para usted, los artículos no consumibles, una vez comprados, nunca se cobrarán de nuevo. Es decir, si compran el artículo una vez, el bash de comprarlo por segunda vez (debido a una aplicación justa para darse count de que ha sido comprado) StoreKit devolverá una compra exitosa, pero no cobrará al usuario.

A un nivel más proactivo, puede get la list de artículos comprados a través de restreCompletedTransactions cuando se inicia la aplicación y entregar el contenido faltante.