Xcode Automatic Signing for macOS Developer ID - xcode

I'm trying to sign a macOS app with Developer ID / Gatekeeper using Xcode 8 or 9. In the past, I've always done this by scripting codesign. But now I want to add a iCloud entitlement, and that seems to require signing by Xcode. The page on Developer ID in Apple's App Distribution Guide still shows what I remember from an older Xcode version. In Xcode 8 or 9, you see there is no more Developer ID radio buton…
Is the above a correct configuration for Developer ID? (I don't think so, but I don't see any other options!)
After Product > Archive completes, the produced BookMacster archive seems to be a Generic Xcode Archive instead of a app archive…
And the choices it gives me when I click Export don't seem appropriate an app…
If I Save Built Products, I get a directory structure which contains all of the other executables and helpers in the package, but not the BookMacster.app!

Related

ERROR ITMS-90283 with "Invalid 'com.apple.application-identifier' entitlement value" when submitting Mac Catalyst app

I'm trying to submit a Mac Catalyst app for the first time, but the upload keeps failing with this error message:
ERROR ITMS-90283: "Invalid Provisioning Profile. The provisioning profile included in the bundle maccatalyst.com.arlomedia.setlistmaker [maccatalyst.com.arlomedia.setlistmaker.pkg/Payload/SetListMaker.app] is invalid. [Invalid 'com.apple.application-identifier' entitlement value.] For more information, visit the macOS Developer Portal."
This happens if I manually or automatically sign the app. With manual signing, I have a new macOS App Store provisioning profile that I created as a Mac Catalyst profile using the associated iOS app ID. This shows as valid in the provisioning portal, and I can build (archive) the app just fine with this profile selected:
When I go through the submission process in the Xcode organizer, I have to "Import" the provisioning profile every time (I downloaded the provisioning file, and just select the downloaded file here), which is odd:
But after I select the file, I can click its info icon and everything looks correct:
Then I proceed with the upload, and when the progress bar reaches the end, the error appears and the submission fails.
The error message indicates something is wrong with the application-identifier, but I've checked this everywhere I can find it and it looks correct. I'm using automatically derived bundle IDs, which prefixes "maccatalyst" onto my iOS bundle ID. In some places where this appears, the ID is also prefixed with the App ID Prefix from the apps Identifier record in the provisioning portal. The screen shot above shows the last letter of the App ID cut off, but I think that's just the display in Xcode; if I open the provisioning file, the full ID is listed.
I have another app I've been working on at the same time and I was able to submit it successfully. I opened the archived .app files for both projects and compared the embedded provisioning profiles, and the only differences are things I would expect, like the app name and export time. The application-identifers and bundle IDs are formatted the same way, with the correct app prefixes. I also compared the info.plist files for the two apps and didn't see any significant differences there, either. The other app also required me to select the profile during the submission process, so it seems like that's not a problem (although with my iOS submissions, the profile name appears there automatically).
When I turn on automatic signing, some upload steps are skipped, but I get the same error message at the end of the upload. If I use the Validate App button instead of the Distribute App button in the Xcode organizer, I go through the same steps and get the same error message.
I've compared the setup of the app IDs and profiles of both apps, the signing settings, the build settings, the App Information pages in iTunes Connect ... everything is set up the same way. Does anyone know what else I should check?
I finally got this to work by giving up on the automatically derived "maccatalyst" bundle ID and using a custom bundle ID. Here are the steps I took:
In Xcode, turn off the "Derive Mac Catalyst Product Bundle Identifier" build setting.
Edit the "Product Bundle Identifier" build setting and add a separate bundle ID for the macOS platform. (screen shot 1)
In the iOS Provisioning Portal, edit the App ID for the associated iOS app and turn off the Mac Catalyst option.
Create a new App ID for the Mac version of the app, and enter the new macOS bundle ID.
Create new development and distribution profiles using the new App ID. When creating the profiles, these must be Mac Catalyst, not Mac, profiles. Xcode would only accept Mac Catalyst profiles when validating. (screen shot 2)
In App Store Connect, edit the macOS app record and change the bundle ID from the maccatalyst ID to the custom ID. This was still editable because I hadn't yet successfully uploaded a binary.
My new profiles now appear as Eligible on the Signing & Capabilities tab in Xcode, but they do not appear as options on the validation page when submitting. However, as with my original setup, I can click the Import Profile option there and select the file downloaded from the provisioning portal.
Note that this is the setup to use if you do not want Universal Purchase. If you do want that, you would need to use the same bundle ID as for the iOS app, and you might need to wait until Xcode 11.4 is released in order to submit the app with that setup. I'm not sure about that, but I am sure that you cannot submit apps with the Xcode 11.4 beta, because I tried it. (screen shot 3)
I didn't try automatic signing with the custom bundle ID setup. I think that would work because I think somehow the problem was related to the automatically derived bundle ID. That is basically deprecated with the upcoming Xcode 11.4 and Universal Purchase capability, so I suspect that a change on Apple's end has broken the validation of that style of bundle ID, perhaps only in limited cases that affected my app due to some factor that neither I nor Apple were able to identify.
Custom bundle ID settings:
"Profile is not a 'Mac Catalyst App Store' profile":
Cannot submit from Xcode beta:
I found this document:
Technical Q&A QA1710: Why do I get an "Invalid application-identifier Entitlement" error?
It states:
In modern versions of Xcode, you don't need to supply a value for this entitlement yourself, so the error can be avoided by simply removing the application identifier entitlement from your custom Entitlements.plist.
Xcode builds the application identifier entitlement for you based on the Bundle Identifier property defined in your Xcode project's Target > Info tab, so setting the correct Bundle Identifier in Xcode is imperative.
I don't have either of those problems, but maybe it will help someone else receiving this error.

