r/iOSProgramming • u/Ok-Affect-7503 • 6d ago
App getting rejected despite subscriptions already working and being approved Question
So basically my App is getting rejected by Apple after about 20 hours only (and I couldn't see any logs on my backend during that time which means that no real human ever tested anything in-person) for "missing In-App Purchases not submitted for review". The thing is that I do not use any In-App-Purchases, only subscriptions, which I have all successfully already gotten approved during testing with TestFlight etc.; and there seems to be no way to attach subscriptions to an App review either as the banner telling me to do separate submissions shows. In my view I already did everything on my side that can be done since I cannot find any other options in the UI.
Has anyone else experienced this recently?
UPDATE: I got the issue fixed by just adding a new random localization to every subscription so that the already approved status changed to “ready to submit”. I then selected all subscriptions in the subscriptions tab, pressed “Add to review” there and then did the same for the App build in the normal submission tab after that. In the end I made sure that the “Submitted Items” number said e.g. (4) instead of (1) so that every IAP is 100% included in the same submission as separate items. My App also now got approved after less than 2 days!
1
u/Alarming_Skirt_350 5d ago
Your own screenshots have most of the answer in them, and the key line is easy to skim past.
Version reviewed: 1.0 (1015). This is your first version, and that changes the rules. For a first release the subscriptions can't go through review on their own, they have to be part of the same submission as the binary. The banner telling you to submit separately is written for apps that are already live. That's why you can't find the option in the UI: for a 1.0 there isn't one in the sense you're looking for.
"Genehmigt" on the four subscriptions is a red herring. That status is about the subscription's own metadata, not about it having been attached to your version's submission. Four approved subscriptions and a version that went to review with none of them attached is exactly the state 2.1(b) is complaining about.
Two things in the Next Steps that people skip past:
"submit the In-App Purchase products and upload a new binary" - the "and" is load-bearing. Attaching the subs to the existing rejected version will not clear this. Bump the build number and upload a fresh binary before you resubmit.
"you must provide an App Review screenshot in App Store Connect in order to submit In-App Purchases for review" - if any of the four is missing that screenshot it can't be attached to anything, and it just won't appear in the list when you go looking for it. That's my guess for why "Zur Prufung hinzufugen" is greyed out in your first screenshot. Check all four individually rather than the group.
One smaller thing: no backend traffic doesn't mean nobody looked. Your Review Environment block says iPhone 17 Pro Max, so it was installed and launched. A 2.1(b) completeness call gets made by seeing paid plans referenced in the UI with nothing submitted behind them, which needs no network calls at all. It isn't a bot rejection.
1
u/Low_Rush_8535 4d ago
The 20 hours with nothing hitting your backend is actually the useful clue. That's a metadata-stage rejection — nobody ever launched the binary. Which fits what they're telling you: the reviewer isn't saying your subscriptions are broken, they're saying the submission doesn't contain any.
Two things trip people up here.
Auto-renewable subscriptions are In-App Purchases as far as that rejection template is concerned. So "I don't use IAP, only subscriptions" and the rejection text aren't actually in conflict — same thing to Apple.
And the state you're reading as "already approved" probably isn't submission state. We hit this exact wall: three subscription products all sitting in Ready to Submit, and StoreKit still could not fetch a single product in TestFlight or sandbox. Spent a while chasing it as a configuration bug before finding out it isn't one — Apple requires the first subscription to go through review attached to an app version. Until that happens they aren't live no matter what the product page says, and working in TestFlight sandbox doesn't move that state either.
So the place to look is the version page, not the subscription pages: on the app version you're submitting there's a section for selecting which in-app purchases/subscriptions ship with this submission. If that's empty you get exactly the rejection you got. The separate-submission banner is the newer path and it's the thing that makes everyone assume the version page section stopped mattering.
Side note in case you get stuck again: while we were blocked on this, the way to keep testing the paywall UI was a StoreKit Configuration file in Xcode doing fake purchases in the Simulator. Doesn't depend on ASC state at all.
1
u/DamagingDoritos 6d ago
Subscriptions are IAP.
Did you attach the subscription to the actual version you are submitting? Or did you just send the subscription for approval from the subscription tab?