Thanks for the response, Quinn. I believe my app has the com.apple.application-identifier entitlement, and so does the provisioning profile, but I could be wrong as the code works in a small test app in Xcode. Is there a way to check that this entitlement is present in the signed and notarized app? I've been running the following commands, which lead me to believe that we have the entitlement and proper authorization.
% codesign -d --entitlements - Browser.app
returns
Executable=/Applications/Browser.app/Contents/MacOS/Browser
[Dict]
[Key] com.apple.application-identifier
[Value]
[String] TL6P21MQR.com.contoso.browser
[Key] keychain-access-groups
[Value]
[Array]
[String] TL6P21MQR.com.contoso.browser.devicetrust
[String] TL6P21MQR.com.contoso.browser.webauthn
Inside of Browser.app I see the embedded.provisionprofile and looking in the DER encoded profile with these commands
% security cms -D -i embedded.provisionprofile -o Browser-payload.plist
% plutil -extract DER-Encoded-Profile raw -o - Browser-payload.plist | base64 -D > Browser.der
% security cms -D -i Browser.der -o Browser-payload.der
% openssl asn1parse -in Browser-payload.der -inform der -i | cut -c 30-
Shows that the application-identifer entitlement is authorized by the provision profile, here are the seemingly relevant pieces of the output:
SET
SEQUENCE
UTF8STRING :Version
INTEGER :01
...
SEQUENCE
UTF8STRING :TeamIdentifier
SEQUENCE
UTF8STRING :TL6P21MQR
...
SEQUENCE
UTF8STRING :ApplicationIdentifierPrefix
SEQUENCE
UTF8STRING :TL6P21MQR
...
SEQUENCE
UTF8STRING :Entitlements
appl [ 16 ]
INTEGER :01
cont [ 16 ]
SEQUENCE
UTF8STRING :com.apple.application-identifier
UTF8STRING :TL6P21MQR.com.contoso.browser
SEQUENCE
UTF8STRING :com.apple.developer.team-identifier
UTF8STRING :TL6P21MQR
SEQUENCE
UTF8STRING :keychain-access-groups
SEQUENCE
UTF8STRING :TL6P21MQR.*
It seems to me like everything is in order, or am I missing something? Let me know if I left out any important details, and thanks again for your help.
Topic:
Code Signing
SubTopic:
Entitlements
Tags: