Catalyst + Manual Signing?

I'm trying to experiment with a Catalyst version of my iPad app. I checked the checkbox, I selected the "My Mac" scheme, I ran... and then, code signing errors! In the "Advanced" WW session, it works like magic with Automatic Signing. Unfortunately, I support CarPlay and thus have to manually sign my app. Not as magical.


When I checked the checkbox, the Signing & Capabilties tab added a new macOS platform entry, and a bundle identifier: maccatalyst.com.mycompany.myapp. That maccatalyst.com bundle ID isn't dispalyed in my Certifiicates, Identifiers & Profiles section of the Apple developer site. When I try to add it manually, by adding an App ID, choosing Mac and specifying the explicit bundle ID, I get the following error: An App ID with Identifier 'maccatalyst.com.mycompany.myname' is not available. Please enter a different string.


How do I proceed?

Replies

Use the Product menu's 'clean build folder' to help flush indexed settings and use new to see if things straighten out.

I am seeing the same issue ... seems like the online manual creation of an identifier via the `Certificates, Identifiers & Profiles` page does not allow the maccatalyst prefixed name.

Solved it.


1. Go to Certificates, Identifiers & Profiles.

2. Select iOS app that you are trying to catalyze from.

3. Enable "Mac".

4. After few minutes you'll be able to see catalyst bundle identifier when creating an app from App Store Connect.

This does not work for me. When I select an of my identifiers, there is no option to add "MacOS" platform support to an existing app ID.

Any progress on this? I am having the same issue, and am using CarPlay as well.

I actually got up and running using Rolfbot's advice, eventually - but I couldn't get past the CarPlay entitlement. I didn't see a way to say "use these entitlements for the iOS app, and these ones for the Mac app", so I wound up just experimenting with removing the CarPlay entry from the entitlements file, and that got the macOS app to actually run.


I'm really just in the experimentation phase right now and not anywhere close to shipping, so I'm quite sure yet about keeping my CarPlay entitlement while keeping the macOS app intact.

scroll down the page. you will see Mac option. toggle it!

even though this is an old post, i ran into the same issue, and this and other posts have helped: you have to make sure you select the iPad app id and then the Mac checkbox will show up as options. checking this checkbox on the iPad app id will make the "maccatalyst." prefixed app id be available when creating provisioning profiles. if you select a Mac app id, the checkbox doesnt show. also after checking this box, you then have to re-generate your provisioning profiles (as you do every time an app id internal settings are changed). any old profiles w/ this id will be marked as invalid or something similar.


note also when creating the profile for the mac catalyst app for distribution to the mac app store, you have to use an Apple Distribution certificate, not a Mac Distribution certificate to generate the mac distribution provisioning profile (e.g. Not like old mac app signing for the mac app store). you may be able to sign the app w/ the mac cert + distrib profile on your local machine, but just try to upload it...that won't work. that was confusing.

I have the exact same problem and I am looking for a solution.

Do you mean you need to tick the Mac Catalyst option on the screen called "Edit your App ID Configuration"? It says this for existing Mac apps that are already on teh Mac App Store.

Using custom entitlements works by specifying separate entitlements files for the CODESIGNENTITLEMENTS key. I use xcconfig files for this:
CODE_SIGN_ENTITLEMENTS = $(SRCROOT)/Config/MyApp.entitlements
CODE_SIGN_ENTITLEMENTS = $(SRCROOT)/Config/MyApp_Mac.entitlements

Of course, you can also do this in the build settings directly by specifying a platform conditional (Any macOS SDK)
Thanks. Adding SDK configurations to Build settings works.