I recently finished the first version of an iOS application. I have several in-app purchases within it. When testing these, I always used a physical iPhone. Apple just approved the build for release and the app is now in "Pending Developer Release." As one last sanity check, I generated a promo code for myself on app store connect and downloaded the app onto my phone through the app store. I quickly noticed that the SKProductsRequestDelegate method is never fired and the list of in-app purchases is never downloaded from Apple's IAP server. This is similar behavior to when the app is run within a simulator: the IAP data is never loaded.
I am unfamiliar with how the "Pending Developer Release" stage impacts in-app purchases. Will they work as expected when I release the app to the public? Is there some change I need to make and resubmit?
Any help would be greatly appreciated.
As far as I know, it should work seamlessly except for the charging (You won't be charged if your app is downloaded from outside AppStore). So trying to gather logs may help you in this case.
Turns out this was an issue on Apple's end. I contacted support and something on their end had been messed up when they approved the in-app purchases.
Related
I recently started using RevenueCat for all of my InApp purchases; today my app was approved in the App Store so, I went ahead and downloaded it to try the new version directly from the App Store and I noticed that the In-App purchases are not loading. What is funny is that if I connect my phone to my computer and compile the app directly from Xcode it does show the In-App purchases.
So my question is, is there any setting in RevenueCat that we need to turn on when the app goes into production?
If such of setting does not exist, what would be a good way to troubleshoot the issue to determine where the problem is, if it's RevenueCat, the App Store or my code?
FYI - When I install the app directly from Xcode I can make purchases with a send-box account and everything functions as it should.
There aren't any RevenueCat settings to update when your app goes live. This sounds like a propagation issues with the App Store if these are new products - sometimes they can take ~24hrs to be available in production to all users after being approved.
Unfortunately, doing nothing and waiting is probably the answer here. In the future if you can not show new products to users until >24hrs after they're approved it should prevent this from happening again.
Quick question, if my in-app purchases are listed on iTunes Connect as "Waiting for Review", should I be able to test them in a sandbox environment? Atm I'm getting an error that no products are available, but I'd like to make sure it's because of that and not an error on my end, just to speed things up. I'm using Unity to build my app and the store is built using their tutorial that can be found here: https://unity3d.com/learn/tutorials/topics/ads-analytics/integrating-unity-iap-your-game . The store does work on Android just fine btw. Thanks!
You should be aware of that if your app uses a brand new IAP but is not reviewed yet, your new release will crash immediately after it launches.
The experience was expensive for me :)
So, first make the IAP got approved. Then publish the build.
Well usually before you submit your app and your IAP too Apple to review everything and accept it you're supposed to have tested all your IAP and taken screenshots of them working.
So yes they should work before they're even sent to be reviewed.
You might want to follow those steps to make sure you've set everything up correctly : Adding In-App Purchase to your Applications
I developed an app with with an in app purchase, and was testing in sandbox mode with no problems. I submitted the app to the app store, which was just approved. The accompanying in app purchase was also approved.
However, the approved version can not access the in app purchase. Looking at the console, the in app purchase is returned in the invalidProductIdentifier list. However, it works fine on my simulator.
Not sure how to go about debugging this.
I can't really post any comment, so I've been posting my comments as answers. I can only comment on my own answer. Anyway, this comment might be absurd or might be nonsense, but: I've read several articles before that sometimes IAP is not working on simulators.
I got two apps already on App Store that uses IAP, but never experienced that before. Try debugging using a real device.
Lastly, make sure that the Agreements, Tax, and Banking are all approved.
While the other recommendations for Agreements/Taxing/Banking are good, I already had completed them.
In my case, it was simply a matter of the approved app binary propagating through the app store servers faster than my approved In-App-Purchase. After around 30 minutes, it began to work once the IAP was available on all of the servers.
During development I've created test accounts which are able to obtain the price of the in app purchase as well as actually purchasing it without an issue. However after publishing the iOS app to App Store, the version of the app in App store can't even retrieve price of the product, and nothing shows up when I press the button to send the purchase request.
Uninstalling the app and redeploy the development version to the same device got it to work again.
What could be the problem? Is there a way to debug or see logs on the app store downloaded version? (iOS noob here)
Thanks!
I had the same problem. The app was approved but in-app purchases were not working. After 24-48 of app publishing problem was fixed by its own. By the time app approved it was not appearing on App Store through search. After it was indexed on App Store in-apps started to work also.
It takes a little time even when everything is approved.
My binary was approved.
My In-App Purchase (IAP) was approved.
Testing the purchase in development with a sandbox iTunes Account worked great.
Purchasing in production with a real or sandbox iTunes Account would fail.
I didn't have to wait long, something like a couple hours and it just started working.
Now, my binary and my In-App Purhcase were approved at the same time and almost immediately after they were both approved, I released the app version to the store.
I'm not positive, but what I probably should have done was wait a couple hours before releasing that new app version and give the In-App Purchase a chance to "register" or "propagate" in the Production App Store.
Just a recommendation for others.
It takes some time, but the amount isn't predictable. In my case, I launched 3 very similar apps at the same time, so just add some data on this :
Everything was approved, the apps were quickly available on the App Store.
It took about 4 hours for 2 of the apps to show up in search results.
After 6 hours, IAPs started progressively showing up (not all at once) for these
After 9 hours, IAPs for the two apps were complete.
After 12 hours, IAPs for the last app started appearing, but the last app itself still wasn't showing up in search results.
After 14 hours, the last app appeared in search results.
The order in which I hit the "Publish" button didn't seem to have any influence, nor the number of IAPs, weight of the app, etc.
So delays are unpredictable and do not follow a specific rule ("First-in, first-out" or "search results and then IAP")
I found this Apple Tech note, which is includes follow:
Q. App Review has recently approved my application, but my In-App Purchase identifiers in the production version of the application are being returned in the invalidProductIdentifiers array.
A. When an application is approved, the developer must also approve the application for release to the App Store. On approval, the application ID is activated to the App Store. The same activation is required for the in-app purchase identifiers and can only take place once the application is activated. In some cases, the activation of the In-App Purchase identifiers may lag up to 48 hours following the activation of the application.
If the developer does not approve the release of the production application to the App Store, then any new in-app purchase identifiers will not be activated. This is an issue when a developer wants to verify the application prior to activating it on the App Store. If the desire is to test the in-app purchase process for the new items, the application must be activated to the App Store. This is only an issue for new in-app purchase identifiers in a corresponding application submission. Once these in-app purchase identifiers have been activated, application updates to the submission will find that these in-app purchase identifiers are validated, even if the update is not activated.
But in my case it takes even further, about 52 hours.
I found that doing a simple edit of the description in each IAP helps. Just make an edit, save it, revert to the original and save again. It took up to 8 hours for it to propagate across Apple servers. IAP's I didn't do this to had no change.
I am developing an iOS application with In-App Purchase (IAP). I have tested the IAP (in the sandbox environment) and it's working fine. Apple accepted the application and my IAP is ready for sale. But when users download the application and try to buy, they receive the alert the product is not yet available.
For information, I have two Apple accounts, one for the client and one for me. I have added the same productID in the two accounts. In my account it's just for testing and I have used the same productID for the release of the application with the client's account.
Do you think that the use of the same productID can cause this error in the Apple store?
Finally it was a Bug from the Apple Store, after waiting (6 days) it's OK.
how long did you wait after approval? My experience is that 4-hour of waiting, check it out here --- plus you can go thru a few things in the link to see if any of that was not properly set for your app.
IAP fails after release, but no in development stage