Llegué hasta ahora: después de reinstalar, un usuario debe hacer clic en "comprar función", luego se asusta con la pregunta de $ 0.99, luego tiene que iniciar sesión y luego se le dice que la función ya está comprada y la obtiene de forma gratuita.Restaurar ya compró compras en la aplicación en el iPhone?
Sé que la manzana es una religión y los usuarios son fuertes creyentes, pero ¿acaso no hay una mejor manera? :-) Lo que quiero es verificar la característica sin comprarla realmente. Permitir que el usuario ingrese la información de su cuenta parece ser necesario, ¿tal vez comprar una característica de $ 0.00? o hay un método en alguna parte que hace esto?
Estoy usando MKStoreKit para toda la compra integrada en la aplicación, pero cualquier solución sería genial.
ACTUALIZACIÓN
Gracias a darvids0n, su método resuelve mi problema! aquí hay un código de trabajo para otros tratando el mismo:
- (void)removePreviousPurchases { //just for sandbox testing
[[MKStoreManager sharedManager] removeAllKeychainData];
}
- (void)restorePreviousPurchases { //needs account info to be entered
if([SKPaymentQueue canMakePayments]) {
[[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
NSLog(@"Restored.");
/* update views, etc. */
}
onError:^(NSError *error) {
NSLog(@"Restore failed: %@", [error localizedDescription]);
/* update views, etc. */
}];
}
else
{
NSLog(@"Parental control enabled");
/* show parental control warning */
}
}
Gracias, finalmente encontró el método MKStore-kit a utilizar para esto! (ver edición de mi pregunta) –
Si tengo 10 identificadores de compra no consumibles y de los cuales 4 son comprados por el usuario. Durante la restauración, ¿cómo puedo saber cuáles se compraron anteriormente y cuáles no? – Satyam
@Satyamsvv No recibirá devoluciones de llamadas por las compras que su usuario no haya comprado. Solo obtendrá 4 transacciones actualizadas en el método 'SKPaymentTransactionObserver' [' -paymentQueue: updatedTransactions: '] (http://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html # // apple_ref/doc/uid/TP40008262-CH1-SW3), y el 'transactionState' de estos será' SKPaymentTransactionStateRestored'. – darvids0n