Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 12 IAP Sandbox

I was watching this WWDC18 talk, and they've explicitly announced that they'll allow developers to simultaneously connect one Sandbox Account for IAP testing - when in Developer Mode and in iOS12.

Screenshot of the moment that they show the feature

Straight to the question:

I've tried to access it from both my iPhone 6S and iPhone X - both on iOS 12 -, but neither had this option at the end of the screen. Also, I've searched about this topic, and no one seems to be addressing this issue.

The "Apple ID > iTunes & App Stores" on my device

This feature is incredible because it removes the need to logout of our Apple ID - which is/was a tremendous pain.

Test note: I've tried to change Regions and Languages on my devices - both unsuccessful.

like image 984
Guilherme Matuella Avatar asked Oct 31 '18 15:10

Guilherme Matuella


People also ask

Does iOS have sandbox mode?

Although Apple has built robust sandboxing features into iOS , it is upto the developer's to ensure that their apps are written securely. When an app is installed on a mobile device, the system creates a unique directory for it.

How do I enable sandbox on my iPhone?

Sign In to the App Store with Your Sandbox Apple ID In iOS and iPadOS, the sandbox account appears in Settings > App Store after the first time you use the device to attempt a purchase in a development-signed app. There's no need to sign out of the non-Sandbox Apple ID. Sign in using a Sandbox Apple ID.


2 Answers

Just tried it now on iOS 12.0.1.

  1. In Settings > Apple ID > iTunes & App Stores, click on your Apple ID (at the top of the page; it's hyperlinked). Then, select "Sign Out".

  2. As far as I understand, you are now still signed into your Apple ID for various services like iCloud and Game Center. This is fine.

  3. Open an app that is not signed for release (e.g. an app that you are developing IAPs on).

  4. Try to complete an IAP (restoring purchases, or just getting the app to request your receipt, will also suffice); this will prompt the iTunes Store to ask for your login details again.

  5. The login alert is simply entitled "Sign In to iTunes Store", and prompts you to enter an Apple ID and Password. Do not enter your personal Apple ID here; instead, enter a sandbox account's username and password.

  6. In my case, I had initiated an IAP transaction, so I received an alert entitled "Confirm your In-App Purchase" with details of the IAP and the text "[Environment: Sandbox]"; confirm the purchase by entering your sandbox account's password.

  7. I then received an alert entitled "Sign in to iTunes Store", this time explicitly asking me to enter the password for my sandbox account.

  8. I returned to Settings > Apple ID and tapped iTunes & App Stores. This produced an alert saying words to the effect of "It appears that you are using [your personal Apple ID] in the Game Center; is this the same Apple ID that you want to log into iTunes with?". In this case, you should click 'Continue'. It will take you to the iTunes & App Stores screen. Note that I did not have to enter the password nor re-specify the Apple ID for this step!

  9. On the iTunes & App Stores screen, your personal Apple ID will be indicated at the top of the screen as before. At the bottom of the screen, you will find that the Sandbox Account field has appeared! 🚀

This process could have done with some better documentation to accompany the hype, but unfortunately this is just "business as usual" for iOS development.

like image 118
Jamie Birch Avatar answered Oct 19 '22 17:10

Jamie Birch


iOS 12.1.2 seems to have simplified the process even further than Jamie's steps without the need to sign-out of anything:

  1. While still signed into your phone with your personal Apple ID, open a development app (NOT signed for release)
  2. Try to complete an IAP, which brings up the iTunes Store login page
  3. Use your sandbox ID here (NOT your personal Apple ID)
  4. You may have to log in twice (another popup asks for just your password)
  5. The sandboxed purchase should go through
  6. Going to Settings > iTunes & App Store and scrolling to the bottom now shows a new Sandbox account that says "This account will be only used for testing your in-app purchases while developing locally. Your existing App Store account will be used for TestFlight apps."

That last bit about TestFlight apps is different than the OP's screenshot. Perhaps this method ONLY sets up the account for development IAP testing, whereas the full sign-out method sets up the sandbox account for more.

like image 8
user3352870 Avatar answered Oct 19 '22 19:10

user3352870