Issue reviewing first IAP products

I'm having trouble getting my IAP products and first builds accepted. Things all worked fine now in sandbox testing, but the App Review team's iPad, ios 13 with wifi always failed to retrieve the product information. I had added code to retry product queries several times over time, but it did not help. I can even retrieve product info in simulators.


- I've added network checks, so the shop page open buttons won't show up as enabled if no product info is retrieved, so I'm pretty sure they didn't receive the information. I don't have App Review team's logs so I don't know what exactly happened.


Following tips on this forum, I had checked:


- All my agreesments, tax, and banking info are active, submitted, and in use.


- Both of my IAPs have screentshots and detailed notes attached (also, they're of the same type: non-consumable). After I hide my main button on product info failures, the app review team even found my less obvious purchase button in settings page and used that, so I now grey out the second button. The review team always said specifically that the buttons "did not respond", not that they didn't find the IAPs. If it's an account issue, they'll be able to see my in-app shop page with real purchase/price button, so I'm pretty sure they didn't receive the product query results successfully (perhaps my IAPs aren't valid in their environment for some reason).


- Both IAPs are "cleared for sale"


- Both of my IAPs are in the status of "Waiting for Review": I cannot find a way to associate them with my new builds. The IAP section had disappeared from my app's App Store -> iOS version panel. I actually don't even remember they existed. Sometimes after review both of my IAPs became "Developer Action Needed", other times only one of them became "Developer Action Needed". They'll became "Waiting for Review" again after I slightly modified the localization descriptions until everything became yellow (same color with waiting for review, changing one localization makes IAP waiting for review again, but all localizations need to be modified otherwise the unchanged ones stayed red).


- All my signings are automatically handled by xcode. I'm running 11.1 on mac os Catalina 10.15


Any insights will be appreciated. Thanks!

Replies

It's unclear what problem App REview is having with your IAPs. Is it that they don't exist or that your button doesn't generate a purchaseRequest? If it works in the sandbox and doesn't work in App Review then the problem is with the attachment to the binary. (Assuming you addressed the 'cleared for sale' and contracts issues.)


> I cannot find a way to associate them with my new builds. The IAP section had disappeared from my app's App Store -> iOS version panel. I actually don't even remember they existed.


There are two ways the IAPs could have become "Waiting for review". If you submitted them individually (wrong) or if you attached them to a binary and submitted the binary (correct). If you submitted them individually you need to cancel that somehow and get them back to "Ready to submit".


Then.....


Select the "App Store" page, select under the "iOS App" the app version that you are submitting. Scroll down to just below the "Ratings" area and see if there is a bunch of IAPs for you to select.

Thanks for the reply. I'm now leaning towards that there was something wrong with binary-IAP association as well.


What's weird now is that my IAPs did become "Developer Action Needed" more than once already. During those times, I still don't see any IAPs to select. The next section after "General App Information / Version / Rating" is Game Center capability.


After modifying some descriptions, the "Developer Action Needed" status switched to "Waiting for Review" directly, not "Ready to Submit".

Should I ask for technical support? If so where do I start?

Requesting support occurs via two channels. One is via the 'Contact Us' link/tree below, the other is via Account/Member Center Developer Technical support. The latter is code level, so don't expect them to get involved with questions/issues that are otherwise store-centric.


However, in the case of rejections, the process expects you to stay in that lane if possible.


Sorry if I missed it but...


  • Did you appeal?
  • If so, what did you say?
  • How many times?
  • How many rejections?
  • What did each rejection say?
  • Were you told to make changes to meta data and not re-submit another build?
  • Were you specifically told to resubmit?


** Note these are simply questions to learn more details about what’s transpired to this point, not suggestions on what you should do next.



Good iuck.

Try adding a 'test' IAP and see if the IAP selection table reappears.

It showed up.


However, in another app of mine that has an online IAP, the associated IAP product does not show up in the App Store / version panel between General Information and Game Center, so having the ability to add a new IAP to my binary does not necessarily mean that the two older IAPs aren't correctly associated with my app / binary. 😠 It's weird that the associations are shown nowhere in the site.


That said, seeing the add section, I now do have a vague impression that I added the two. I'll consider re-add with new product IDs if further external testing showed no luck reproducing the issue.


Thanks again for the replies.

And the old IAPs are marked 'waiting for review' - correct? No red buttons showing? No 'needs developer action'?


If so, then it sounds like they are correctly attached to the binary and waiting for you to submit the binary for review with the IAPs or, if the binary was submitted, they are all waiting for review.

After some more testing and research on guidelines, I ended up continuing my argument with App Review board using Resolution Center. To my nightmare, my app got into "in review" status without any reply for three days. I did not sleep well, but I'm relieved now this morning I woke up to find that I had passed the review.


Here's the whole story behind my choice to add notes to Resolution Center:

(A) The "contact us" support said that I should contact app review using resolution center. (Hey, App Review pointed me to "contact us" first okay?) What I asked "contact us" is whether they can check the IAP-binary associations for me. Both app review and "contact us" replied nothing about it to me. I can only assume this is now obvious in App Store Connect UI. Yellow-light "Waiting for review" after review and developer action, means they're correctly associated like PBK suggested. I did check all metadata (IAP info/descriptions/screenshots) to make sure they're ready after all. If they're not associated with the binary yet, they should be in "Ready to Submit" state and can be added in the App Store/iOS App version page, IAP section is between Age Ratings and Game Center capability (only visible if you have any "ready to submit" IAPs, I sincerely hope they will show associated IAPs here in the future; it was driving me nuts).


(B) I was thinking about whether I'm eligible for a technical support and I read this:

https://developer.apple.com/support/technical/

which led to this (Technical Note TN2431: App Testing Guide):

https://developer.apple.com/library/archive/technotes/tn2431/_index.html


I then understood that

https://developer.apple.com/library/archive/technotes/tn2431/_index.html(1) According to section "Persistent Issues", I am clearly not eligible because I'm using a 3rd-party development environment.


(2) "User privileges" section caught my attention:

The tech note seems to be saying that app review may be using environments with limited access, to check whether the app does perfectly complete exception handling, preferrably on everything. My first rejection about IAP indeed made me change my network status handling, and so I added some retries on product queries with corresponding UI displays. While this is all my presumption now: I suspected that the app review is testing how my app handles devices with parental control where IAP is disallowed. That's the only way I can reproduce exactly the same result, and it matches what SKPaymentQueue.canMakePayments() document said in the "discussion" section. It'll also explain why there are anecdoctal reports on this forum saying that the app review somehow just cannot access IAPs that are handled correctly in sandbox environment. I did already handle the no-payment-access case by hiding my main shop button and greying out my secondary purchase button, so I asked specifically about the parental control with explanations on that I think I handled that part already. I submitted screenshots about parental control settings and was replied with silence and "in review" status.


While it is all good for Apple to expect perfect IAP UX flow handling, I really hope it's not all black box testing and developer guesswork. Because they said nothing, I don't know whether it's about parental control handling even after approval.


======


TL;DR: IAP works in sandbox but not in app review?

(1) Double, triple check the IAP guides and configurations (search this forum for shorter check lists):

https://developer.apple.com/in-app-purchase/


(2) Check "Technical Note TN2431: App Testing Guide" and make sure you handle slow network environment and parental control correctly (reflect such status in your UI).

https://developer.apple.com/library/archive/technotes/tn2431/_index.html


(3) Be honest, patient and ask nicely in Resolution Center; keep your expectations low. They don't reply directly but can and will point you to right, related guide documents (if you asked the right questions).

https://developer.apple.com/app-store/review/guidelines/

Section 2.1: Please don’t treat App Review as a software testing service

(My IAP was rejected as violation to 2.1 App Completeness.)


======


Still TL;DR?

https://developer.apple.com/app-store/review/guidelines/

Read app store review guidelines, tech notes and check everything. Good luck ..


Many thanks to PBK and KMT for sharing their knowledge on IAP configurations and common mistakes. Google results all point to here and surely it's the right forum!

>I'm relieved now this morning I woke up to find that I had passed the review.


Thanks for the update, good luck in the store.


Ken