iOS descarga contenido no consumible desde el server con la compra en la aplicación

He leído y buscado todo lo que pude en el tema iOS en la aplicación. Al less de Google (less los interminables enlaces de piratería en la aplicación). Una cosa que no puedo encontrar son instrucciones o tutoriales sobre cómo tomar el contenido del server y almacenarlo en el teléfono después de la verificación del recibo. Entiendo que puedo almacenar el contenido en mi propio server o empaquetarlo usando el cargador de aplicaciones y que Apple lo aloje. Obtengo todo el contenido no consumible y uso tu propio server o NSUserDefaults para recordar artículos comprados. Lo que no puedo encontrar es tutoriales de encoding sobre cómo get el contenido de la compra en la aplicación desde mi propio server o desde Apple, y ¿dónde puedo savelo en el teléfono? ¿llamada de socket normal? ¿Puedo almacenar el contenido en el directory de la aplicación?

Como ejemplo, tengo una aplicación existente que me gustaría vender nuevas imágenes a través de compras en la aplicación. Las imágenes existentes están en un package. ¿Cómo puedo hacer para que las imágenes del package del server vuelvan a mi aplicación? Estoy de acuerdo con los nuevos packages para cada compra, entiendo que no puedes modificar un package existente.

Siempre que su compra sea exitosa, obtendrá el object de transacción. ¿No es así?

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 

Itere en cada object de transacción y use el siguiente código:

 if (transaction.downloads) { [[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads]; } 

En una descarga exitosa, recibirá una llamada de delegado:

 -(void)paymentQueue:(SKPaymentQueue *)queue updatedDownloads:(NSArray *)downloads { for (SKDownload *download in downloads) { switch (download.downloadState) { case SKDownloadStateActive: NSLog(@"Download progress = %f and Download time: %f", download.progress, download.timeRemaining); break; case SKDownloadStateFinished: NSLog(@"%@",download.contentURL); // Download is complete. Content file URL is at // path referenced by download.contentURL. Move // it somewhere safe, unpack it and give the user // access to it break; default: break; } } } 

Después de la descarga, obtendrá la URL donde se descargan los datos, ahora puede almacenar en la carpeta de soporte de la aplicación de la biblioteca y evitar que se sincronice automáticamente a la nube (si es necesario). Eso es.