Cannot get my app update (with IAP for first time) approved

I’m trying to get approval for an update to my app to transition from paid model to IAP subscription. This is my first time submitting an app with IAP. This is my current state:

  • App submission shows rejected
  • IAP subscriptions show "Development action needed"
  • Localization (for all subscription plans) was showing "Rejected"; I updated (only) the review notes for each subscription plan, and now the status for the localization of each subscription is "Prepare for submission" (the status for each subscription is still "Development action needed")

I'm at a loss for what needs to be done, and in what order. Sandbox testing has been working fine all along.

1 - I noticed my submitted binary was missing the "In-App Purchase" capability in Xcode (under target capabilities). Could this be the reason? Is this even needed? I am surprised that weeks of sandbox testing without the IAP capability added in Xcode has been working fine.

2- I seem to be in a chicken and egg situation,

  • Do I need to submit localizations first for review and how? Do I need to submit the subscriptions first for review and how?
  • It seems modified/new localizations need approved subscriptions, and new/modified subscriptions need an approved app with IAP support first, is this correct understanding?
  • As I mentioned, in the current state, I can see the app working fine with sandbox testing

Appreciate any help with step-by-step instructions to get past the review.

Answered by _ptorab_ in 818127022

After a few attempts I learned the reason in my case was missing EULA in the app binary and the app description in the App Store. See the review notes below (which specifies both are required),

The painful part was that all IAP subscription definitions become useless if the binary is rejected (when introducing IAP subscriptions for the first time); I had to recode all of them. Design your code and subscription product identifiers in a way that changing identifiers wouldn't need a binary update.

Review notes in my case (relevant pieces),

  • Update the app's binary to include the following required information:

    • A functional link to the Terms of Use (EULA)
    • A functional link to the privacy policy
  • Update the app's metadata to include the following required information [metadata in my case meant app description on the App Store]:

    • A functional link to the Terms of Use (EULA). If you are using the standard Apple Terms of Use (EULA), include a link to the Terms of Use in the App Description. If you are using a custom EULA, add it in App Store Connect.
Accepted Answer

After a few attempts I learned the reason in my case was missing EULA in the app binary and the app description in the App Store. See the review notes below (which specifies both are required),

The painful part was that all IAP subscription definitions become useless if the binary is rejected (when introducing IAP subscriptions for the first time); I had to recode all of them. Design your code and subscription product identifiers in a way that changing identifiers wouldn't need a binary update.

Review notes in my case (relevant pieces),

  • Update the app's binary to include the following required information:

    • A functional link to the Terms of Use (EULA)
    • A functional link to the privacy policy
  • Update the app's metadata to include the following required information [metadata in my case meant app description on the App Store]:

    • A functional link to the Terms of Use (EULA). If you are using the standard Apple Terms of Use (EULA), include a link to the Terms of Use in the App Description. If you are using a custom EULA, add it in App Store Connect.
Cannot get my app update (with IAP for first time) approved
 
 
Q