iOS 13 - How to login in in-app purchase Sandbox account?
In order to test my in-app purchases with iOS 13 I have to update one of my test devices to iOS 13.1 beta.
On iOS 12 and before there was a special Sandbox login in Settings/iTunes & App Store/Sandbox Account
:
However, after the update to iOS 13 this section is missing. I tried to follow the instruction in the answer to a similar problem on iOS 12 but nothing worked. I completely reset the device and logged out both at Settings/iTunes & App Store
and at Settings/Apple ID
, so currently the device is not connected to any account (real or sandbox). At least as far as I can tell.
I have re-installed my app on the devices using Xcode 11 beta and tried to perform an in-app purchase. The store shows a login prompt which shows that this is a Sandbox purchase. However, the prompt only asks for the password, not for a username or Apple ID. So I have no idea which account should be used here.
When using the password of a newly created test user account the password is not known. I can use the password of my real Apple ID account which was used during the device setup and was then disconnected.
So, how to connect to a specific Sandbox account in iOS 13?
Solution 1:
Here's what worked for me (on a dedicated development iPhone 6s running iOS 13.3).
- Sign out of iTunes & App Stores
- Sign out of iCloud
- Run app on device, and click to purchase an item.
- When prompted for an ID/Password, enter the Sandbox Tester credentials.
It took entering the credentials a couple of times, but the In App purchase dialog alert did say the environment was Sandbox.
After it "made good" (that is, stopped asking me to log in and processed the SKPaymentTransation), I was able to go to iTunes & App Stores in the General Settings, scrolled to the bottom, and now the Sandbox Account appears with the tester account showing.
Now when I run the app and click the button to purchase content, it just asks for the tester password.
Hopefully this helps others.
Solution 2:
Sandbox Account section, in the iTunes & App Store of iOS 13, is not visible right away and can be confusing. Here is how to enable it:
- Navigate to Settings.app → iTunes & App Store
- Log in with your developer account (non-sandbox) on top of the screen where it says "Sign In..."
- Ignore rest of the screen for now and go to your app.
- Make an In-App Purchase.
- iOS will ask you for an email and password to complete the purchase.
- Enter sandbox user credentials in the alert form.
- In-App Purchase will proceed with compressed sandbox times.
- Go to iTunes & App Store again. At the very bottom, you will see the new Sandbox Account section. You can logout and login to a different sandbox account or leave it as is.
You can't enter the sandbox account into iTunes & App Store as the primary account as of iOS 13 — the system will refuse to log you in with error with an odd copy mentioning "try again later." No matter how much you wait, iOS 13 will refuse your sandbox account here.