Application requests AppleID at startup

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.

+5
3

, , .

, StoreKit , ,

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

. RMStore, , :

if (error.code != RMStoreErrorCodeUnableToCompleteVerification) { 
    // If we were unable to complete the verification we want StoreKit to keep reminding us of the transaction
    [queue finishTransaction:transaction];
}

, :

  • Apple ID.
  • . , RMStore [[SKPaymentQueue defaultQueue] finishTransaction:.
  • .

, , Apple. Apple ID iTunes Connect, .

, , ( ) . , (.. reset StoreKit). , , finishTransaction .

+6

StoreKit.framework , Apple ID , .

iTunes Store/App Store:

  • → iTunes
  • Apple ID, ( )
  • ""

, StoreKit , .

+2
Steps to Fix:
1. Starting at the App Store, pull up the multi-task bar and tap the Settings app.
2. Scroll down and tap 'General'.
3. Scroll down and tap 'Date & Time'.
4. If the 'Set Automatically' switch is ON, turn it OFF.
5. Tap 'Set Date & Time'.
6. Tap the field that says "[day of the week], [month][day], 2013".
7. Adjust the year wheel to say "2012" and back out of the Date & Time section.
8. Multi-task back to the App Store and attempt to download the app again.
9. Tap 'Cancel' on the "Cannot connect…" modal.
10. Return to the native Settings > General > Date & Time > Set Date & Time.
11. Go back to the month, date, year wheels and change the year to "2030".
12. Back out to the home screen and launch the App Store.
13. A "Cannot connect to the Store" modal should appear right away.
14. Tap 'OK' and then multi-task back to Settings.
15. Return all the way back to the month, date, year wheels again and change the year back to "2013.
16. Multi-task back to the App Store and attempt to download the app again.
-1

All Articles