2012-04-23 18 views
27

Attualmente sto cercando di aggiungere IAP a un'app esistente. A tal fine, ho aggiunto alcuni prodotti e creato alcuni utenti di test. I prodotti sono abbonamenti ricorrenti. Il dispositivo con cui sto testando è un iPhone 4S con iOS 5.1.Test Sandbox iOS Account utente Gestione sottoscrizioni

Posso interrogare correttamente lo store per i miei prodotti e acquistarli con successo con i miei nuovi utenti di Test. Il problema che ho è che se provo a gestire le mie iscrizioni dall'App Store Settings, mi costringe a recensire il mio account dicendo che "Questo account non è stato utilizzato per acquistare nulla nell'App Store, per favore controlla il tuo account e continua ". Se rivedo l'account, non mi consentirà di continuare senza fornire informazioni su CreditCard.

Il risultato finale è che non posso mai annullare i miei abbonamenti di prova. Ho eliminato Test Users e ne ho creati di nuovi, ho eliminato l'app e reinstallato, ho ucciso App StoreApp e Settings, ho riavviato il dispositivo, verificato gli account via e-mail prima dell'acquisto, non verificato gli account via e-mail prima dell'acquisto ... tutte le permutazioni sembra fallire.

A volte acquisterò due volte lo stesso abbonamento che richiederà a StoreKit di chiedermi di gestire le mie impostazioni di abbonamento. A volte questo risulta nella precedente procedura di "Revisione account" e a volte risulta in un avviso che dice "Impossibile connettersi a iTunes Store".

Ho esaurito le idee su come continuare.

EDIT - Ecco il flusso degli eventi con qualsiasi utente iTunesConnect Test Io creo

sottoscrizione iniziale
Initial Subscription

utilizzare l'ID esistente
Use Existing ID

Test Account Sign-In
Test Account Sign-In

Gestione Abbonamento
Manage Subscription

AppStore Sign-in
AppStore Sign-in

Impossibile collegarsi all'AppStore
Cannot Connect

Recensione Il tuo account
Review

Poi, il processo di revisione mi costringe a inserisci Credito Informazioni sulla scheda, anche se il mio indirizzo è "1 Infinite Loop Cupertino, CA" (ad es. sa che questo è un account di prova).

+1

Questa simile messaggio trovato una risposta: http://stackoverflow.com/q/4566329 –

risposta

7

C'è una risposta da parte dello sviluppatore Apple. (Rich Kubota) Informazioni sul test di abbonamento in ambiente sandbox.

Questo è un bug hole nel processo di simulazione di acquisto in-app. C'è il modo non supportato per simulare il processo di cancellazione o per simulare il processo di sottoscrizione da un'app di iTunes degli utenti. Questa limitazione esiste anche con la versione TestFlight dell'app. Quando si invia la build TestFlight dell'app a un utente e si prova l'app , l'account utente funziona effettivamente nell'ambiente sandbox . L'hai verificato perché l'app TestFlight non sarà visualizzata come app gestita negli utenti TestFlight iTunes gestito sezione abbonamento. Questo perché l'app si trova nell'ambiente sandbox , di cui l'app di iTunes non sa nulla. E 'stato un mentre da quando ho risposto su questo forum, tuttavia, il mezzo migliore per verificare che l'applicazione gestirà il processo di rinnovo automatico è quello di verificare che l'app gestisca anche il rilevamento del rinnovo automatico dei rinnovi dell'abbonamento tramite transactionObserver correttamente. Per esempio se si acquista un abbonamento 1 mo nell'ambiente sandbox . Quindi uccidi l'app, attendi 6 minuti, quindi riavvia l'app, fa che il server di transazione rilevi che esiste un incompleteTransaction (il rinnovo di un mese compresso) per essere elaborato . Questo è molto simile a ciò che accade nel caso in cui l'utente riavvii un abbonamento nella pagina di gestione delle sottoscrizioni iTunes . La transazione viene registrata dal negozio iTunes e una transazione incompleta per l'account utente/l'ID pacchetto di app è abilitata. Quando l'app si avvia e attiva transactionObserver (tramite una chiamata per aggiungereTransactionObserver) viene rilevata la transazione incompleta e il metodo updateTransaction delefgate chiamato per elaborare il rinnovo . L'app può quindi convalidare l'applicazioneReceipt per verificare che ora è presente un elemento di matrice in_app per l'elemento di rinnovo con rinnovo automatico che ha un expire_date maggiore della data attuale e sa che l'abbonamento di rinnovo automatico product_id è attivo. Per quanto riguarda il test che un abbonamento con rinnovo automatico è stato annullato , è necessario ricorrere al supporto del server iTunes Store per simulare. Tuttavia, il processo di convalida della ricevuta funziona giornalmente e può rilevare quale elemento dell'array 01_in_app è il più aggiornato per la sottoscrizione automatica , quindi rilevare se è impostato il cancel_date dice all'app che l'abbonamento è stato annullato. Come nota, solo rilevando che il campo cancel_date per qualsiasi elemento può risultare in un falso positivo. L'utente potrebbe aver annullato un abbonamento di rinnovo automatico in precedenza, quindi ha deciso che non era più così male e ha acquistato nuovamente l'articolo.Per il motivo , la logica deve assicurarsi che il campo cancel_date sia impostato nell'elemento di array in_app più recente per sapere che l'attuale sottoscrizione è stata effettivamente annullata. Un problema che sto cercando di determinare - se un elemento annullato avrà la data di scadenza spostata fino a il cancel_date in modo che un abbonamento annullato possa apparire lo stesso come abbonamento scaduto. Sembra la mossa giusta, ma questa informazione è controllata dal team del server iTunes Store. Se si desidera eseguire un mechansim per simulare queste funzionalità dell'ambiente di produzione nella sandbox, suggerisco di inviare una richiesta di miglioramento utilizzando la pagina Web Report bug di Apple Developer. Seleziona il prodotto iTunesConnect per il bug report, poiché il suggerimento è qualcosa che l'iTunes Store simula, non iOS.

41

Non è possibile gestire in realtà abbonamenti a sandbox, ma come Jean-Paul de Ville de Goyet scoperto sul Apple Developer Forums: Abbonamenti

1 mese il rinnovo automatico ogni 5 minuti. Fin qui tutto bene. Loro si rinnovano automaticamente 5 volte e poi si fermano, quindi dopo 25 minuti avrai l'errore 21006 . Tuttavia, anche se riacquisti lo stesso abbonamento , NON si rinnoverà automaticamente sullo stesso account di prova poiché ha già già auto-rinnovato 5 volte.Quindi se vuoi sottoporre a test il rinnovo e hai da tempo con questi abbonamenti hai bisogno di creare un nuovo utente test di iTunes. Questo è molto fastidioso onestamente e sarebbe molto più facile se potessimo semplicemente ripristinare l'intera cronologia degli acquisti di di un account utente di prova.

Ho testato i miei abbonamenti allo stesso modo.

+21

suo 2015 e ancora dobbiamo seguire la stessa procedura patetico. –

+26

è ora il 2016 e dobbiamo seguire la stessa procedura patetica. – woheras

+4

:/questo è frustrante –

Problemi correlati