Xcode "The bundle uses a bundle name or display name that is already in use."

Xcode 8.3. Trying to upload my app for TestFlight. As far as I can tell, I have everything lined up: My iOS development certificate, my app ID appears to be correct, I have a distribution profile that I have downloaded and I think is installed, (although this may be a problem, when I double click on it, it opens the beta version of Xcode 9, so I'm not sure if it's really seen in my 8 version).
On Itunes Connect I created my app, it's listed as Prepare for submission, and the bundle Id is the same as what is listed in Xcode.
So what is the piece I'm missing, what's with the message?

Developer-ID app validation removed in XCode 8.3 Beta 3 and Beta 4 - publishing outside of the Mac App Store still possible?

Trying to validate an archive on XCode 8.3 Beta 3 or 4, the Developer-ID option is no longer there - it automatically tried to validate it for Mac App. Store.
The project works fine on the first XCode Beta.
I raised a bug report and got this response from Apple: "Developer ID app validation was removed."
I've looked around and can't find any announcement of this.
My question: does anyone know if this means that Apple is removing our right to publish outside of the Mac App store?
(I'm sure I'm not the only one who would be negatively affected by this - I've put a lot of work into getting a solution working outside of the store)
Developer ID distribution is fully supported. Most of what the Developer ID validation function did was verify that you weren't using entitlements that you couldn't use with Developer ID. In Xcode 8.3, this functionality has been folded into the code signing and provisioning checks that are performed when you choose to export your app for Developer ID distribution.

tvOS Invalid Toolchain when Submitting tvOS 9.1 app

I'm trying to submit a tvOS app through iTunes Connect, and every time I try I get the following message:
Invalid Toolchain. New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, and tvOS 8 SDK or later. Don't submit apps built with beta software.
I have made sure to update Xcode to it's newest App Store version, and I'm not using any beta software.
While I never ended up resolving this issue completely, I did find a workaround.
When submitting an app, iTunes Connect checks the compiled app's compatibility to the latest operating system (in this case, for tvOS 9.1 build 13U85). While compatibility is completely fine between the two, Xcode has a bug. During the archiving process, Xcode specified my archive as Build 13U78 which is inaccurate and not correct.
A workaround I found, which is quite simple, changes the archive's build from (in my case) build 13U78 to build 13U85.
First, we'll create an archive which is self explanatory.
Second (and this is essential) we need to do the following:
Open 'Show in Finder'
Next, you need to right-click your archive and choose 'Show Package Content'
Then go to Products, then Applications, then repeat the second step (right click the .app file, then choose 'Show Package Content').
Once you're there, open the Info.plist file.
You'll see some version information in it, but what we want are:
DTSDKBuild
...
DTPlatformBuild
These two options should be something like:
DTPlatformBuild 13U78
...
DTSDKBuild 13U78
Modify 13U78 to be the most recent build of tvOS, or in my case:
DTPlatformBuild 13U85
...
DTSDKBuild 13U85
You're almost done! Just save the modified Info.plist file and close it out. Then Submit to App Store- you're done!
Make absolutely sure you're using the most recent build of tvOS.

Xcode submission error

I'm trying to submit a Mac OS X Application to the App Store but I'm currently stuck.
I've created and installed the 3rd Party Mac Developer Application and Installer certificate and added to Xcode the provisioning profile for Production.
When I Archive my application and, after validation, try to submit it, I can't choose the "Application" options 'cause the only option I can take is:"No Value".
I've tried to create a package (With "share" button) and test its installation process as suggest it by the Apple Documentation and the process terminate successfully.
But when I try to submit the package through the Application Loader app, I receive the error:"There is no embedded Java executable. Please reinstall Xcode Developer Tools".
The fact is that I've already reinstalled all the Xcode Developer Tools (I was using a beta version before) from the App Store.
Any ideas?
Do you use Xcode 4.2 and as a pre-release version? If so, try using Xcode 4.1.
Use "Application Loader" in Developer/Applications/Utilities. The tool that is present under xcode is full of bugs. You will need to give it the .app generated as a product by XCode. Did that help ? Annother thing you can try is to reject yourself the app into iTunes Connect, then set it again as "ready for download". It won't force you to upgrade your app version.

Resources