I'm trying to setup a macOS 26 build environment in a VM (using UTM and the virtualization framework Apple provides).
I have Xcode 26 installed and have logged into my Apple ID and verified that the team and other configuration looks fine in Xcode settings.
When trying to build the macOS app, I see errors saying the VM's device ID has not been registered. I have confirmed that the device ID is registered both in the Provisioning portal AND the downloaded .provisionprofiles (in Library > Developer > Xcode > UserData).
This problem appears on multiple targets (e.g. the main app and extensions).
If I try to manually provision the app, using the Provisioning portal, I can build the product, but it will not launch because of Gatekeeper issues.
Finally, signing to run locally doesn't work either. As the app launches, frameworks refuse to load because Team IDs don't match. With ad hoc provisioning, there are no Team IDs.
I've come to the conclusion that this just isn't possible.
Which is a shame because I need to support products with a build environment on macOS 15 and cannot move over to macOS 26 yet. I suspect many developers outside of Apple are in a similar position.
So, the tl;dr here is that this issue is now resolved. There may be other outstanding issues, but you can now:
- On a macOS 15 or later host, install macOS 15 or later in a VM.
- On the guest, log in using an Apple Account in System Settings.
- And install Xcode.
- And add your Apple Account to Xcode.
- And then build and run a Mac app.
- Even if it uses a restricted entitlement.
If you’re interested in how I tested the above, I’ve included a summary at the end of this post.
If you’re encountering other issues, please start a new thread with the details. This thread is already long enough |-:
If you’re interested in the history, I have a summary of that in this post. That was from 13 Jun 2025. Since then there’s been one critical change, namely that on 9 Oct 2025 we rolled out a Developer website update that fixes the provisioning UDID issue (r. 149209127).
And on that note, I think I can finally put this issue to bed.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
To test this:
- I ran Virtual Buddy 2.0.1 on macOS 15.7.1.
- Using that, I created a new VM running macOS 15.6.2.
- In the guest, I installed Xcode 26.0.
- I logged into System Settings using my test account. This has two-factor authentication enabled.
- I then logged into Xcode > Apple Accounts with the same account. This is not a member of any paid team, so I ended up using a Personal Team.
- I created a new app from the macOS > App template.
- In Signing & Capabilities, I confirmed that automatic code signing was enabled and my Personal Team was selected in the Team popup.
- Still in Signing & Capabilities, I added the Maps capability. I chose this because it’s tied to a restricted entitlement [1] but is available to a Personal Team. See Developer Account Help > Reference > Supported capabilities (macOS).
- I chose Product > Run. The app built and ran successfully.
- I then dumped various things to confirm that they’re working as I expected.
First I dumped the entitlements claimed by the app:
% codesign -d --entitlements - Test20251024.app
…
[Dict]
…
[Key] com.apple.developer.maps
[Value]
[Bool] true
…
The Maps entitlement is there. Yay! I then dumped the profile:
% security cms -D -i Test20251024.app/Contents/embedded.provisionprofile | plutil -p -
{
…
"Entitlements" => {
…
"com.apple.developer.maps" => 1
…
}
…
"ProvisionedDevices" => [
0 => "2e876f5c949604b331a83f7c41eaa8c6c150ae86"
]
…
}
That authorises the use of the Maps entitlement. Yay!
I then dumped the provisioning UDID of the (virtual) Mac:
% system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
…
Provisioning UDID: 2e876f5c949604b331a83f7c41eaa8c6c150ae86
…
This matches the value in the profile. Yay!
[1] Most of the other capabilities are tied to _validation-required entitlements, which is a subtlety I discuss in the Entitlements-Validated Flag section of App Groups: macOS vs iOS: Working Towards Harmony.