Sto aggiornando la mia app iOS con il codice VerificationController di transazione suggerito da Apple per verificare gli acquisti in-app a causa del recente "hack" pubblicato che permetteva alle persone di acquistare acquisti in-ap senza pagare il dovuto per falsificare le ricevute da server Apple falsificati.chiede AppleID quando è in esecuzione
Ho tutto integrato e sto testando. Ho eseguito l'app più volte e il materiale di verifica è stato eseguito più volte.
Voglio testare tutto sull'acquisto incluso iniziare con una nuova app nuovissima e AppleID. Così ho eliminato completamente l'app dal mio dispositivo di test. Ho creato un AppleID "test user" nuovo di zecca in iTunes Connect. Sono andato all'app Impostazioni sul mio dispositivo di test, sono andato su Store e ho cambiato l'AppleID predefinito per il dispositivo con questo AppleID appena creato.
Riesco a rieseguire l'applicazione da Xcode con il debugger, che re-installa l'app sul dispositivo di test e lo esegue fresco.
Il problema è che quasi immediatamente sul lancio, il dispositivo di prova mette in sulla vista AppleID Password Alert-tipo e richiede la password per il vecchio AppleID che ho originariamente usato per testare tutto compreso il primo acquisto in-app e la verifica per questo. Non richiede la password per il nuovo dispositivo AppleID come impostato nell'app Impostazioni in archivio.
Quando ho eseguito come una nuova applicazione, il codice di verifica non viene eseguito e nessun codice da uno qualsiasi dei miei routine che fare nulla con la roba di Apple StoreKit è gestito ad eccezione di un solitario
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
(osservatore è il mio oggetto delegato per il materiale StoreKit e viene creato ma nessuna routine viene eseguita tranne init e init non fa altro che impostare una variabile statica per se stesso per creare una classe di tipo singleton)
Per motivi di controllo, ho aggiunto anche in
NSLog(@"in App Delegate, payment queue transactions are %@", [[SKPaymentQueue defaultQueue] transactions]);
che non mostra nessuna vecchia transazione in giro.
Non ho idea del motivo per cui ha iniziato a chiedere il mio AppleID dell'utente test originale quando l'app è stata appena installata, l'AppleID per lo store per il dispositivo è diverso e non riesco a identificare nessun codice in esecuzione accede a StoreKit (ad eccezione di quanto menzionato sopra).
QUALSIASI approfondimento sarebbe apprezzato.
ETA: Toccando ANNULLA nella finestra di dialogo della password non viene eseguito alcun codice aggiuntivo nell'app e non si impedisce l'esecuzione dell'app.
Se poi si passa alla schermata di acquisto in-app (dove l'app interroga lo store per gli acquisti in-app disponibili), richiede nuovamente la password allo stesso modo, sul vecchio ID Apple. Posso cancellare e nulla sembra accadere. Se effettivamente tocco il pulsante "ripristina acquisti" nella mia app, chiede quindi la password sul nuovo AppleID come impostato nelle impostazioni del negozio. Non ho superato questo punto perché voglio capire cosa sta succedendo e non voglio rovinare tutto completando/tentando il ripristino o l'acquisto con il nuovo AppleID.
Grazie
Hai risolto in qualche modo? –
@bluesm Non ho mai risolto il problema e non uso più realmente quel dispositivo con cui avevo problemi. Scusate. Potrei eventualmente provare a tornare ad esso come ho ancora quel dispositivo in un cassetto ... – chadbag