First In-App Purchase in TestFlight

I am writing this blog post to guide people making their first In-App Purchase (IAP) when testing an iOS app in TestFlight.

For some reason that I do not understand, the first time a user tries to purchase an item in an app (an “In-App Purchase”), the user has to go through several extra steps.

So far, it seems, subsequent IAP go much easier.


Identifying locked items

In this example from my ARBots program, the user selects “Character” from the main menu to place a particular ARBot.

Only one character is initially unlocked - “Super Girl”.

The other characters, with their names dimmed, are locked. To unlock them, the user must make an In-App Purchase.

Example of locked characters in ARBots


Step 1: Go to the ARBots Store

To unlock characters in ARBots, tap on the “ARBots Store” button in the Home Screen.

Going to the ARBots Store


Step 2: Start the purchase process

For ARBots, there are two collections of characters you can unlock: sunbathers and warriors.

Tap on the price button to start the purchase process.

Starting the purchase process


Step 3: Initial sign-in

The first step is to sign-in with your Apple ID.

You need to enter both your Apple ID and your password.

Apple controls this process, so the app developer never sees this information.

Signing in with your Apple ID


Step 4: First purchase attempt

Now that you have signed in with your Apple ID, Apple prompts you to confirm you want to make this purchase.

Tap the “Purchase” button.

Confirm you want to purchase this item


Step 5: Enter your Apple ID password a second time

This is where the process starts to become confusing.

Previously you had to enter both your Apple ID and your password, but now you are asked for your Apple password a second time.

I think normally this is where devices with Touch ID would have you perform the touch operation, or devices with Face ID would have you double-click the side button to confirm you are who you are (e.g., your child isn’t buying something on your device).

But apps in TestFlight don’t support this, so they require a password instead.

Confirming you are the person making the purchase


Step 6: Start the purchase process a second time

This is where it gets really weird.

And so far this only seems to be an issue with the first purchase. A second In-App Purchase doesn’t seem to have this issue.

But when you are returned to your ARBots Store screen, the item does not show that is has been purchased.

So tap on the price a second time.

Make the same purchase a second time


Step 7: Confirm you want to make a purchase (again)

Again, Apple’s software takes over and asks the user if they want to make a purchase.

Tap “Purchase” to tell Apple’s software you really want to make the purchase.

Confirm you want to make the purchase (again)


Step 8: Enter your password a third time (ugh!)

Again, with Apple’s software in control of the process, Apple really wants to confirm it is you (and not your child or someone else) making the purchase.

Enter your password a third time, and tap “Sign In”.

Entering your password a third time


Step 9: Glide through the final steps

At this point everything goes smoothly!

Apple’s software briefly displays a pop-up window to show you that the purchase has been completed!!

Yay! The purchase is complete

Next, Apple’s software pops up another window to tell you that the purchase was complete.

Tap “OK” to make the window disappear.

A second window to tell you the purchase was successful

Finally, the ARBots Store replaces the price with a green checkmark showing that the item has been purchased.

Green checkmark showing the item has been purchased


Step 10: Use one of the unlocked characters

In ARBots, you can now use the newly unlocked ARBot characters.

The sunbather characters can now be placed in the world!