Note that there are some explanatory texts on larger screens.

plurals
  1. POUpdated app with new explicit app id, in-app purchase. SKProductsRequest returns empty list of products
    text
    copied!<p><strong>Background:</strong></p> <p>The current for-sale version of my app uses a wildcard app ID, and the bundle ID is simple and doesn't conform to the <code>com.companyname.appname</code> convention (it's just 'appname'). The App ID it uses is simply of the form 'bundleseed.*', resulting in, I believe, 'bundleseed.appname' when signed with the provisioning profile. (Why? Because this app has been around since the early 2.x days before Apple recommended explicit App IDs, and before XCode introduced the com.companyname convention.)</p> <p>I'm adding In-App purchase to the app, which requires an Explicit App ID. I've followed the instructions in <a href="http://developer.apple.com/library/ios/#qa/qa1680/_index.html" rel="nofollow">Technical Q&amp;A QA1680 Updating from a wildcard App ID to an explicit App ID</a>. The result is that I have a new explicit app ID of the form 'newbundleseed.appname', and the new provisioning profile used to sign the app specifies this. The bundle ID in the info.plist remained the same 'appname'.</p> <p><strong>Problem:</strong></p> <p>When I deploy the new app from XCode over the top of the old version it appears to work fine. The old-version app instance is replaced with the new app and all of the new features are in place. <em>However, when the app submits a SKProductsRequest it results in an empty list of products.</em> If I deploy the new app as a fresh install (not copying over an old version) then everything works as expected - SKProductsRequest results in a full list of my available products.</p> <p>I also noticed that the upgraded build carries forward some aspects of the old version, which is strange to me. Specifically, the old version of the app had a default.png which the new app doesn't yet have as part of the build, yet the upgraded app displays the old default.png while it is loading. It's as if the upgraded app is a merge of the old and new.</p> <p>My primary concern is that In-App purchase will work for my upgrade users. Am I doing something wrong with the Explicit App ID, or is this just an issue with the fact that I'm using the In App Purchase sandbox? In which case, ow can I be confident it will work when released?</p> <p>Also, any insight on why/how the new app doesn't seemingly replace the old app bundle in-full?</p> <p>The only thing I can think of is that instead of generating a new bundle seed (as detailed in QA1680), I should have used the old bundle seed when creating the new App ID. i.e. the old App id is 'oldbundleseed.*' and my current new one is 'newbundleseed.appname', and perhaps it should be 'oldbundleseed.appname'. But I cannot do this because the provisioning portal wont let me create an app ID that differs only by bundle seed. If this is my issue, what to do? Contact Apple?</p> <p><strong>TL/DR:</strong> an existing app, updated with a new explicit app ID as to support IAP, works fine except that SKProductRequests result in empty product lists when the app was updgraded vs. a clean install where they result in a populated product list.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload