Dealing with IAP for multiple staging

Hi,


I'm working on an auto-renewable subscription in my application and I get some troubles because my app has multiple stagings so that I can have each of them on my device.

Exactly, I have 3 stagings:

- Production (indeed) for the release state (appID looks like "com.company.app")

- Beta for the test users (appID : "com.company.app.beta")

- Dev for me, it's the state where features are in Working In Progress ("com.company.app.dev")


I have my IAP product with ID "com.company.app.premium.1month" (i.e premium feature, duration: 1 month), it works great when testing with the app in Production staging (and debug provisionning profile !) but not with my Dev app. So I though "maybe, it's because of the ".dev" in the appID ?", so I created another IAP product with ID "com.company.app.dev.premium.1month" and it still doesn't work.

I think it's because my appID in iTunes connect is actually "com.company.app" and is not matching the one in Dev staging "com.company.app.dev"


So my question is : Is it possible to make IAP working with multiple staging like this ? I read in forums and article that having multiple appIDs is not bad because you can have the Beta version AND the production one on your device at the same time, but nobody is talking about IAP troubles.

If it's not possible, can it be a reason to re-think my staging logic ? Do you have any best practices about it ?


Thank you in advance for your answers,

Bilkix

If I understand correctly, the desire is to have 3 variations of the app. From the iAP aspect, all in app purchase identifiers are associated with a specific app ID. iAP identifiers won't validate when associated with a different app bundle ID. When the app issues the SKProductsRequest, there is a low level call made to the iTunes store which includes the identifiers as well as the application bundle ID. For this reason "com.company.app.premium.1month" won't validate when the SKProductsRequest is issued by an app with the bundle identifier - "com.company.app.beta". For the SKProductsRequest to work with the app bundle indentifier "com.company.app.beta", one would need to register a unique iAP identifier in iTunesConnect with the app bundle identifier. Also you cannot define the same iAP identifier used with another app.


Others can comment on the use of different staging bundle ID's. My thought - get a separate device and continue to use the .app bundle ID with the desired version number.


rich kubota - rkubota@apple.com

developer technical support CoreOS/Hardware/MFI

Hi Rich,


Thank you for your answer, you confirm what I though. But unfortunatly I only have my own device... I'll get use to that, and will work for preventing IAPs for my appIDs differents than "com.company.app".

This is very problematic for a number of reasons. 1) my bundle id has a dash in it and dashes are not allowed in product ids 2) Having multiple bundle ids is essential to our workflow for testing. I need to be able to have a development version and store version of our app on the same device at the same time.

Dealing with IAP for multiple staging
 
 
Q