App Store Connect IAP Catch-22

Well, here we go again.

The subscription items are rejected because I have not submitted a binary. (Except I have, of course.)

The binary is rejected because I have not submitted the IAP subscription items. (Except I have, of course.)

Neither lets me submit the other again alongside it.

Brilliant system.

Thanks to this post...

https://developer.apple.com/forums/thread/838456

...I think I understand what is going on here. It's Apple's fault.

Apparently the engineers at Apple are assuming that you know that they are envisioning an envelope metaphor for review submissions. They want the app build to be included in a particular version record which is in turn supposed to go into the draft envelope alongside the subscription records, which should also be in the same envelope. Like this:

This means that you should abort in the middle of the process of submitting a new build of an app version for review—a key point that is told to the developer absolutely nowhere and is completely counterintuitive. There is also no UI element that would automatically pick up any pending items to also add to your envelope, or even suggest that you should. It's all on you to read Apple's engineering team's mind.

If you fail to read their mind and just pay attention to what they say, when you can even get it to show up, the IAP section on the version side sends you to the subscription side with a notice, and on the subscription side of course, there is nowhere to attach a version. That is because in their infinite wisdom the people at Apple assumed you would just know about their metaphor and submit each half separately to the same draft envelope you didn't even know you were supposed to create.

But it gets better. Because once you've done all of that (which can take weeks to figure out, as it has for me), their buggy code doesn't reset any rejection flags on pending subscription records. Note how these records are both "Ready for Review" and not ready for anything at all because they have error flags, all at the same time:

So you actually cannot submit your envelope for review, because the subscription records are marked as having an error.

What's the error? You were rejected before because you didn't submit them alongside the binary because you can't read minds.

How do you clear the error state? I don't think you can without deleting the subscription records and starting over (a nightmare); presumably Apple can write to its database directly.

But it gets even better. Because there is a bug in App Store Connect that highlights only the last subscription record in red when it tells you that there's an error, so it makes it seem like there is something wrong with that particular record.

There is nothing wrong with that particular record. If you delete it from the envelope and try to submit again, App Store Connect will just highlight some other subscription record—one that previously looked fine—and tell you it has an error next.

So this madness makes the stupid metaphor with fingers pointing at each other that much more confusing. There is also a separate bug that makes the subscription record names spontaneously disappear.

And a third bug that just throws a general error for all subscription records ("An error has occurred.") which prevents you from seeing any of them.

Whoever designed this should be fired. Whoever tested it should be fired. Every engineer at Apple who touched it should be fired. This is totally ridiculous and it has wasted a lot of not just my time, but many, many people's time. Just read the forums.

I'll call Apple tomorrow and ask them how I am supposed to move forward from here.

At least for me, once I got to the point you're at now, I was able to edit a subscription and add or remove a period to the end of the description or localization description. That cleared the error state and allowed me to add it to the submission.

Like you said, not intuitive, but it got the job done for my submission at least.

Well, since it's Sunday night and no one at Apple is going to pay attention to this until tomorrow at least, I figured maybe I could get a head start on things by biting the bullet and deleting the subscription records so I can re-create them.

Nope!

That's not allowed either. Even though they are deleted, they are also not deleted simultaneously because you can't create another with the same identifier. (This reminds me of when I started tinkering in Xcode and ended up locking myself out of my own product identifier because I hadn't yet chosen a corporate development team, and Apple gives you no way to release the identifier from a personal team and assign it to another—another bonkers design decision that takes customer service intervention and about a week to resolve).

So you can't submit, you can't delete and re-create... It's just broken. That's all there is to it. I find it hard to believe because Apple has been doing this a while and they are the most financially successful company on Earth. And yet. Here we are. Nothing works.

App Store Connect IAP Catch-22
 
 
Q