I’m attempting to update a project to the App Store for use with TestFlight and I’m running into two different issues. If I try and use Xojo to upload I get the following error message:
2025-04-12 21:34:34.665 ERROR: [altool.600001E081C0] [ContentDelivery.Uploader.600001E081C0] Validation failed (409) The installer package includes files that are only readable by the root user. This will prevent verification of the application’s code signature when your app is run. Ensure that non-root users can read the files in your app. (ID: 13deec5e-7f3d-467e-a3e9-bbf3699d6d51)
I’ve looked through the app package and I can’t find anything in there that has root as owner.
If I try and use AppWrapper to sign and package the app (as I usually do) and has worked many times before. I’m getting a different error message:
Cannot be used with TestFlight because the signature for the bundle at “[appname].app” is missing an application identifier but has an application identifier in the provisioning profile for the bundle. Bundles with application identifiers in the provisioning profile are expected to have the same identifier signed into the bundle in order to be eligible for TestFlight.
The provisioning profile is showing an App ID of the form [TeamID].[BundleID], rather than just [BundleID].
So it seems the provisioning profile has always been that way, so it’s not the issue. However, I have discovered that in building the application I can see my org.ditl.appid value in the Info.plist file, if however I build for submission via Xojo that is replaced by ???. I’m assuming that the same thing is happening in the AppWrapper case, resulting in the message about a “missing an application identifier”. What ever it is, is common to both processing methods.
Or so I thought. It is the CFBundleSignature that is ???, not CFBundleIdentifier. Which is normal for macOS X.
Hi @Ian_Kennedy,
Cannot be used with TestFlight because the signature for the bundle at “[appname].app” is missing an application identifier but has an application identifier in the provisioning profile for the bundle. Bundles with application identifiers in the provisioning profile are expected to have the same identifier signed into the bundle in order to be eligible for TestFlight.
When publishing from the IDE, make sure you add the distribution provision profile named as “embedded.provisionprofile” in a Build > Copy File step using “Applies to: Release” and “Destination Folder: Release”.
Also, it may be helpful the documentation found at: Publishing macOS and iOS Apps to the App Store from Xojo — Xojo documentation
I think you mean destination folder: Contents.