In xcode, the signing&capabilities TAB for ios says:
Automatic signing failed
Xcode failed to provision this target. Please file a bug report at https://feedbackassistant.apple.com and include the Update Signing report from the Report navigator.
Provisioning profile "iOS Team Provisioning Profile: com.kikk.morsecode" doesn't include the com.apple.developer.in-app-purchase entitlement.
Even though I've already configured the corresponding Certificates, Identifiers & Profiles in developer
Does anyone have the same problem?
My Version of xcode is Version 15.4 (15F31d), running on m2pro.
Code Signing
RSS for tagCertify that an app was created by you using Code signing, a macOS security technology.
Posts under Code Signing tag
157 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
We recently had an external pentest for one of our company's macOS applications and they brought up the topic of library validation. Our app has hardened runtime enabled and passes notarization. The codesign verification output includes:
flags=0x10000(runtime)
The pentesters brought up that both validation and runtime should be present, so I discovered that you could also add library validation by augmenting our flags with:
OTHER_CODE_SIGN_FLAGS = --timestamp -o library
which changes the flags to:
flags=0x12000(library-validation,runtime)
The pentesters insist that both options are necessary, especially to avoid library injection when SIP is off, but Apple's docs say that hardened runtime already implies library validation (see here )
My question is: does explicitly specifying library validation provide something that hardened runtime does not already? Or is it correct that hardened runtime already imply library validation?
For what it's worth, I did a quick scan of some of the apps on my system, interesting some of the Apple system apps have only library validation (e.g. Safari, Photos), some have both (e.g. Podcasts), some have only hardened runtime (e.g. Mail). So that didn't help answer the question.
Thank you!
I came across your contact on the Apple Developer Forums. I'm encountering an unusual issue during the notarization process.
The error message states:
"Team is not yet configured for notarization. Please contact Developer Programs Support at developer.apple.com under the topic Development and Technical / Other Development or Technical Questions."
Any guidance you could provide would be greatly appreciated.
Here are the error details for reference:
json
{
"logFormatVersion": 1,
"jobId": "b6023a7c-dc85-4fa5-91dd-fba92c9ed831",
"status": "Rejected",
"statusSummary": "Team is not yet configured for notarization. Please contact Developer Programs Support at developer.apple.com under the topic Development and Technical / Other Development or Technical Questions.",
"statusCode": 7000,
"archiveFilename": "Bytemonk.dmg",
"uploadDate": "2025-07-02T07:07:07.945Z",
"sha256": "b9494170cc040a76045ed263de22e6b89a5455142af16ce502530e1c1ee72ddf",
"ticketContents": null,
"issues": null
}
After upgrading the virtual machines used for building and testing our macOS application, it seems that something new in Sequoia is preventing virtual machines from running anything signed with a Mac Development certificate.
At first glance the issue seems very similar to this thread, but it could be unrelated. We are using the tart toolset to build and run our VMs. People seem to be having related issues there with Sequoia in particular.
I have added the VM's hardware UUID to the Devices list of our account. I have included that device in the devices list of our Mac Development provisioning profile. I have re-downloaded the profile, ensured that it is properly getting built into the app, and ensured that the hardware UUID of the VM matches the embedded provisioning profile:
Virtual-Machine App.app/Contents % system_profiler SPHardwareDataType | grep UUID
Hardware UUID: 0CAE034E-C837-53E6-BA67-3B2CC7AD3719
Virtual-Machine App.app/Contents % grep 0CAE034E-C837-53E6-BA67-3B2CC7AD3719 ../../App.app/Contents/embedded.provisionprofile
Binary file ../../App.app/Contents/embedded.provisionprofile matches
However, when I try to run the application, it fails, and while I have searched the system logs to find a more informative error message, the only thing I can find is that the profile doesn't match the device somehow:
Virtual-Machine App.app/Contents % open ../../App.app
The application cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x6000039440f0 {Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}
Virtual-Machine App.app/Contents % log show --info --debug --signpost --last 3m | grep -i embedded.provisionprofile
2025-01-21 16:33:32.369829+0000 0x65ba Error 0x0 2872 7 taskgated-helper: (ConfigurationProfiles) [com.apple.ManagedClient:ProvisioningProfiles] embedded provisioning profile not valid: file:///private/tmp/builds/app/.caches/Xcode/DerivedData/Build/Products/Debug/App.app/Contents/embedded.provisionprofile error: Error Domain=CPProfileManager Code=-212 "Provisioning profile does not allow this device." UserInfo={NSLocalizedDescription=Provisioning profile does not allow this device.}
I don't understand why the provisioning profile wouldn't allow the device if the hardware UUID matches. I have also attempted to add the Provisioning UDID in the devices list instead, but the form rejects that value because it's a different format (the form specifically requests a hardware UUID for macOS development, and a provisioning UDID for everything else).
If there is any debugging tool that lets me check a provisioning profile against the running hardware and print a more verbose reason for why it's not allowed on the device, please let me know.
Otherwise I'd have to conclude that, since I haven't experienced this issue before on an earlier OS, it has something to do with virtual machines running macOS Sequoia. (The same Mac Development-signed application runs just fine on my MacBook Pro running 15.2, as well as the VM host, which is also running 15.2.) I have also tried resetting the VM's hardware UUID and adding that one to the devices list, to no effect.
This is obviously seriously impacting our CI/CD pipelines to allow for proper UI testing of our application. If anyone is aware of any workarounds, I would love to hear them!
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Provisioning Profiles
Code Signing
Virtualization
Dear Apple Developer Technical Support,
I am encountering an issue with notarizing and stapling both PKG and DMG installers for our Electron-based macOS application COSGrid. Despite receiving successful notarization submission responses via notarytool, the stapling process fails with Error 65.
Environment:
App Name: COSGrid
Bundle Identifier: com.cosgrid.pkg.COSGrid
Developer ID Team ID: YB8S2XZ98K
macOS Version: macOS [15.1]
Xcode Version: [16.0 (16A242d)]
Workflow Summary:
For PKG:
Build via yarn build (Vite + Electron Builder)
Package with pkgbuild
Sign using productsign
Submit for notarization:
xcrun notarytool submit COSGridMZA-2.1.10-arm64.pkg --apple-id "..." --team-id YB8S2XZ98K --password "..." --wait
Conducting pre-submission checks for COSGridMZA-2.1.10-arm64.pkg and initiating connection to the Apple notary service...
Submission ID received
id: a8ff8e09-1ab4-49ed-9f6b-4afb9f09e53a
Upload progress: 100.00% (235 MB of 235 MB)
Successfully uploaded file
id: a8ff8e09-1ab4-49ed-9f6b-4afb9f09e53a
path: /Users/murugavel/Documents/MZA/mza/release/2.1.10/COSGridMZA-2.1.10-arm64.pkg
Waiting for processing to complete.
Current status: Accepted.....................
Processing complete
id: a8ff8e09-1ab4-49ed-9f6b-4afb9f09e53a
status: Accepted
Receive notarization success
Stapling fails:
xcrun stapler staple COSGridMZA-2.1.10-arm64.pkg
Could not validate ticket...
The staple and validate action failed! Error 65.
For DMG:
Sign via codesign
Submit to notarization — success
Attempt to staple:
xcrun stapler staple -v COSGrid-2.1.10-arm64.dmg
Could not validate ticket...
The staple and validate action failed! Error 65.
Additional Verification:
I verified the DMG’s code signature integrity:
Command:
codesign --verify --verbose=4 COSGrid-2.1.10-arm64.dmg
Output:
COSGrid-2.1.10-arm64.dmg: valid on disk
COSGrid-2.1.10-arm64.dmg: satisfies its Designated Requirement
Command:
codesign -dvv COSGrid-2.1.10-arm64.dmg
Output:
Executable=/Users/murugavel/Documents/MZA/mza/release/2.1.10/COSGrid-2.1.10-arm64.dmg
Identifier=COSGrid-2.1.10-arm64
Format=disk image
CodeDirectory v=20200 size=308 flags=0x0(none) hashes=1+6 location=embedded
Signature size=9013
Authority=Developer ID Application: COSGrid Systems Private Limited (YB8S2XZ98K)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=1 Jul 2025 at 11:34:05 AM
Info.plist=not bound
TeamIdentifier=YB8S2XZ98K
Sealed Resources=none
Internal requirements count=1 size=180
**Verified Signature for .pkg **
pkgutil --check-signature COSGridMZA-2.1.10-arm64.pkg
Package "COSGridMZA-2.1.10-arm64.pkg":
Status: signed by a developer certificate issued by Apple for distribution
Signed with a trusted timestamp on: 2025-06-30 13:57:19 +0000
Certificate Chain:
1. Developer ID Installer: COSGrid Systems Private Limited (teamID)
Expires: 2027-02-01 22:12:15 +0000
2. Developer ID Certification Authority
Expires: 2027-02-01 22:12:15 +0000
3. Apple Root CA
Expires: 2035-02-09 21:40:36 +0000
Diagnostic Logs Attached:
Stapler verbose logs for both PKG and DMG
codesign verification output for both PKG and DMG
Notarytool submission logs
Ticket JSON response from Apple API
API request/response headers
Effective electron-builder.yaml config
Key Observations:
codesign verification passes successfully for both artifacts
Notarization submission reports success via notarytool
Stapler fails with Error 65 for both PKG and DMG
Ticket JSON fetched from CloudKit API appears valid
No provisioning profile used (Developer ID distribution only)
Request:
Could you please help investigate:
Why is the stapler unable to validate or attach the ticket even though notarization completes successfully?
Are there any known issues, entitlements, or workflow adjustments recommended in this case?
Is any special handling required for Electron apps’ PKG/DMG packages or Hardened Runtime configurations during stapling?
I can provide the signed DMG/PKG and full notarization logs upon request.
Thank you very much for your assistance — looking forward to your guidance.
Best regards,
Murugavel
COSGrid Systems Private Limited
I have a valid Developer ID Certificate, I've used it to sign an app locally and send the app to other machines of my colleagues to make sure it works and does not get triggered by GateKeeper
Now I want to automate the process of signing and notarization on github actions and so I want to export my certificate and upload it there.
Initially I tried uploading both the Developer ID Certificate and the G2 CA both as .cer files encoded in base64. But apparently I need my certificate to be in .p12 format
When I try to export it from keychain access the option to export as .p12 is disabled. So how can I do it ?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Signing Certificates
Code Signing
Developer ID
This is a continuation of my own old post that became inactive to regain traction. I am trying to resolve issues that arise when distributing a macOS app with a SysExt Network Extension (Packet Tunnel) outside the App Store using a Developer ID Certificate.
To directly distribute the app, I start with exporting the .app via Archive in Xcode.
After that, I create a new Developer ID provisioning profile for both the app and sysext and replace the embedded ones in the .app package.
After I have replaced the provisioning profiles and the have the entitlements files ready, I start signing the frameworks, sysext and parent app.
codesign --force --options runtime --timestamp --sign "Developer ID Application: <name>"<app>.app/Contents/Library/SystemExtensions/<sysext>.systemextension/Contents/Frameworks/<fw>.framework/Versions/A/<fw>
codesign --force --options runtime --timestamp --sign "Developer ID Application: <name>" <app>.app/Contents/Frameworks/<fw>.framework/
codesign --force --options runtime --entitlements dist-vpn.entitlements --timestamp --sign "Developer ID Application: <name>" <app>.app/Contents/Library/SystemExtensions/<sysext>.systemextension/Contents/MacOS/<sysext>
codesign --force --options runtime --entitlements dist.entitlements --timestamp --sign "Developer ID Application: <name>" <app>.app
After validation is successful with
codesign --verify --deep --strict --verbose=4 <app>.app
I zip the package, notarize and staple it
ditto -c -k --keepParent "<app>.app" "<app>..zip"
xcrun notarytool submit <app>.zip --keychain-profile “”<credents> --wait
xcrun stapler staple <app>.app
After that I finish creating signed and notarized .dmg/.pkg.
hdiutil create -volname “<app>” -srcfolder “<app>.app/" -ov -format UDZO ./<app>.dmg
codesign --force --sign "Developer ID Application: <name>" <app>.dmg
xcrun notarytool submit <app>.dmg --keychain-profile "<credentials>" --wait
xcrun stapler staple <app>.dmg
Then when I move the .dmg to a clean system, open the .dmg, move the .app to the Applications folder, the attempt to run it fails with “The application “” can’t be opened.”. When I look into the console, the gatekeeper disallows the launch job with the message:
86127 debug ProvisioningProfiles taskgated-helper ConfigurationProfiles entitlements: {
"com.apple.developer.networking.networkextension" = (
"packet-tunnel-provider-systemextension"
);
"com.apple.developer.system-extension.install" = 1;
"com.apple.developer.team-identifier" = <teamid>;
"keychain-access-groups" = (
“<teamid>.<app>.AppGroup"
);
} com.apple.ManagedClient
<app>: Unsatisfied entitlements: com.apple.developer.networking.networkextension, keychain-access-groups, com.apple.developer.system-extension.install, com.apple.developer.team-identifier
LAUNCH: Runningboard launch of <app> <private> returned RBSRequestErrorFailed, error Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x600001a25830 {Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}, so returning -10810
I went through all possible formats (macOS-Style and iOS-Style App Group IDs) and combinations of appgroups according to the post “App Groups: macOS vs iOS: Working Towards Harmony”. But none of those work for me. The weird part is that when I try the same steps on different developer account, I am able to get the app running. What can be wrong?
Topic:
Code Signing
SubTopic:
Entitlements
Tags:
Network Extension
Gatekeeper
Code Signing
Developer ID
Is it possible to directly distribute a macOS app with a Developer ID Certificate that belongs to a different team?
I am trying to resolve issues that arise when distributing a macOS app with a Network Extension (Packet Tunnel) outside the App Store using a Developer ID Certificate from a different team than the app’s provisioning profiles and entitlements.
I started by attempting Direct Distribution in Xcode with automatic signing. However, it fails with the following message:
Provisioning profile "Mac Team Direct Provisioning Profile: ” failed qualification checks: Profile doesn't match the entitlements file's value for the com.apple.developer.networking.networkextension entitlement.
I suspect the issue is that the provisioning profile allows "packet-tunnel-provider-systemextension", whereas the entitlements generated by Xcode contain "packet-tunnel-provider". When I manually modify the .entitlements file to include the -systemextension suffix, the project fails to build because Xcode does not recognize the modified entitlement. If there is a workaround for this issue, please let me know.
Due to these issues, I resorted to manually creating a signed and notarized app. My process is as follows:
Export the .app from the Xcode archive.
Since the exported .app does not contain the necessary entitlements or provisioning profile for direct distribution, I replace Contents/embedded.provisioningprofile in both the .app and the .appex network extension.
Sign the app and its components in the following order:
codesign --force --options runtime --timestamp --sign "Developer ID Application: <name>" <app>.app/Contents/Frameworks/<fw>.framework/
codesign --force --options runtime --timestamp --sign "Developer ID Application: <name>"<app>.app/Contents/PlugIns/<netext>.appex/Contents/Frameworks/<fw>.framework/Versions/A/<fw>
codesign --force --options runtime --entitlements dist-vpn.entitlements --timestamp --sign "Developer ID Application: <name>" <app>.app/Contents/PlugIns/<netext>.appex/
codesign --force --options runtime --entitlements dist.entitlements --timestamp --sign "Developer ID Application: <name>" <app>.app
Verify the code signature:
codesign --verify --deep --strict --verbose=4 <app>.app
- <app>.app: valid on disk
- <app>.app: satisfies its Designated Requirement
Create a ZIP archive using:
ditto -c -k --sequesterRsrc --keepParent <app>.app <app>.zip
Notarize the app with notarytool and staple it.
The notarization completes successfully with errors: nil.
Package the notarized app into a DMG, notarize, and staple the DMG.
The app runs successfully on the development machine. However, when moved to another machine and placed in /Applications, it fails to open. Inspecting Console.app reveals Gatekeeper is blocking the launch:
taskgated-helper <bundleid>: Unsatisfied entitlements: com.apple.developer.networking.networkextension, com.apple.developer.team-identifier taskgated-helper entitlements: { "com.apple.developer.networking.networkextension" = ("packet-tunnel-provider-systemextension"); "com.apple.developer.team-identifier" = <teamid>; }
As mentioned earlier, the Developer ID Certificate used for signing belongs to a different team. We are a third-party developer and do not have access to the Developer ID Certificate of the team assigned as the team-identifier.
When I changed the bundle identifier (app ID), team, entitlements, and provisioning profiles to match the team associated with the Developer ID Certificate, the app worked.
My question is:
Is this failure caused by using a Developer ID Certificate from a different team, or should it still work if the provisioning profiles and entitlements are correctly set? Could there be an issue elsewhere in the provisioning profiles or entitlements for the original app ID?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Network Extension
Gatekeeper
Code Signing
Developer ID
Hello Apple Support Team,
We are developing a macOS application that allows users to import and view PST files (Microsoft Outlook archives). These files contain a complex, proprietary format that requires specialized parsing libraries. To achieve this, we are using Aspose Email for Java, which is currently one of the few reliable libraries that support complete PST parsing across platforms.
Why we are using Java & Aspose
The Aspose Email Java library provides a comprehensive API to extract mail data (including metadata, attachments, and folder structure) from .pst files.
A native Swift or Objective-C alternative with full .pst parsing capability does not exist, which is why we opted for a Java-based helper module that runs in the background and communicates with the macOS app over a Unix domain socket.
How we bundle it
We package the AsposeEmail.jar and a custom JRE (Java Runtime Environment) created using jlink, tailored to run only our jar.
This entire setup (JAR + JRE) is bundled within the Contents/Resources directory of the macOS app, and we invoke the Java runtime using standard process launch APIs from Swift.
Problem during App Store Submission
When we archive the app and submit it to the App Store, the validation step raises an error:
ITMS-90284: Invalid Code Signing - The executable 'com.app.sample.appstore.pkg/Payload/Sample.app/Contents/Resources/custom-jre-universal/lib/cli ent/libjsig.dylib' must be signed with the certificate that is contained in the provisioning profile.
ITMS-90284: Invalid Code Signing - The executable 'com.app.aample.appstore.pkg/Payload/Sample.app/Contents/Resources/custom-jre-universal/lib/cli ent/libjvm.dylib' must be signed with the certificate that is contained in the provisioning profile.
When we attempt to code sign the custom JRE, especially the .dylib files inside, the runtime breaks. Java is unable to launch correctly and throws permission errors and execution failures.
Alternative we thought of (On-Demand Download)
To avoid the code signing issue, we decided to remove the JRE from the bundle and instead download it on demand when the user performs an action like "Import PST".
However, we realized this may violate the App Store Review Guideline 2.5.2:
Our use case, while not dynamically modifying features, does download and execute a Java runtime, which could be interpreted as executing new code post-installation.
How can we proceed?
We are looking for Apple’s guidance on the correct and compliant path forward:
Is there a recommended way to bundle and codesign a custom JRE so it is accepted by the App Store?
Is on-demand download of a custom runtime for a very specific parsing task permitted, assuming it doesn't modify app features but simply supports user-initiated operations?
We would greatly appreciate any guidance or best practices on how to handle this situation, particularly with respect to App Store compliance.
Regards,
Maaz Hussain
Topic:
App Store Distribution & Marketing
SubTopic:
TestFlight
Tags:
App Store
App Review
TestFlight
Code Signing
Starting a few hours ago (roughly 2:45PM Eastern time) we began experiencing elevated latency with the Developer ID Notary Service. There is nothing listed on the developer system status page about degraded performance or a service outage.
Operations that usually take ~15 minutes, are stacking up for hours.
The oldest pending entry we have was created at 2:45PM Eastern:
createdDate: 2025-06-24T18:45:22.539Z
id: 5209a4d2-eae4-4714-aa8e-6961677ff2e
We currently have 27 pending builds in the notary service since we are required to notarize internal builds to ensure we satisfy our requirements so this is creating an issue for us.
Dear Apple Support,
We are experiencing a critical issue affecting some of our macOS users during application updates via DMG.
In certain cases, when users attempt to update the app by dragging it from the mounted DMG to the /Applications folder (replacing the old version), the application becomes corrupted. Users receive an error indicating that the app cannot be opened.
On retry, they are met with an error stating that the app cannot be overwritten.
Upon inspection, the resulting application bundle is incomplete and contains only the following structure:
.
└── Contents
└── CodeResources
The only known workaround is to completely remove the existing app from /Applications before copying the new version — this resolves the issue consistently.
We’ve observed this issue in the field with increasing frequency, which negatively impacts user trust. We also found similar reports from other developers (e.g., https://github.com/warpdotdev/Warp/issues/5492), suggesting a broader issue.
Questions:
What could be the underlying cause of this behavior on macOS (e.g., MDM, security policies, filesystem behavior)?
Are there any recommended practices to prevent or mitigate this issue when updating apps via DMG?
We would appreciate any guidance or clarification you can provide.
Best regards,
Ivan Poluianov
I've recently updated one of our CI mac mini's to Sequoia in preparation for the transition to Tahoe later this year. Most things seemed to work just fine, however I see this dialog whenever the UI Tests try to run.
This application BoostBrowerUITest-Runner is auto-generated by Xcode to launch your application and then run your UI Tests. We do not have any control over it, which is why this is most surprising.
I've checked the codesigning identity with codesign -d -vvvv
as well as looked at it's Info.plist and indeed the usage descriptions for everything are present (again, this is autogenerated, so I'm not surprised, but just wanted to confirm the string from the dialog was coming from this app)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>22A380021</string>
<key>CFBundleAllowMixedLocalizations</key>
<true/>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>BoostBrowserUITests-Runner</string>
<key>CFBundleIdentifier</key>
<string>company.thebrowser.Browser2UITests.xctrunner</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>BoostBrowserUITests-Runner</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>24A324</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>15.0</string>
<key>DTSDKBuild</key>
<string>24A324</string>
<key>DTSDKName</key>
<string>macosx15.0.internal</string>
<key>DTXcode</key>
<string>1620</string>
<key>DTXcodeBuild</key>
<string>16C5031c</string>
<key>LSBackgroundOnly</key>
<true/>
<key>LSMinimumSystemVersion</key>
<string>13.0</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSAppleEventsUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSCalendarsUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSCameraUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSContactsUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSDesktopFolderUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSDocumentsFolderUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSDownloadsFolderUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSFileProviderDomainUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSFileProviderPresenceUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSLocalNetworkUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSLocationUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSMotionUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSNetworkVolumesUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSRemindersUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSRemovableVolumesUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSSystemAdministrationUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>NSSystemExtensionUsageDescription</key>
<string>Access is necessary for automated testing.</string>
<key>OSBundleUsageDescription</key>
<string>Access is necessary for automated testing.</string>
</dict>
</plist>
Additionally, spctl --assess --type execute BoostBrowserUITests-Runner.app return an exit code of 0 so I assume that means it can launch just fine, and applications are allowed to be run from "anywhere" in System Settings.
I've found the XCUIProtectedResource.localNetwork value, but it seems to only be accessible on iOS for some reason (FB17829325).
I'm trying to figure out why this is happening on this machine so I can either fix our code or fix the machine. I have an Apple script that will allow it, but it's fiddly and I'd prefer to fix this the correct way either with the machine or with fixing our testing code.
Having reviewed every document, this has been going on for nearly two months. Originally, it was thought that the problem might be related to the fact I had created the developer ID signing certificate on an intel mac, and trying to import and use it on an M1 Mac-Mini. That turned out to not be the case. Completely started over with a new account (the company changed names), requested and was granted the entitlements we needed. Create a new CSR from this new m1 machine, created a Developer ID certificate, installed the certificate on this machine. But no matter what, the codesign fails.
Troubleshooting
Environment:
Brand new Apple Developer account and Developer ID Application certificate (generated CSR on this Mac, installed cert and private key in login keychain)
macOS build/signing machine, not running codesign as root
Working from Terminal app in GUI session, not via SSH/cron
Keychain & Certificate Chain:
Verified Developer ID Application: Fidelis Security LLC (J4WGF5B6KZ) certificate and private key are present in login keychain
Verified certificate is marked as trusted and has a private key attached
Developer ID Certification Authority present and trusted in System keychain (removed any extra from login)
Evaluate certificate assistant shows everything is good
Apple Root CA present and trusted in System keychain
Set all trust settings back to System Defaults after testing with “Always Trust”
No expired or duplicate Developer ID intermediates present
codesign Troubleshooting:
Ran:
codesign --force --timestamp --options runtime --sign "Developer ID Application: Fidelis Security LLC (J4WGF5B6KZ)" ./fidelisevents
Consistently received:
Warning: unable to build chain to self-signed root for signer ...
errSecInternalComponent
Confirmed correct identity using:
security find-identity -v -p codesigning
(Shows my Developer ID Application cert as valid)
Keychain order confirmed with security list-keychains
Tried explicit --keychain argument in codesign (no change)
Additional Steps Attempted:
Downloaded and re-installed all relevant Apple intermediates/root certificates from https://www.apple.com/certificateauthority/
Rebooted the Mac and killed/restarted the securityd daemon
Confirmed no use of sudo or root for codesigning
Verified keychain is unlocked
Checked that partition list grants access to codesign (set with security set-key-partition-list -S "apple:codesign:" -s -k "" ~/Library/Keychains/login.keychain-db)
Attempted to codesign a copy of /usr/bin/true (same error)
Ran codesign both with and without --timestamp, both on app bundle and binary
Keychain Access showing:
Certificate and private key present and linked
Correct trust chain
System keychain containing all Apple intermediates/roots
No trust warnings or red Xs
Downloaded the latest Apple CA and Developer ID Root certificates and installed those.
None of the forum searches have helped. AI is likewise confused.
IMPORTANT The underlying issue here (FB8830007) was fixed in macOS 11.3, so the advice in this post is irrelevant if you’re building on that release or later.
Note This content is a repost of info from another thread because that thread is not world readable (it’s tied to the DTK programme).
A number of folks have reported problems where:
They have a product that supports older versions of macOS (anything prior to 10.11).
If they build their product on Intel, everything works.
If they build their product on Apple Silicon, it fails on those older versions of macOS.
A developer filed a bug about this (FB8830007) and, based on the diagnosis of that bug, I have some info to share as to what’s going wrong and how you can prevent it. Let’s start with some background.
macOS’s code signing architecture supports two different hash formats:
sha1, the original hash format, which is now deprecated
sha256, the new format, support for which was added in macOS 10.11
codesign should choose the signing format based on the deployment target:
If your deployment target is 10.11 or later, you get sha256.
If your deployment target is earlier, you get both sha1 and sha256.
This problem crops up because, when building for both Intel and Apple Silicon, your deployment targets are different. You might set the deployment target to 10.9 but, on Apple Silicon, that’s raised to the minimum Apple Silicon system, 11.0. So, which deployment target does it choose?
Well, the full answer to that is complex but the executive summary is that it chooses the deployment target of the current architecture, that is, Intel if you’re building on Intel and Apple Silicon if you’re building on Apple Silicon. For example:
intel% codesign -d --arch x86_64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
intel% codesign -d --arch arm64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
arm% codesign -d --arch x86_64 -vvv Test664892.app
…
Hash choices=sha256
…
arm% codesign -d --arch arm64 -vvv Test664892.app
…
Hash choices=sha256
…
The upshot is that you have problems if your deployment target is less than 10.11 and you sign on Apple Silicon. When you run on, say, macOS 10.10, the system looks for a sha1 hash, doesn’t find it, and complains.
The workaround is to supply the --digest-algorithm=sha1,sha256, which overrides the hash choice logic in codesign and causes it to include both hashes:
arm% codesign -s - --digest-algorithm=sha1,sha256 Test664892.app
arm% codesign -d --arch x86_64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
% codesign -d --arch arm64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Hello,
I'm working on an app at work and we finally got to signing and notarizing the app. The app is successfully notarized and stapled, I packaged it in a .dmg using hdiutil and went ahead and notarized and stapled that as well.
Now I tried to move this app to another machine through various methods. But every time I download it from another machine, open and extract the contents of the dmg and attempt to open the app, I get the "Apple could not verify my app is free of malware that may harm your Mac or compromise your privacy.
When I check the extended attributes there's always the com.apple.quarantine attribute which from what I know, is the reason that this popup appears
I've tried uploading it to google drive, sending through slack, onedrive, even tried our AWS servers and last but not least, I tried our Azure servers (which is what we use for distribution of the windows version of our app). I tried uploading to Azure through CloudBerry (MSP360 now), and azure-cli defining the content-type as "application/octet-stream", the content-disposition as "attachment; filename=myApp.dmg", and content-cache-control as "no-transform". None of these worked
The only times where a download actually worked with no problems was when I downloaded through the terminal using curl, which obviously not a great solution especially that we're distributing to users who aren't exactly "tech savy"
I want the installation experience to be as smooth as other apps outside the App Store (i.e Discord, Slack, Firefox, Chrome etc....) but I've been stuck on this for more than a week with no luck.
Any help is greatly appreciated, and if you want me to clarify something further I'd be happy to do so
I am here and I AM UNABLE TO PUBLISH AN UPLDATE!
On xcode in the "signing" i see ONLY ME AND NOT THE COMPANY, i am added as administrator in the apple console developer BUT NOTHING CHANGE!!
i tried to add an account but I STILL NOT SEE THE COMPANY, ONLY ME HOW TO FIX THIS??
THIS IS THE WORSE WAY TO SETUP AN ACCOUNT I EVER SEE
We have a Mac app that uses some restricted macOS entitlements, thus to test it we embed a development provisioning profile, that needs to contain the correct provisioning UDID.
Typically, for test VMs, we extract the provisioning and UDID and add it to the developer portal and then re-generate the provisioning profiles.
However when we try to do this in our newly created VM (Apple Silicon), our executable won't run, and macOS logs that the provisioning profile doesn't allow the device:
2025-06-12 12:37:52.168 E taskgated-helper[27489:e97da] [com.apple.ManagedClient:ProvisioningProfiles] embedded provisioning profile not valid: file:///Applications/foo.app/Contents/embedded.provisionprofile error: Error Domain=CPProfileManager Code=-212 "Provisioning profile does not allow this device." UserInfo={NSLocalizedDescription=Provisioning profile does not allow this device.}
2025-06-12 12:37:52.169 E taskgated-helper[27489:e97da] [com.apple.ManagedClient:ProvisioningProfiles] Disallowing com.company.foo because no eligible provisioning profiles found
2025-06-12 12:37:52.169 Df amfid[112:e99b0] [com.apple.xpc:connection] [0xb34c74a00] invalidated because the current process cancelled the connection by calling xpc_connection_cancel()
2025-06-12 12:37:52.169 Df taskgated-helper[27489:e97da] [com.apple.xpc:connection] [0x839144000] invalidated because the client process (pid 112) either cancelled the connection or exited
2025-06-12 12:37:52.169 E amfid[112:e91ac] [com.apple.MobileFileIntegrity.framework:default] Failure validating against provisioning profiles: <private>
2025-06-12 12:37:52.169 E amfid[112:e91ac] [com.apple.MobileFileIntegrity.framework:default] Restricted entitlements not validated, bailing out. Error: Error Domain=AppleMobileFileIntegrityError Code=-413 "No matching profile found" UserInfo={NSURL=<private>, NSLocalizedDescription=No matching profile found}
2025-06-12 12:37:52.169 Df amfid[112:e91ac] /Applications/foo.app/Contents/MacOS/foo not valid: Error Domain=AppleMobileFileIntegrityError Code=-413 "No matching profile found" UserInfo={NSURL=file:///Applications/foo.app/, NSLocalizedDescription=No matching profile found}
The UDID for this VM does look weird, in System Profiler:
But I can verify that this UDID string is present in the provisioning profile embedded in the app bundle:
$ security cms -D -i /Applications/foo.app/Contents/embedded.provisionprofile | grep -i 7cd9234e9aa4fa8ba528ee417f857b2c993a20a3
<string>7CD9234E9AA4FA8BA528EE417F857B2C993A20A3</string>
I also tried deleting the manually added device from the Developer portal and installing Xcode on the VM and letting Xcode register the device, but I end up in the same situation there. Even after letting Xcode itself register the device, it says that "this device not registered to your account" and then when I click "Register device" it changes into " already exists".
Has anyone else managed to get Mac development provisioning profiles to work in a VM?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Entitlements
macOS
Code Signing
Virtualization
When building xcode project of an application with login item included/embedded (another target), locally it works without problems. But when building on xcode cloud, we are getting the error:
ITMS-90286: Invalid code signing entitlements - Your application bundle’s signature contains code signing entitlements that aren’t supported on macOS. Specifically, the “XXX.***.***” value for the com.apple.application-identifier key in “Path_to_login_Item” isn’t supported. This value should be a string that starts with your Team ID, followed by a dot (“.”), followed by the bundle ID.
If there are no capabilities added to the login item's target (only com.apple.security.inherit and App Sandbox), the project builds without errors. But our login item needs to access a database in app group container and sync its data with iCloud, so after adding iCloud and App Group entitlements, building on xcode cloud fails with the error written above. Locally it builds and runs without problems.
So, what should be done to fix this issue when building on xcode cloud?
Hi all,
I'm using a CryptoTokenKit (CTK) extension to perform code signing without having the private key stored on my laptop. The extension currently only supports the rsaSignatureDigestPKCS1v15SHA256 algorithm:
func tokenSession(_ session: TKTokenSession, supports operation: TKTokenOperation, keyObjectID: TKToken.ObjectID, algorithm: TKTokenKeyAlgorithm) -> Bool {
return algorithm.isAlgorithm(SecKeyAlgorithm.rsaSignatureDigestPKCS1v15SHA256)
}
This setup works perfectly with codesign, and signing completes without any issues.
However, when I try to use productsign, the system correctly detects and delegates signing to my CTK extension, but it seems to always request rsaSignatureDigestPKCS1v15SHA1 instead:
productsign --timestamp --sign <identity> unsigned.pkg signed.pkg
productsign: using timestamp authority for signature
productsign: signing product with identity "Developer ID Installer: <org> (<team>)" from keychain (null)
...
Error Domain=NSOSStatusErrorDomain Code=-50
"algid:sign:RSA:digest-PKCS1v15:SHA1: algorithm not supported by the key"
...
productsign: error: Failed to sign the product.
From what I understand, older versions of macOS used SHA1 for code signing, but codesign has since moved to SHA256 (at least when legacy compatibility isn't a concern). Oddly, productsign still seems to default to SHA1, even in 2025.
Is there a known way to force productsign to use SHA256 instead of SHA1 for the signature digest algorithm? Or is there some flag or configuration I'm missing?
Thanks in advance!
I will post my app xyz.app uses XY swift package
this swift package is a wrapper for XYSDK.xcframework
XYSDK.xcframework written in c++ and app running on arm64 macos and iphones succesfully.
I got this error when i want to distribute it.
Currently i sign .framework for ios with Apple Distribution Certificate
and same certificate for macos framework there is no other signing step for swift package or xcframework
other than that when i want to archive it validates succesfully.
Exporting step shows that app has signed, has provisining profile.
but .framework is only signed has no provisioning profile.
Also one point i see:
i have one target named xyz and its Frameworks, Lİbraries and Embedded Context has only XY package but Embed part has no option like embed and sign etc. Blank.
I need more info about what am i doing wrong in which step ?
I am stuck and can not move any further like weeks
Error Detail:
Invalid Signature. The binary with bundle identifier XYSDK at path “xyz.app/Frameworks/XYSDK.framework” contains an invalid signature. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/support/code-signing. (90035)