Preparing an iOS 7 Application for In-App Purchases

From Techotopia
Revision as of 20:12, 27 October 2016 by Neil (Talk | contribs) (Text replacement - "<table border="0" cellspacing="0"> " to "<table border="0" cellspacing="0" width="100%">")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
PreviousTable of ContentsNext
Building In-App Purchasing into iOS 7 ApplicationsAn iOS 7 In-App Purchase Tutorial

Learn SwiftUI and take your iOS Development to the Next Level
SwiftUI Essentials – iOS 14 Edition book is now available in Print ($39.99) and eBook ($29.99) editions. Learn more...

Buy Print Preview Book

The previous chapter provided an overview of the mechanism by which in-app purchasing can be implemented within iOS applications. The next few chapters will take this knowledge and put it into practice by working through the creation of an example application containing locked content that can only be accessed by the user after making an in-app purchase.

An important part of supporting in-app purchases occurs before any code is written and is the topic of this chapter. These steps involve the creation of an App ID with in-app purchases enabled, configuration of code signing within Xcode and the use of iTunes Connect to create a test user, application and in-app purchase item. Once these steps have been outlined, the next chapter, entitled An iOS 7 In-App Purchase Tutorial, will focus on the application development process.


About the Example Application

The example application created in this chapter will simulate the requirements of a fictitious, multi-level game whereby the user is provided with access to level 1 when the game is first installed, but must make an in-app purchase to unlock access to a second level.

For ease of testing, the in-app purchase must be performed each time the application runs. In a real world situation, however, a purchase of this type would be considered to be a non-consumable purchase and the application would need to check at startup whether the purchase had been made and unlock the premium level appropriately.

Creating the Xcode Project

Launch Xcode and create a new project based on the Single View Application template for the iPhone. Enter InAppDemo as the product name and class prefix.

Registering and enabling the App ID for In App Purchasing

In order to use in-app purchases, an application must be associated with an explicit App ID rather than a wildcard ID. For example, com.ebookfrenzy.MyApp is a valid App ID for in-app purchase, whilst com.ebookfrenzy.* is not. In addition, the App ID must have In-App Purchase support enabled.

To register the application’s explicit App ID with the iOS provisioning portal and enable In-App Purchasing for that ID, load the project into Xcode and select the application name target from the top of the project navigator panel. From the resulting project settings panel, select the Capabilities tab and locate and switch on In-App Purchase support as outlined in Figure 85-1, selecting a Development Team to use for the provisioning profile if prompted to do so:

Enabling in app purchase capabilities in Xcode 5

Figure 85-1

Learn SwiftUI and take your iOS Development to the Next Level
SwiftUI Essentials – iOS 14 Edition book is now available in Print ($39.99) and eBook ($29.99) editions. Learn more...

Buy Print Preview Book

Configuring the Application in iTunes Connect

Enrollment in the Apple Developer program automatically results in the creation of an iTunes Connect account using the same login credentials. iTunes Connect is a web portal where developers enter tax and payment information, input details about applications and track the status of those applications in terms of sales and revenues.

Access iTunes Connect by navigating to in a web browser and entering your Apple Developer program login and password details.

First time users should click on the Contracts, Taxes and Banking link and work through the various tasks to accept Apple’s terms and conditions and to input appropriate tax and banking information for the receipt of sales revenue. Failure to complete these steps in advance may prevent in-app purchases from working.

In order to test in-app purchases using the sandbox feature, it is first necessary to create a test user account. These are the account details that will be entered on the device when testing in-app purchases. Within iTunes Connect, click on the Manage Users link. On the Select User Type screen, select the Test User category then Add New User. When prompted, enter the credentials for the test user, taking care not to try to use an email address already associated with an active iTunes account.

Once the administrative tasks are complete, select the Manage Your Applications option followed by Add New App. Provide an App Name (this must be a name that has not been used by another developer so may involve some trial and error) and a SKU Number (which can be any sequence of characters involving letters, numbers, hyphens, underscores and periods). From the Bundle ID menu, select the InAppDemo Xcode iOS App ID bundle created previously.

On the subsequent screens, configure information relating to pricing, availability, content and images before saving the new application configuration.

Creating an In-App Purchase Item

With the application configured, the next step is to add an in-app purchase item to it. Within iTunes Connect, select Manage Your Apps. A new screen will appear including any apps previously configured, including the new InAppDemo app. Click on the application in the list to navigate to the App Information screen as illustrated in Figure 85-2.

Setting up an In APp Purchase item in iTunes Connect

Figure 85-2

To configure an in-app purchase item, click on the Manage In-App Purchases button and, in the resulting screen, select the Create New button. From the list of in-app purchase types, select the Non-consumable option to move to the In-App Summary screen where the following information will be required:

  • Reference Name – The name by which the item will be listed in iTunes Connect and in sales reports.
  • Product ID – The unique product ID for the item. This is usually constructed using the bundle identifier of the application with which the purchase is associated and must be unique. Make a note of the product ID you enter as it will be needed later in the example.
  • Price and Availability – The price of the item and whether the item is available for sale. For this tutorial, set the Price Tier to 1 and Cleared for Sale to Yes.
  • In-App Purchase Details – For each language the application is required to support, enter a Display Name and a Description for the item. Whatever you enter here will appear in the application later when the user is prompted to make an in-app purchase.
  • Hosting Content with Apple – Indicates whether or not content will be hosted on Apple’s servers for this purchase. For this example no content will be stored.

Once the settings have been configured, click on the Save button. Upon returning to the in-app purchases list, the new purchase item should be listed as Waiting for Screenshot and we are ready to start developing the application in the next chapter.


Before any code is written for the application, a number of important steps must first be performed in order to support in-app purchases. This includes creating an appropriately configured App ID for the application. The iTunes Connect portal is then used to create a test account for testing of purchases, an entry in the App Store for the application and to declare and create items for the user to purchase. All of these steps are important and, if not completed accurately, can lead to problems occurring in the purchasing process.

Learn SwiftUI and take your iOS Development to the Next Level
SwiftUI Essentials – iOS 14 Edition book is now available in Print ($39.99) and eBook ($29.99) editions. Learn more...

Buy Print Preview Book

PreviousTable of ContentsNext
Building In-App Purchasing into iOS 7 ApplicationsAn iOS 7 In-App Purchase Tutorial