In-App Purchase in iOS Applications
In-App purchase is one popular way of increasing business revenue from your iOS application. In todayโs saturated mobile app markets, in-app purchases have redefined the app making business. From monetization standpoint, adding products in your iOS app will raise the bar to next level. In-app purchase technology allows you to sell additional app-products or digital products within your paid or free application. It facilitates the sale of products or services within your iOS application, through a smartphone device.
It is similar to making your game app more interesting by unlocking further levels and providing extra powerful sword or magic money box to the players.
Wide variety of content can be put up for sale on your iOS app, such as additional features or premium services, images, game levels or a magic wallet through which players can have unlimited money to play further levels. In app purchase have different types and can be integrated with your app as per the requirements
For in-app purchases the prerequisites are:
- ITunes Connect
- iOS Provisioning Portal
- Custom Code
- StoreKit
How to implement In-App purchase in iOS?
In app purchase service is accessed by your application through StoreKit API installed on your device. Prerequisites to implement in-app purchase in your iOS application are:
- Create a unique app ID in iTunes connect. While creating a new app, make sure you update with Bundle ID and code signing with XCode.
- Create a new app and add app information
- Add a new product for in-app purchase through โManage in-app purchaseโ
- For in-app purchase to work, make sure to set-up bank details for your application.
- Create test user account in iTunes connect page using โManage userโ accounts
- Create UI for in-app purchase
- After this create a single view app and enter bundle identifier.
- Update ViewController.xib and create IBOutlets. Add store StoreKit framework.
A connection between the iOS application and Apple iTunes server is established by StoreKit to get product information and perform transactions. To implement in-app purchase in your iOS application, you need to follow the steps below:
1) Have you created an app id?
First step is to create app id. For this go to developer-> member centre-> appID
Create provision profile. In order to do this, click on โProvisional Profileโ tab on left hand side-> select development->click on + icon-> select iOS development then select on the APP ID created in step 1. Then select certificate and device on which you want to run the iOS application. Next step is naming the profile and downloading it.
2) Have you enabled In-App Purchases for your App ID?
After you have logged into the provisioning portal select App ID and click โnew app idโ. Enter a common name and a unique bundle identifier. With this common name you will identify the app id in provisioning portal and bundle identifier will be the unique identification for your app. On the main app id page you will find your โAPP IDโ with a configure link on the right. Then select the checkbox next to โEnable in-app purchaseโ.
3) Have you checked Cleared for Sale for your product?
The in-app purchase form has a โCleared for Saleโ Checkbox. Checking that box will determine that the products in your application are available for sale. If this box is unchecked, the in-app purchase will not be available for purchase
4) Does your projectโs .plist Bundle ID match your App ID?
- While creating a new app id, make sure the projectโs .plist Bundle ID match your app id. Pick a different App ID name than before.
- Generate a new prefix and the format of suffix must be like this โ com.companyname.appnameโ
5) Have you generated and installed a new provisioning profile for the new App ID?
After generating the provisional profile that points to the app id you can drag the profile onto the Xcode icon in the Dock to install. You can also install the profile manually by selecting Window> organizer in Xcode, clicking โProvisioning Profilesโ category on the left. Then ctrl-click an existing profile, > reveal in finder and lastly drag and drop new profile into profile finder window.
6) Have you configured your project to code sign using this new provisioning profile?
To use provisioning profile in the Xcode, you must edit the projectโs .plist file to match Bundle id with App id. Also, edit the projectโs target info by following the points below, for using provisioning profile:
- Select Project > Edit Active Target
- Select the โBuildโ tab
- Check the configuration you desire
- Select your new provisioning profile for Code Signing Identity and the row underneath
7) Are you using the full product ID when when making an SKProductRequest?
In the SKProductsResponse object, check invalid product identifiers. Make sure it is empty and configure your identifiers properly on iTunes connect.
8) Have you waited several hours since adding your product to iTunes Connect?
Wait for 24 hours for the product to propagate through Appleโs distributed network. If it is still not working, you might have to check working of your device once.
9) Is your device jail broken? If so, you need to revert the jailbreak for IAP to work.
To revert back a jailbreak on your phone, follow the steps below:
- Access iTunes on your desktop and connect iPhone 5 with it through USB.
- Restore to an existing firmware or Update to latest available firmware and select the device on the list in iTunes
- Restore or Update at the same time by clicking the shift key.
- Choose the relevant ipsw firmware file that you are updating to.
- The device will restore to factory settings.
- The device will no longer be jailbroken
10) Testing
Before testing in-app purchases, sign out of iTunes Store on your device by opening the settings app, tapping the โStore rowโ and tap โSign Outโ. After this you can test successfully from your device
11) For iOS7 and Xcode 5
For these you have to test on device as apple restrict IAP testing in simulator.
Go to setting -> iTunes & App Store -> and log out of your account. Remove app from device and clean all data.
Such purchases have become a rising trend in mobile app markets to make additional money by selling extra products and services through your app. At TBI we never underrate the influence of in-app purchase, which is why our services are of superlative quality. If you too are looking to monetize your app through in-app purchases, you can always Reach Out To Us.