mac-catalystxcode11.4universal-purchase

Mac Catalyst ITMS-4241 error uploading binary


I have an existing iOS app with the bundle ID X. I was a few days early to the party, and just before Xcode 11.4 was released (having heard that Apple was now going to support Universal Purchase) I tried to create a Mac Catalyst version, with the bundle ID maccatalyst.X, and created a separate Mac record in App Store Connect.

Then the email dropped that "now" universal purchase was available, so I went and removed the separate bundle ID and instead added MacOS as a new record in the existing iOS app's bundle (X). Then I recompiled with Xcode 11.4, but when I then went to upload the archive for the Catalyst version, I got these errors:

ITMS-4241: "App is removed or deleted. Apps can't be validated or submitted while they're removed or deleted"

and

"Invalid AdamId: <Y>".

That app ID Y corresponds to the separate MacOS bundle, rather than the app ID for X - so it's trying to upload and attach my archive to the deleted app rather than the live app. I feel like I've exactly followed the instructions on Apple's own page about offering universal purchase under Multiple App Records:

To offer universal purchase, remove all but one version from sale and add the other versions to the remaining app’s record.

Have really been banging my head against the wall on this one!


Solution

  • The answer turned out to be really simple in the end - I needed to go to "Build Settings" and turn OFF the "Derive Mac Catalyst Product Bundle Identifier", so that the bundle ID became X rather than maccatalyst.X. I'd assumed that setting was for people who wanted separate apps, but I think it must get turned on automatically for Catalyst apps older than Xcode 11.4 when the project is imported for the first time.

    With that setting turned off, now it uploads fine to the correct place.