2013-03-02 12 views
7

Problema: sto provando a testare negli acquisti di app con un account sandbox, ma ogni volta che cerco di acquistare due volte un articolo di consumo, viene visualizzato il seguente messaggio di errore:Sandbox iOS - Impossibile acquistare un articolo di consumo due volte

You've already purchased this In-App Purchase but it hasn't been downloaded. 
         [Environment: Sandbox] 

Questo accade solo quando si utilizza iOS < 6. Ho letto che questo potrebbe essere un problema relativo alla sandbox. Qualcuno sa se c'è qualche verità in quella affermazione?

Sono sicuro che la seguente chiamata è stato fatto per completare la prima operazione:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction] 

Ho provato a fare questo appello anche per scovare la coda senza fortuna:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

Mi sto anche assicurando che prima di testare l'iAP, sono disconnesso dallo store di iTunes. Inoltre, ho anche verificato che la build e il numero di versione si trovino nel pannello Riepilogo della mia destinazione in Xcode.

+0

sono il 100% sicuro che è prodotto di consumo ...? – holex

+0

Sì, ne sono sicuro. – user2125688

+0

sto vivendo questo per iOS 6 e 7 e prodotti non consumabili. Hai capito come risolverlo? – SpaceDog

risposta

0

problema è probabilmente questa linea mancante nel codice

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

ottengo lo stesso errore di qualche giorno fa. e questa linea risolve il problema per me. questa linea aggiunge osservatore per le in-app.

+0

Provato già. – user2125688

1

Avevo una situazione simile che avrei ricevuto questo messaggio e poi si sarebbe bloccato se avessi provato ad acquistarlo di nuovo. Per me, sembra che questo sia solo un messaggio che finishTransaction non è stato completato (per qualsiasi motivo). Secondo i miei registri, garantisce una transazione aggiornata SKTransactionStateFailed, permettendomi di inviare nuovamente il finishTransaction.

Ho poi il check-in all'interno del mio app che ha di fatto scaricato i dati/acquisto BOOL/qualunque cosa e presentare un'interfaccia utente se hanno bisogno di scaricarlo di nuovo. Non sembra avere problemi con i download successivi.

Per evitare il crash, ho incluso:

[[SKPaymentQueue defaultQueue] removeTransactionObserver:self]; 
Problemi correlati