I am updating my iOS app using Apple’s transaction verification code VerificationController to check in-app purchases due to a recent “hack” that allowed people to buy in-pharmacy without payment due to fake receipts from fake Apple servers.
I have everything integrated and now I'm testing. I launched the application several times, and the verification material was launched several times.
I want to check everything regarding the purchase, including starting with the new new application and AppleID. Therefore, I completely uninstalled the application from my test device. I created a brand new AppleID test user in iTunes Connect. I went to the Settings app on my test device, went to the Store, and changed the default AppleID for the device to this newly created AppleID.
I re-launch the application from Xcode using the debugger, which reinstalls the application on the test device and launches it again.
The problem is that almost immediately at startup, the test device puts the Alert type name in the AppleID password and asks for the password for the old AppleID, which I originally used to test everything, including the original purchase in the application and verification for this. It does not ask for a password for the new AppleID device, as set in the Settings app in the store.
When I launch it as a new application, the verification code does not start, and not one code from my routines that do anything with the Apple StoreKit materials runs except for a single
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
(observer is my delegate object for the StoreKit material and is created, but there are no routines in it except init and init does nothing except a static variable for itself to create a singleton type class)
NSLog(@"in App Delegate, payment queue transactions are %@", [[SKPaymentQueue defaultQueue] transactions]);
.
, AppleID , , AppleID , , , StoreKit ( ).
.
ETA. CANCEL .
( ), , OLD AppleID. , . " " , AppleID . , , , , / AppleID.