Domanda

Ho creato un account di prova per il check-in app acquisti. Potrei acquisto e l'acquisto è stato di successo. Dopo che ho trovato un bug nella navigazione. Ho sistemato un bug, creato un altro account e cancellato il conto mi sono collegato in seduta precedente. Ora non riesco a testare il in app acquisti più, dal momento che l'App Store mi ha accesso automatico con un account fantasma che già non esiste. Mi viene chiesto di inserire una password unica, nonostante che prima di ogni sessione di debug firmo fuori dallo Store in Impostazioni ed eliminare la versione precedente dell'applicazione. Come faccio a reimpostare questa?

Grazie,

Nava

È stato utile?

Soluzione

So che questo è un argomento vecchio, ma ho avuto difficoltà a trovare una soluzione e ha attraversato alcuni tentativi noiose ed errori fino a quando ho capito una soluzione così ho pensato di condividerle qui da quando ero in grado di trovare da nessuna parte il resto.

Per prima cosa, assicurarsi che dopo ogni transazione si chiama:

    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

Quello che è successo nel mio caso è che una transazione non era finita ed è rimasto in coda in modo anche quando sono passato a un account sandbox diversa ancora continuato a chiedere la password del mio vecchio account.

Per risolvere il problema ho aggiunto:

SKPaymentQueue *queue = [SKPaymentQueue defaultQueue];
for (SKPaymentTransaction *transaction in queue.transactions) {
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

prima ho aggiunto l'osservatore dell'operazione, vale a dire questo:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

Inoltre, nella

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

funzione, ho aggiunto questa riga di codice:

[queue finishTransaction:transaction];

nel SKPaymentTransactionStateRestored e SKPaymentTransactionStateFailed casi di l'istruzione switch. Non aggiungere allo stato acquistato perché non ti è permesso di chiamare finitura che da quello che so.

Non sono sicuro di quale dei due passaggi di cui sopra corretto il bug perché persisteva fino a quando ho disconnesso dal mio iPhone, cancellato l'applicazione, alimentato verso il basso, e ha fatto un pulito ricostruire / install che finalmente smesso di chiedermi la password per l'account spiati. Spero che questo aiuta qualcuno.

EDIT: (11/12/15)

Così ho scoperto la causa della rottura conti sandbox. E 'successo dopo il ripristino acquisti, quindi premendo il tasto Home, riapertura e premendo il pulsante di ripristino di nuovo che ha causato un crash. Il ripristino soggiornato in coda e il processo di cui sopra era l'unico modo per uscire dei popup per chiedere la password.

Al fine di fermare questo, ho aggiunto:

[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];

per per funzione tearDown (chiamato da applicationDidEnterBackground :) del mio controller della vista principale prima ho nil'd il mio acquisto in-app gestore oggetti. Penso che quello che stava accadendo è che ho aggiunto l'oggetto come un osservatore un'operazione più di una volta ed è stato la causa del comportamento strano. Dagli sguardi di esso, questo sembra aver risolto il problema del tutto perché non sono stato in grado di ricreare nuovamente l'errore.

Altri suggerimenti

Ho avuto lo stesso problema. Questo è ciò che ha risolto il mio problema:

  1. Impostazioni -> Reset -> Ripristina impostazioni
  2. Impostazioni -> iTunes e App Store -> Esci
  3. Elimina l'applicazione
  4. Riavviare l'applicazione da XCode

Aggiorna : ho capito il problema era che non avevo questa riga nel mio codice:

[[SKPaymentQueue defaultQueue] finishTransaction:tran];

Ciò significa che la mia vecchia transazione non è stata completata, e iPhone stava cercando di finalizzare vecchie operazioni che è accaduto prima. Quando ho aggiunto questa riga al mio codice, la vecchia richiesta di password utente non sta accadendo più.

Quindi vuoi dire che, anche se si va ad App Impostazioni -> Store -> Esci, è ancora ottenere il nome utente dal conto test precedente? Hai anche tenta di eliminare l'applicazione dal dispositivo? Che fissa un problema simile per me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top