Xcode automatic signing consistently fails for the macOS target when adding the App Groups capability, even though the Developer Portal is correctly configured.
Error:
Provisioning profile “Mac Team Provisioning Profile: com.example.testapp.mobile” doesn’t support the App Groups capability.
Setup: • Bundle ID: com.example.testapp.mobile • App Group: $(TeamIdentifierPrefix)group.com.example.testapp.mobile
Troubleshooting Steps Tried (None Helped): • Changed bundle identifiers and deleted/recreated them in the Developer Portal • Deleted and recreated App Groups • Removed and re-added the developer account in Xcode • Deleted all provisioning profiles from the system • Cleared Derived Data and Xcode caches • Even tried on a clean macOS system
This setup used to work previously. The issue seems to have started after the Apple Developer account was renewed.
App groups have been evolving a lot recently, primarily to bring the macOS and iOS stories into alignment. See App Groups: macOS vs iOS: Working Towards Harmony for all the backstory.
Your app group ID, $(TeamIdentifierPrefix)group.com.example.testapp.mobile, is weird. It seems be a macOS-style ID, with the Team ID prefix, but then it also kinda uses the iOS-style format. I recommend that you use one or the other. Actually, I’ll take that one step further: I recommend that you you use an iOS-style app group ID unless you have a really good reason to stick with a macOS-style one [1].
As to what’s going on here, it’s hard to say. I tried looking up the state of com.example.testapp.mobile but AFAICT that’s not your real bundle ID, but rather a placeholder you used for this post.
What version of Xcode are you using? If you’re using anything older than Xcode 16.4, I recommend that you upgrade to that. Xcode 16.4 is aware of this app group harmonisation effort.
And once you’re on Xcode 16.4, set the Register App Groups.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] One such reason is that you need to maintain compatibility with an older version of your app. However, I suspect that’s not the case here.