Hi,
After enabling the new Enhanced Security capability in Xcode 26, I’m seeing install failures on devices running < iOS 26.
- Deployment target: iOS 15.0
- Capability: Enhanced Security (added via Signing & Capabilities tab)
- Building to iOS 18 device error - Unable to Install ...Please ensure sure that your app is signed by a valid provisioning profile.
It works fine on iOS 26 devices.
I’d like to confirm Apple’s intent here:
-
Is this capability formally supported only on iOS 26 and later, and therefore incompatible with earlier OS versions?
-
Or should older systems ignore the entitlement, meaning this behavior might be a bug?
Please file a bug about this. There’s advice on how to gather the necessary info in that error alert, and it’d be great if you attach that to your bug report.
Once you’re done, please post your bug number, just for the record
When you click the Show Details button in that error alert it shows a bunch of info about what’s causing the error. It’s clearly grumpy about the provisioning profile. However, when you compare the profile’s allowlist and the code signature’s claims, things generally look OK.
One thing I did notice is that there’s a bit of a mix up about the type of the com.apple.security.hardened-process.enhanced-security-version entitlement. That’s documented to be a string, and the profile’s allow list uses a string value of *. However, the code signature claims an integer value of 1.
I manually re-signed the app to use a string:
% cat tmp.entitlements
…
<dict>
…
<key>com.apple.security.hardened-process.enhanced-security-version</key>
<string>1</string>
…
</dict>
</plist>
% /usr/bin/codesign --force --sign 09513FD4A03387429F6568048A5F76A74387828A --entitlements tmp.entitlements --timestamp\=none --generate-entitlement-der Test806195.app
and the app installed and ran. My guess is that iOS 26 is smart enough to interpret a string * as authorising an integer 1, but iOS 18 isn’t. However, I’m really just guessing here. My advice is that you file a bug and let the experts investigate.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"