Dear Apple Support,
for better understanding to use the Notary Service, I would like to ask when and what have to be notarized.
I am absolutely aware of using the Notary Service and which packages can be submitted and how to get the status.
Scenario:
We have one library which is developed by a specific team and other teams develop and deliver to customer MacOS apps which packages this library for the shipment.
So, the library will be produced internally and will be shipped in different products.
The library will be code signed before we make available internally.
When should we notarize (and staple) this library?
Directly after the code is signed or when it will be packaged in each product when it will be delivered to customer?
Best regards,
Stefan
Demystify code signing and its importance in app development. Get help troubleshooting code signing issues and ensure your app is properly signed for distribution.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Dear Apple support,
Since the last couple of days, we have some (very) long running notarization requests. Similar requests were done normally under 1 minute.
This behavior is unexpected to us, and we did not see it before.
The issue occurs for a small CLI tool submitted as a ZIP archive.
Checking the documentation, I come across the section about "Avoid long notarization response times and size limits" (https://developer.apple.com/documentation/security/customizing-the-notarization-workflow#Avoid-long-notarization-response-times-and-size-limits).
One fact is mentioned “Limit notarizations to 75 per day.”
What is behavior if that limitation is reached?
Is that limitation per Apple ID or per team ID?
Are there some known issues about Notarization Service?
Best regards,
Stefan
I'm working on a system extension leveraging endpoint security entitlement. However, while in development, is there a way to continue working and testing locally without having the endpoint security entitlement approved or needing the extension signed.
I got these errors running a build:
Provisioning profile "Mac Team Provisioning Profile: "com.xxxxx.extension" doesn't include the com.apple.developer.endpoint-security.client entitlement.
I have created a Mac Catalyst version of the same app, and it was transferred from an old account to a new one. However, the Mac Catalyst build has been stuck in progress for several days when attempting to notarize it.
After many days, I got the rejection with the following error:
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.
I have already tried to create a new developer ID certificate, but it still has the same issue. On the other hand, the iOS app is working fine and has been published in the App Store.
Could you please assist us in resolving this issue as quickly as possible? Your prompt help would be greatly appreciated.
I am developing a macOS app that requires the Associated Domains entitlement. The app will be distributed as a custom app.
The app needs to be signed using Team A’s Developer ID Application certificate and packaged under Team A’s Team ID.
Team A has a secure signing and packaging setup, but they do not provide access to their Developer ID Application Identity (cert) or their provisioning profile.
I am part of Team B and have access to Team B’s Developer ID Application identity and provisioning profiles.
I am thinking of doing the following:
I create a provisioning profile under Team B that authorizes the Associated Domains entitlement.
I sign the app using Team B’s Developer ID Application identity, ensuring the required entitlements are included.
Then, I re-sign the app using Team A’s Developer ID Application identity, since Team A has also set up the same bundle ID with the Associated Domains entitlement and corresponding provisioning profile.
Questions:
Is this approach correct & does it have any drawback?
Will the double signing process work without issues, given that Team A has the required provisioning profile for the same bundle ID?
Are there better ways to handle this situation where signing must be done under Team A but access is limited?
Thanks!
I am trying to distribute my Unity app to test flight.
Build works on iPhone locally, archiving also works but when I start distribution to test flight I get this Error
codesign command failed (/var/folders/gn/ql1bht8j2z7b18b3xtt0j7rr0000gn/T/XcodeDistPipeline.~~~2gmyFJ/Root/Payload/TondoJigsaw2.app/Frameworks/UnityFramework.framework: replacing existing signature
/var/folders/gn/ql1bht8j2z7b18b3xtt0j7rr0000gn/T/XcodeDistPipeline.~~~2gmyFJ/Root/Payload/TondoJigsaw2.app/Frameworks/UnityFramework.framework: invalid or corrupted code requirement(s)
Requirement syntax error(s):
line 1:152: unexpected token: sQuaricon
)
I am not sure what is the problem
Team name is: “sQuaricon” Name Surname s.p.
Bundle ID is: com.Squaricon.TondoJigsaw2
When I change bundle ID to com.testasd.TondoJigsaw2 (I do this in Xcode before archiving) that error disappears and I reach the part where I have to pick language. Even though this is not the solution, I think it is interesting, it implies issue might be with Bundle ID but this bundle ID is correct.
I am using "automatically manage signing", I did not create any provisioning profile or certificate manually.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Hi the best community! When I try to submit the app to Testflight I receive the following error:
"codesign command failed (/var/folders/j9/yh_rkh114rbgvmglf4gycj8w0000gn/T/XcodeDistPipeline.~~~OW0Dwk/Root/Payload/Application.app/Frameworks/Alamofire.framework: replacing existing signature
/var/folders/j9/yh_rkh114rbgvmglf4gycj8w0000gn/T/XcodeDistPipeline.~~~OW0Dwk/Root/Payload/Application.app/Frameworks/Alamofire.framework: invalid or corrupted code requirement(s)
Requirement syntax error(s):
line 1:155: unexpected token: NPH
)"
I have never stuck with this issue before.
Xcode Version 16.0
I assume that there is something related to code signing and our company name in App Store connect: Medical Institution “NPH” (The company name has been anonymized for privacy purposes.)
Appreciate any help.
Thank you!
Hello,
In our Account we have an iOS app with an explicit identifier "ABC123.com.some.app" that is using non-team prefix which is DEF456. It has also explicit identifiers for Widgets bundle and Notification Service.
Due to non-team prefix, it can't access e.g. shared keychain and data put there by our other apps. Since we are working on features that require these capabilities, we would like to update the app identifier, so it is prefixed with our team id DEF456.
Initially, we thought that the process would require steps like:
Create new app, team-prefixed identifier(s) for app and all things that need them
Recreate the provisioning profiles with new App Identifier
Roll out the app using with new profiles via App Store
but when trying to create the new identifier with com.some.app and team id prefix DEF456 we are getting following error:
An App ID with Identifier com.some.app is not available. Please enter a different string.
Can anybody advise us how to correctly perform such change and what steps are required from our end?
We would like to keep our existing App Store entry, ratings and smoothly switch users. We are aware that this kind of migration results in loss of Keychain access.
Thanks for any advice on that!
So I just updated Xcode to 16.3 and updated a project to its recommended build settings which includes "Register App Groups".
So I have an outside Mac App Store app that uses app groups. Here we have an action extension. I can't debug it, can't get it to run. Nothing useful in Xcode is displayed when I try... but it looks like a code signing issue when I run and have Console open.
So I try to make a provisioning profile manually and set it...didn't work. I noticed now though in signing & capabilities the group id is in red...like it's invalid, or something?
This was a "macOS styled" group without the "group." prefix. So am I supposed to switch it to have the group. prefix? It makes the red text go away (no warnings or anything about app groups here, just red text).
So if I change it to group. prefix..does that make an entire new container?What happens on app update for installs that don't have group. prefix? Does the system transparently migrate the group? Or Am I supposed to migrate the entire group container to the identifier with group. prefix?
Also how does this affect running on older version of macOS? If I go with the "group." prefix to make the red text go away,.. what happens on macOS 11.0? Got a little more than I bargained for here after midnight.
Hi,
We have an app that is a default mail client, so it has this entry in its entitlements file: com.apple.developer.mail-client. This seems to create issues with ad-hoc distribution.
We can distribute the app on App Store Connect without any issues and have been doing so for a while.
We wanted to try using Xcode Cloud to manage our releases. The app export works fine for both App Store Distribution and Development Distribution.
However, the ad-hoc distribution step fails. (We don't need ad-hoc distribution, but Xcode Cloud seems to prevent us from removing this step.)
I tried building and releasing the app locally for ad-hoc distribution and encountered the same error as on Xcode Cloud.
When Xcode tries to generate the profile, it outputs the following error:
Provisioning profile "iOS Team Ad Hoc Provisioning Profile: com.infomaniak.mail" failed qualification checks:
Profile doesn't support Default Mail App.
Profile doesn't include the com.apple.developer.mail-client entitlement.
Is it something broken with our config ? What are we missing ?
Local error in Xcode Organizer:
Remote error on Xcode cloud:
I'm trying to get an app notarized, which fails with this error:
The signature of the binary is invalid.
However, locally checking the signature does succeed:
$ codesign -vvv --deep --strict TheApp.app
[…]
TheApp.app: valid on disk
TheApp.app: satisfies its Designated Requirement
Performing this check on every single item in the app's MacOS folder also succeeds.
Context: embedded prebuilt binaries
Now, the app has something unusual about it: it embeds prebuilt binaries, arranged in various nested folders. So, the app bundle's MacOS folder actually contains another folder with a whole tree of executables and libraries:
Removing these (before building) does fix the notarization issue, but obviously I'd like to keep them in.
I did my best to properly sign these items:
At build time, they're copied into the product by a Copy Files phase (but not signed), then signed by a script phase
That signing uses the same signing identity as the running Xcode build, and enables the hardened runtime
The app builds and runs correctly, even as a release build
The app has runtime hardening and app sandbox enabled
How should I go about diagnosing the notarization issue?
Topic:
Code Signing
SubTopic:
Notarization
I’ve been working on a Catalyst version of my iOS apps.
Finally everything is working apart from the custom intents the user user to configure the widgets.
The config UI loads:
And changing settings at this level works.
But it can’t load the options for the other settings:
“No options were provided for this parameter”
I see this crash in the intent:
Termination Reason: Namespace DYLD, Code 1 Library missing
Library not loaded: @rpath/CocoaLumberjack.framework/Versions/A/CocoaLumberjack
Referenced from: <E1BF4CC5-4181-3272-828C-86B1CD1A66BF> /Applications/my.app/Contents/PlugIns/Intents.appex/Contents/MacOS/Intents
Reason: , (security policy does not allow @ path expansion)
(terminated at launch; ignore backtrace)
I have added the Hardened Runtime Capability to the Main App Target, the Widget Target and the Intents Target. I also allowed “Disable Library Validation” just in case.
What am I missing?
Hi,
I have a project that integrates the Firebase SDK via SPM as a dependency of an internal Swift Package:
My app ⟶ My Library ⟶ Firebase SDK
The project builds successfully and can be archived locally ✅. The uploaded .ipa is valid and gets published 🚀.
However, we are now trying to automate the release process using Xcode Cloud, but the iOS Archive action is failing ❌ on Xcode Cloud.
The logs show the following error ⬇️:
error: exportArchive codesign command failed (/Volumes/workspace/tmp/XcodeDistPipeline/XcodeDistPipeline.~~~oomCvM/Root/Payload/base-ios.app/Frameworks/FirebaseAnalytics.framework: replacing existing signature
/Volumes/workspace/tmp/XcodeDistPipeline/XcodeDistPipeline.~~~oomCvM/Root/Payload/base-ios.app/Frameworks/FirebaseAnalytics.framework: invalid or corrupted code requirement(s)
Requirement syntax error(s):
line 1:178: unexpected token: <COMPANY_NAME>
)
** EXPORT FAILED **
I have been researching this issue for a while and have tried several solutions to fix it, but with no luck. Even though the error points to a specific library—the Firebase SDK—I don’t believe Firebase is the root cause. There were related issues in the past, but those were already fixed by the Firebase team, and as I mentioned, the project archives correctly when built locally.
On the other hand, the error states:
line 1:178: unexpected token: <COMPANY_ACRONYM>
This makes me wonder if there’s an issue parsing our Team Name during the re-signing process, as it contains special characters ":
"name": "Apple Distribution: Company Full Name "COMPANY_ACRONYM""
In an expo managed project which utilizes custom expo plugins, we're having trouble getting the keychain-access-groups entitlement inserted to our provisioningprofile for signing.
The provisioning profile we download from apple dev portal contains:
<key>keychain-access-groups</key>
<array>
<string>56APMZ7FZY.*</string>
<string>com.apple.token</string>
</array>
and this is not recognized by xcode for signing; an error is thrown:
Provisioning profile "ccpp" doesn't include the com.apple.developer.keychain-access-groups entitlement.
A matching error is thrown during EAS build.
So we need to find a way to modify the ccpp.mobileprovision locally and then sign the build using the modified ccpp.mobileprovision.
Or, we need guidance on the proper way to resolve this situation.
Questions:
why does the downloaded mobileprovision file have the keychain-access-groups key, and not com.apple.developer.keychain-access-groups? Both Xcode and EAS appear to demand the latter keyname.
when I use expo prebuild, I am able to see the following in the .entitlements file:
<key>com.apple.developer.keychain-access-groups</key>
<array>
<string>$(AppIdentifierPrefix)com.myapp</string>
</array>
I am adding this entitlement using a custom expo plugin. However, the mobileprovision file downloaded from apple developer portal has no knowledge of this setting which is only applied through expo prebuild.
So what I am left with at the end is an entitlements file generated by my expo prebuild which has the correct setting, and a provisioningprofile downloaded from dev portal with an incorrect setting, and I don't know how to mend the downloaded provisioningprofile (incorrect setting) with my local entitlements file (correct setting).
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Entitlements
Provisioning Profiles
Signing Certificates
I have a macOS application that was previously distributed under my personal Apple Developer account using a Developer ID certificate. We’ve recently transitioned distribution to our company’s Apple Developer account.
The app’s bundle identifier has been successfully transferred, and I’ve signed a new build of the app using the company’s Developer ID certificate. The app installs and runs correctly under the new signature. However, I’ve encountered a problem: the app is no longer able to access previously granted permissions (e.g., Screen Recording, System Audio Recording, and Input Monitoring). Furthermore, it cannot re-prompt for these permissions because they appear as already granted in System Settings.
From what I understand, this issue is due to the change in the code signing identity. Specifically, the designated requirements used by macOS to identify an app have changed, so the system no longer associates the new version of the app with the previously granted permissions (as outlined in Apple's Technical Note TN3127).
The only workaround I’ve found so far is to manually reset the app's permissions using Terminal commands (e.g., tccutil reset), but this is not something we can reasonably ask end users to do.
Question:
Is there a recommended or supported approach to either preserve permissions when changing Developer ID identities, or programmatically trigger a permissions reset for existing users? We're looking for a seamless solution that doesn't degrade user experience.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
My command line tool with a JIT entitlement is failing to run on Sequoia.
2025-05-26 14:17:09.758 E taskgated-helper[91764:3ab7036] [com.apple.ManagedClient:ProvisioningProfiles] Disallowing DecisionRuleTool because no eligible provisioning profiles found
2025-05-26 14:17:09.758 Df amfid[576:3ab6d6b] /Users/jim/DecisionRuleTool not valid: Error Domain=AppleMobileFileIntegrityError Code=-413 "No matching profile found" UserInfo={NSURL=file:///Users/jim/DecisionRuleTool, NSLocalizedDescription=No matching profile found}
2025-05-26 14:17:09.759 Df kernel[0:3ab7031] (AppleMobileFileIntegrity) AMFI: When validating /Users/jim/DecisionRuleTool:
2025-05-26 14:17:09.759 Df kernel[0:3ab7031] mac_vnode_check_signature: /Users/jim/DecisionRuleTool: code signature validation failed fatally: When validating /Users/jim/DecisionRuleTool:
2025-05-26 14:17:09.759 Df kernel[0:3ab7031] proc 91763: load code signature error 4 for file "DecisionRuleTool"
2025-05-26 14:17:09.759 Df kernel[0:3ab7032] (AppleSystemPolicy) ASP: Security policy would not allow process: 91763, /Users/jim/DecisionRuleTool
Codesign isn't giving me any clues as to why. It validates.
Asking it what the entitlements are on the binary:
% codesign --display --entitlements - /Users/joconnor/MACEP-9852-2/tools/detection/DecisionRuleTool
Executable=/Users/jim/DecisionRuleTool
[Dict]
[Key] com.apple.application-identifier
[Value]
[String] XXXXXXXXX.com.mycompany.drt
[Key] com.apple.developer.team-identifier
[Value]
[String] XXXXXXXXX
[Key] com.apple.security.cs.allow-jit
[Value]
[Bool] true
https://developer.apple.com/documentation/Xcode/signing-a-daemon-with-a-restricted-entitlement
This makes it look like this may be hopeless, that I can't create a command line took with proper entitlements.
Topic:
Code Signing
SubTopic:
Entitlements
To learn how to develop/distribute a DriverKit driver (DEXT) and a UserClient app correctly, I am trying to run the following sample dext and app.
https://developer.apple.com/documentation/driverkit/communicating-between-a-driverkit-extension-and-a-client-app?language=objc
I walked throught steps in README.md included in the project and faced issues.
First, I referred the "Configure the Sample Code Project" section in the README.md and configured the sample code project to build with automatic signing.
I could run the app and activate the dext successfully and made sure the app could communicate with the dext.
Next, I tried the manual signing.
I followed steps described in the "Configure the Sample Code Project" section carefully.
The following entitlements has already been assigned to my team account.
DriverKit Allow Any UserClient Access
DriverKit USB Transport - VendorID
DriverKit
I could build both app and dext and could run the app.
However, when I clicked the "Install Dext" button to activate the dext, I got the following error:
sysex didFailWithError: extension category returned error
Am I missing something?
I would also like to know detailed steps to publicly distribute my dext and app using our Developer ID Application Certificate, as README.md only shows how to configure the project for development.
Xcode version: 16.3 (16E140)
Development OS: macOS 15.5 (24F74)
Target OS: macOS 15.5 (24F74)
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Entitlements
Provisioning Profiles
DriverKit
Hi Developers,
I'm encountering persistent validation errors in Xcode 16.3 (16E140) on macOS 15.4.1 (24E263) with M1 when archiving and distributing a macOS app (Developer ID signing + notarization).
App Structure:
A native Swift/Obj-C wrapper app that launches a nested .app inside its Resources.
The nested app is built with PyInstaller and includes:
A Python core
Custom C++ binaries
Many bundled .so libraries (e.g., from OpenCV, PyQt/PySide)
Issues During Validation:
App Sandbox Not Enabled
Error: App Sandbox missing for NestedApp.app/Contents/MacOS/NestedExecutable.
Question: For Developer ID (not App Store), is sandboxing strictly required for nested PyInstaller apps? If the wrapper is sandboxed, must the nested app be as well? Given the PyInstaller app's nature (requiring broad system access), how should entitlements be managed?
Upload Symbols Failed
Errors for missing .dSYM files for:
The nested app’s executable
Custom C++ binaries
.so files (OpenCV, PyQt, etc.)
These are either third-party or built without DWARF data, making .dSYM generation impractical post-build.
Question: Are these symbol errors critical for Developer ID notarization (not App Store)? Can notarization succeed despite them? Is lack of symbol upload a known limitation with PyInstaller apps? Any best practices?
I am facing this error on every flutter project build.
Although it runs ok.
The error happens on the codesign command
What do I need to fix ?
I have validated that every *.plist file is ok using plutil -lint
ERROR MESSAGE
/usr/bin/codesign --force --sign MY_SHA_CODE --verbose
/Users/macbookair/workspace/flutter_application_1/build/ios/Release-iphoneos/Runner.app/Frameworks/libswiftCore.dylib)` exited with status 0. The command's
output was:
/Users/macbookair/workspace/flutter_application_1/build/ios/Release-iphoneos/Runner.app/Frameworks/libswiftCore.dylib: a required plist file or resource is
malformed
Info.plist
<?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>CFBundleDevelopmentRegion</key> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key> <string>Flutter Application 1</string>
<key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key> <string>6.0</string>
<key>CFBundleName</key> <string>flutter_application_1</string>
<key>CFBundlePackageType</key> <string>APPL</string>
<key>CFBundleShortVersionString</key> <string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key> <string>????</string>
<key>CFBundleVersion</key> <string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key> <true/>
<key>UILaunchStoryboardName</key> <string>LaunchScreen</string>
<key>UIMainStoryboardFile</key> <string>Main</string>
<key>UISupportedInterfaceOrientations</key> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string> </array>
<key>UISupportedInterfaceOrientations~ipad</key> <array>
<string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string>
</array> <key>CADisableMinimumFrameDurationOnPhone</key>
<true/> <key>UIApplicationSupportsIndirectInputEvents</key>
<true/></dict>
</plist>
Please help.
Hello everyone,
I'm encountering significant delays with the notarization process for our Electron application using a newly created developer account. The process is taking an unusually long time (1-2 days), which is disrupting our workflow.
Details:
We've attempted notarization multiple times over the past 2 weeks.
The process consistently takes 8+ hours before I typically abort it. (due going offline etc)
Interestingly, when I check the notary history later, it shows the notarization was actually successful.
Our application package is relatively large, which might be contributing to the delay (archive: 226 mb, app:800mb)
Recent Examples:
Current submission (still in progress): 52db12c3-4a54-4e14-9d77-e141d7f28227
Previous successful submission: 49273be6-3e13-4f3f-83a4-945114d899b9
Has anyone else experienced similar issues with notarizing applications? Are there any optimizations or best practices I should implement to reduce these processing times? I'm using the default notarization feature that comes with electron forge.
Any suggestions or insights would be greatly appreciated!