Monday, December 19, 2011

Testing Apple In-App Purchase (IAP)

These days I'm working on an iPad application. We are implementing a store application and In-App Purchase is an important part of it. Although the applications can be tested on iOS simulators, applications with IAP operations can't. Running your application on a physical device is a must in this case.

IPA is a process which involves purchasing items from AppStore. So there should be a sand box environment to test these applications. iTunes provides a sand box for this purpose. Basic information on this can be found here. And there is an Apple technical note on this which is very useful.

But after following all these articles I couldn't get my code running !!!. I was doing a very simple task, that is fetching IAP items for my application. But I ended up with getting my app identifiers  in invalidProductIdentifiers array of the returned SKProductsResponse object. And I couldn't find the reason for this.

My app was in iTunes in Waiting For Upload status and there was a non-consumable in-app for that app in the Waiting for Screenshot status and cleared for sale.

Fortunately one my colleagues deleted the application from iTunes accidentally :) So I had to create stuff from the scratch (App Id, App in iTunes and IAP entries). But this time I kept my app's status in Prepare for Upload rather than promoting it to Waiting For Upload status and....... this time it worked !

But I couldn't find an article describing the status configurations for IAP testing.

If you guys find any official Apple article on that please let me know.