You can now easily request access to managed capabilities for your App IDs directly from the new Capability Requests tab in Certificates, Identifiers & Profiles > Identifiers. With this update, view available capabilities in one convenient location, check the status of your requested capabilities, and see any notes from Apple related to your requests. Learn more about capability requests.
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
General:
Forums topic: Code Signing
Forums subtopics: Code Signing > General, Code Signing > Certificates, Identifiers & Profiles, Code Signing > Notarization, Code Signing > Entitlements
Forums tags: Code Signing, Signing Certificates, Provisioning Profiles, Entitlements
Developer Account Help — This document is good in general but, in particular, the Reference section is chock-full of useful information, including the names and purposes of all certificate types issued by Apple Developer web site, tables of which capabilities are supported by which distribution models on iOS and macOS, and information on how to use managed capabilities.
Developer > Support > Certificates covers some important policy issues
Bundle Resources > Entitlements documentation
TN3125 Inside Code Signing: Provisioning Profiles — This includes links to the other technotes in the Inside Code Signing series.
WWDC 2021 Session 10204 Distribute apps in Xcode with cloud signing
Certificate Signing Requests Explained forums post
--deep Considered Harmful forums post
Don’t Run App Store Distribution-Signed Code forums post
Resolving errSecInternalComponent errors during code signing forums post
Finding a Capability’s Distribution Restrictions forums post
Signing code with a hardware-based code-signing identity forums post
New Capabilities Request Tab in Certificates, Identifiers & Profiles forums post
Isolating Code Signing Problems from Build Problems forums post
Investigating Third-Party IDE Code-Signing Problems forums post
Determining if an entitlement is real forums post
Code Signing Identifiers Explained forums post
Mac code signing:
Forums tag: Developer ID
Creating distribution-signed code for macOS documentation
Packaging Mac software for distribution documentation
Placing Content in a Bundle documentation
Embedding nonstandard code structures in a bundle documentation
Embedding a command-line tool in a sandboxed app documentation
Signing a daemon with a restricted entitlement documentation
Defining launch environment and library constraints documentation
WWDC 2023 Session 10266 Protect your Mac app with environment constraints
TN2206 macOS Code Signing In Depth archived technote — This doc has mostly been replaced by the other resources linked to here but it still contains a few unique tidbits and it’s a great historical reference.
Manual Code Signing Example forums post
The Care and Feeding of Developer ID forums post
TestFlight, Provisioning Profiles, and the Mac App Store forums post
For problems with notarisation, see Notarisation Resources. For problems with the trusted execution system, including Gatekeeper, see Trusted Execution Resources.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Topic:
Code Signing
SubTopic:
General
Tags:
Entitlements
Provisioning Profiles
Signing Certificates
Code Signing
Hi everyone,
I'm hoping someone can share their experience or offer advice on entitlement request timelines.
I previously had two bundle IDs approved for an app I'm testing via TestFlight - both were approved within a few days. I recently submitted a request for a third bundle ID (JMSHRM8W5J), and after realizing I may not have included enough detail, I submitted a follow-up request (XS2QYC59UU) with more context.
It's now been almost three weeks, which is significantly longer than my earlier approvals - though I recognize some of that time included the holidays.
A few questions for the community:
Has anyone experienced longer wait times for additional entitlements on an existing project (with approved entitlements)?
Did submitting a second request help or potentially slow things down?
Is there anything I should include in a request to improve chances of quick approval?
Any insight would be appreciated. Thanks!
Topic:
Code Signing
SubTopic:
Entitlements
Tags:
Family Controls
Device Activity
Managed Settings
Screen Time
Hi!
I've been scratching my brain for a few days now to no avail.
I have a Perl project that I need to embed within my app. Perl includes a pp command (https://metacpan.org/pod/pp) which takes the runtime binary and then slaps the Perl code at the end of the binary itself which in brings some woes in a sense that the binary then needs to be "fixed" (https://github.com/rschupp/PAR-Packer/tree/master/contrib/pp_osx_codesign_fix) by removing the linker-provided signature and fixing LINKEDIT and LC_SYMTAB header sections of the binary.
Nevertheless, I've successfully gotten the binary built, fixed up and codesigned it via codesign -s '$CS' mytool (where $CS is the codesigning identity). I can verify the signature as valid using codesign -v --display mytool:
Identifier=mytool
Format=Mach-O thin (arm64)
CodeDirectory v=20400 size=24396 flags=0x0(none) hashes=757+2 location=embedded
Signature size=4820
Signed Time=5. 1. 2026 at 8:54:53 PM
Info.plist=not bound
TeamIdentifier=XXXXXXX
Sealed Resources=none
Internal requirements count=1 size=188
It runs without any issues in Terminal, which is great.
As I need to incorporate this binary in my app which is sandboxed, given my experience with other binaries that I'm including in the app, I need to codesign the binary with entitlements com.apple.security.app-sandbox and com.apple.security.inherit. So, I run:
codesign -s '$CS' --force --entitlements ./MyTool.entitlements --identifier com.charliemonroe.mytool mytool
... where the entitlements file contains only the two entitlements mentioned above.
Now I add the binary to the Xcode project, add it to the copy resources phase and I can confirm that it's within the bundle and that it's codesigned:
codesign -vvvv --display MyApp.app/Contents/Resources/mytool
Identifier=com.xxx.xxx.xxx
Format=Mach-O thin (arm64)
CodeDirectory v=20500 size=24590 flags=0x10000(runtime) hashes=757+7 location=embedded
VersionPlatform=1
VersionMin=1703936
VersionSDK=1704448
Hash type=sha256 size=32
CandidateCDHash sha256=0a9f93af81e8e5cb286c3df6e638b2f78ab83a9e
CandidateCDHashFull sha256=0a9f93af81e8e5cb286c3df6e638b2f78ab83a9edf463ce45d1cd3f89a6a4a00
Hash choices=sha256
CMSDigest=0a9f93af81e8e5cb286c3df6e638b2f78ab83a9edf463ce45d1cd3f89a6a4a00
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=32768
Executable Segment flags=0x1
Page size=16384
CDHash=0a9f93af81e8e5cb286c3df6e638b2f78ab83a9e
Signature size=4800
Authority=Apple Development: XXXXXX (XXXXXX)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=9. 1. 2026 at 5:12:22 PM
Info.plist=not bound
TeamIdentifier=XXXXX
Runtime Version=26.2.0
Sealed Resources=none
Internal requirements count=1 size=196
codesign --display --entitlements :- MyApp.app/Contents/Resources/mytool
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>com.apple.security.app-sandbox</key><true/><key>com.apple.security.inherit</key><true/></dict></plist>
All seems to be in order! But not to Gatekeeper... Attempting to run this using the following code:
let process = Process()
process.executableURL = Bundle.main.url(forResource: "mytool", withExtension: nil)!
process.arguments = arguments
try process.run()
process.waitUntilExit()
Results in failure:
process.terminationStatus == 255
Console shows the following issues:
default 17:12:40.686604+0100 secinitd mytool[88240]: root path for bundle "<private>" of main executable "<private>"
default 17:12:40.691701+0100 secinitd mytool[88240]: AppSandbox request successful
error 17:12:40.698116+0100 kernel exec of /Users/charliemonroe/Library/Containers/com.charliemonroe.MyApp/Data/tmp/par-636861726c69656d6f6e726f65/cache-9c78515c29320789b5a543075f2fa0f8072735ae/mytool denied since it was quarantined by MyApp and created without user consent, qtn-flags was 0x00000086
Quarantine, hum? So I ran:
xattr -l MyApp.app/Contents/Resources/mytool
None listed.
It is a signed binary within a signed app. There are other binaries that are included within the app and run just fine exactly this way (most of them built externally using C/C++ and then codesigned exectly as per above), so I really don't think it's an issue with the app's sandbox setup...
Is there anyone who would be able to help with this? Thank you in advance!
I've tried to notarize my app recently and got the error:{
"logFormatVersion": 1,
"jobId": "...",
"status": "Rejected",
"statusSummary": "Team is not yet configured for notarization",
"statusCode": 7000,
"archiveFilename": "myapp.dmg",
"uploadDate": "2019-06-20T06:24:53Z",
"sha256": "...",
"ticketContents": null,
"issues": null
}I've never heard about "team configuration for notarization" previously. What are the steps to resolve that issue?Thanks in advance.
I have two Macs, desktop and laptop. Since they both belong to me, they both sign in with the same Apple account. I find that if I sign and notarize an app on one, the other must be powered off. Otherwise, notarization will fail.
Is this intentional? If so, what is the rationale? Is there a way to fix or avoid it?
Both systems run macOS Tahoe with the latest updates. Both are set up the same way for signing using the same certificates. The build process is identical on each.
Topic:
Code Signing
SubTopic:
Notarization
The process has been stuck "In Progress" for 8 days now. We had a scheduled New Year Offer for our software that would run based around this important new update, and obviously we missed it because of this crazy issue. Notarization used to take a few seconds. Now it does not work, neither on my newly set up Mac, nor in my old (completely unchanged) one.
My company and finances are totally frozen at this point due to this issue. PLEASE help, look into my actual account and do what is needed!
Topic:
Code Signing
SubTopic:
Notarization
I am a developer with the following roles:
Apple Developer Team = admin
Using expo & EAS to build & sign = developer
We are running a new project so credentials need to be sync'd up. With EAS i can either upload a p12 or use the automatic app signing credentials.
I have successfully run this in other projects including another where I am the account owner/holder.
For this new project, however, I am not the owner. When I try to "register bundle identifier" it results in:
Error: Apple 403 detected - Access forbidden.
This request is forbidden for security reasons - You currently don't have access to this membership resource.
> eas credentials
✔ Select platform › iOS
✔ Which build profile do you want to configure? › preview
✔ Using build profile: preview
If you provide your Apple account credentials we will be able to generate all necessary build credentials and fully validate them.
This is optional, but without Apple account access you will need to provide all the missing values manually and we can only run minimal validation on them.
✔ Do you want to log in to your Apple account? … yes
› Log in to your Apple Developer account to continue
✔ Apple ID: … myemail@gmail.com
› Restoring session /Users/me/.app-store/auth/myemail@gmail.com/cookie
✔ Select a Team › My Project Team - Company/Organization (XXXXX)
› Provider My Project Team LLC (XXXXX)
✔ Logged in Local session
iOS Credentials
Project @team/my-app
Bundle Identifier com.teambundle.dev
No credentials set up yet!
✔ What do you want to do? › Build Credentials: Manage everything needed to build your project
iOS Credentials
Project @team/my-app
Bundle Identifier com.teambundle.dev
No credentials set up yet!
✔ What do you want to do? › All: Set up all the required credentials to build your project
✖ Failed to register bundle identifier com.teambundle.dev
Error: Apple 403 detected - Access forbidden.
This request is forbidden for security reasons - You currently don't have access to this membership resource. Contact your team's Account Holder, MY MANAGER, or an Admin.
Cryptic error? [Learn ](https://github.com/expo/fyi/blob/main/cryptic-error-eas.md)
Why am I getting a 403?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
I am using the xcrun notarytool submit --apple-id xxxxx@gmail.com --password xxxxx--team-id xxxxxx --output-format json --wait --no-progress /my/dmg/file
to notarize my DMG file. But it always gives me back the error,
Error: HTTP status code: 403. A required agreement is missing or has expired. This request requires an in-effect agreement that has not been signed or has expired. Ensure your team has signed the necessary legal agreements and that they are not expired.
I did log in my developer account and found no place to sign any agreement. Actually in the morning when I logged in the developer account, it indeed pop up the agreement for me to sign and I did sign it. But now it seems I don't have any more agreements to sign. So, any ideas about what I should do?
Topic:
Code Signing
SubTopic:
Notarization
Hello,
we have a product package which is structured like this:
/ Installer.pkg
/ Distribution
/ Main Component.pkg
/ Scripts
/ preinstall
/ postinstall
/ helper [ Mach-O executable ]
/ Payload
/ Application Bundle.app
/ Another Component.pkg
...
The helper is our custom CLI helper tool which we build and sign and plan to use it in pre/post install scripts.
I'd like to ask if we need to independently notarize and staple the helper executable or just the top level pkg notarization is sufficient in this case?
We already independently notarize and staple the Application Bundle.app so it has ticket attached. But that's because of customers who often rip-open the package and pick only the bundle. We don't plan to have helper executable used outside of installation process.
Thank you,
o/
When attempting to access the (Certificates Identifiers & Profiles) page, I receive the message "Unable to find a team with the given Team ID to which you belong". Even while set as a developer or as an admin I still receive the same message above.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
App Store Connect
Xcode
Signing Certificates
Developer Program
Hey there!
Thanks so much for all the great posts about this topic!
I'm fairly new to Mac development since a few months back, and I've been really impressed with Apple's developer tools and ecosystem so far. It's been an exciting journey building for macOS!
However, I've hit a bit of a roadblock with the notarization process via direct download and would really appreciate some guidance from you more experienced developers. I understand that Apple has built a well-designed automated system to maintain high security for users, but I'm wondering:
What's the normal timeframe for notarization to complete?
What are usually the most common reasons if it takes longer than expected?
Is there anyone at Apple who can help if the process gets stuck?
I'm really excited to launch my app and continue developing for this amazing platform, so any tips from experienced Apple developers would be hugely appreciated!
Thanks in advance! 🙏
Topic:
Code Signing
SubTopic:
Notarization
I have recently enrolled in the Apple Developer to get my app notarized, and submitted an Archive for notarization, but it is taking forever. It has almost been a whole day, but the status is still in progress, whereas I have seen other developers say that the same takes 10-15 mins to an hour for them. Am I doing anything wrong? Please guide me through this.
Topic:
Code Signing
SubTopic:
Notarization
I have been waiting well over 24 hours for my notarization to occur, and nothing - no "we might take a while if it is your first app" or any mention of that in the docs.
So why is it taking this long? What's the hold up???
If this is part of the process, Apple should officially document it, so developers aren't left resubmitting and wondering. This is not a good first experience with the developer program.
Successfully received submission history.
history
--------------------------------------------------
createdDate: 2026-01-07T05:22:34.038Z
name: URSAMajorSpaceStationSST206_v1.0.0.zip
status: In Progress
--------------------------------------------------
createdDate: 2026-01-06T01:55:05.144Z
name: URSAMajorSpaceStationSST206_v1.0.0.zip
status: In Progress
--------------------------------------------------
createdDate: 2026-01-05T20:55:50.624Z
name: test.zip
status: Invalid
--------------------------------------------------
createdDate: 2026-01-05T20:32:52.944Z
name: URSAMajorSpaceStationSST206.vst3.zip
status: In Progress
--------------------------------------------------
createdDate: 2026-01-05T19:37:15.426Z
name: URSAMajorSpaceStationSST206.component.zip
status: In Progress
--------------------------------------------------
createdDate: 2026-01-05T18:37:43.101Z
name: URSAMajorSpaceStationSST206.component.zip
status: In Progress
Topic:
Code Signing
SubTopic:
Notarization
Hello,
I'm experiencing a persistent issue where all my notarization submissions remain stuck in "In Progress" indefinitely. This has been happening for the past several days, affecting multiple submissions.
Environment:
macOS 26.2 (Build 25C56)
Using xcrun notarytool submit for submissions
Team ID: M3FN25UQK2
Timeline of the issue:
Starting from January 2nd, 2026, my submissions began getting stuck in "In Progress"
As of January 6th, I have 6+ submissions that have been "In Progress" for 24-72+ hours
Prior to this, notarization was working normally (I have multiple "Accepted" submissions from January 1st)
What I've tried:
Verified my Developer ID Application certificate is valid and properly installed
Checked Apple Developer System Status page (shows "Operational")
Verified code signatures using codesign -vvv --deep --strict
Contacted Apple Developer Support (no response yet)
Checked my Apple Developer account for any pending agreements or warnings (none found)
Is there any known issue affecting notarization processing, or could my Team ID be rate-limited/flagged? Any guidance on how to resolve this would be greatly appreciated.
Thank you!
Hi everyone,
Has anyone seen notarization behave like this?
We have one specific app (let’s call it App A) with a Network Extension system extension. Whenever we submit App A for notarization:
• Its submission stays “In Progress” indefinitely
• The provisioning profile for its system extension becomes Invalid on its own
• All our other apps suddenly fail notarization
• And the whole team immediately gets:
StatusCode 7000 – “Team is not yet configured for notarization.”
Apple Support restored notarization once(Case 102738171569), and we confirmed other apps notarize fine — until we submit App A again, which instantly triggers the same team-wide block. This cycle has repeated twice.
We verified:
• Hardened runtime
• Proper system extension signing
• No private API usage
• No get-task-allow
• No ATS violations
What’s confusing is that this doesn’t look like a normal notarization rejection. Normal failures don’t invalidate provisioning profiles or disable notarization for the entire team. It feels more like an automated security heuristic or misclassification.
My questions:
1. Can a single app or system extension trigger an automated team-wide notarization disable?
2. Can an entitlement or NE configuration issue cause StatusCode 7000 instead of a standard rejection?
3. If this could be a false positive, is there a specific team at Apple who can manually review/clear it?
Any insight would be greatly appreciated.
Notarization Rejects Valid Developer ID Certificates - Apple Infrastructure Issue?
Environment
macOS: 15.6.1
Xcode: 26.0.1
Architecture: arm64 (Apple Silicon)
Team ID: W----------
Certificate Status: Valid until 2030 (verified on developer.apple.com)
Problem
Apple's notarization service consistently rejected properly signed packages with error:
"The binary is not signed with a valid Developer ID certificate."
Despite:
✅ Valid certificates on developer.apple.com
✅ Local signing succeeds (codesign --verify passes)
✅ Proper certificate/key pairing verified
✅ Package structure correct
Failed Submission IDs
September 2025:
adeeed3d-4732-49c6-a33c-724da43f9a4a
5a910f51-dc6d-4a5e-a1c7-b07f32376079
3930147e-daf6-4849-8b0a-26774fd92c3c
b7fc8e4e-e03c-44e1-a68e-98b0db38aa39
d7dee4a1-68e8-44b5-85e9-05654425e044
da6fa563-ba21-4f9e-b677-80769bd23340
What I've Tried
Re-downloaded fresh certificates from Apple Developer Portal
Verified certificate chain locally
Tested with multiple different builds
Confirmed Team ID matches across all configurations
Verified no unsigned nested components
Waited 3 months for potential propagation delays
Verified all agreements are current and accepted
Re-tested with minimal test package - same error persists
Local Verification
# Certificates present and valid
security find-identity -v -p codesigning | grep "Developer ID"
1) XXXXXXXXXX "Developer ID Application: <<REDACTED>> (W----------)"
2) XXXXXXXXXX "Developer ID Installer: <<REDACTED>> (W----------)"
# Signing succeeds
codesign --verify --deep --strict --verbose=2 [app] → Success
Question
This appears similar to thread #784184. After 3 months and ensuring all agreements are signed, the issue persists with identical error.
The certificates work for local signing but Apple's notarization service rejects them. Could this be:
Backend infrastructure issue with Team ID W----------?
Certificate not properly registered in Apple's notarization database?
Known issue requiring Apple Support intervention?
Has anyone else experienced valid Developer ID certificates being rejected specifically by the notarization service while working locally?
Topic:
Code Signing
SubTopic:
Notarization
Tags:
App ID
Notarization
Signing Certificates
Code Signing
Environment:
MacBook Air Apple M2 (macOS Tahoe 26.1)
Xcode 26.0 (17A324)
Automatic signing enabled
Feedback ID: FB21537761
Issue:
I'm developing a multiplatform app and encountered an automatic signing failure immediately after adding the Keychain capability. Xcode displays the following error:
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 "Mac Team Provisioning Profile: com.xxx. xxx" doesn't include the currently selected device "FIRF‘s MacBook Air" (identifier 00008112-000904CA3441xxxx).
What I've Investigated/Tried:
Checked the developer account devices and found that the device with identifier 00008112-000904CA3441xxxx is incorrectly labeled as an “iPod” (it is actually my MacBook Air).
Attempted to manually enroll the Mac again, but it still appears as an iPod in the device list.
Tried creating a provisioning profile manually, but no devices are available for selection in the device list when generating the profile.
Question:
Has anyone encountered a similar issue where a Mac is misidentified as an iPod in the developer portal, leading to provisioning failures? Any suggestions on how to resolve this or work around the device recognition problem?
Thank you in advance for your help.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Provisioning Profiles
Signing Certificates
Code Signing
I've submitted my app four times, each time waiting a few hours for something to happen, then reducing the file size of my *.dmg and trying again. The first two seemed to have completed after 36 hours, but I no longer have that specific signed binary (and its a much smaller binary now anyway). The latest two are still "In Progress" and its almost been 48 hours.
I know my process isn't wrong, and my app isn't somehow incorrectly built or being denied because two were accepted. The outage page shows green for the notary tool (https://developer.apple.com/system-status/) so I'm not sure what the hold up is.
I am submitting .dmg notarization requests from Sequoia 15.7.3 using xcrun submit. My developer certificate was created in the last two weeks and is valid. I have had some successful notarizations already so I know that my configuration is correct. However, for the last 48 hours all of my submissions are stuck at 'in progress'. Is there an issue with the notarization service on Apple's side?
Topic:
Code Signing
SubTopic:
Notarization
The entire 'Certificates, IDs & Profiles' section is missing from developer.apple.com portal for one of the accounts I am a developer for. The Team is also missing from the dropdowns in Xcode in Code Signing. The organization account membership is paid through July 2026, and I do not see that the Account Holder needs to sign any agreements. I am a user on other accounts, and none of them have this issue. Does anyone know what's going on?
In an AppleScript applet, compiling and exporting in Script Editor replaces a custom icon with the default. To retain a custom icon, it is necessary, after exporting, to use Finder's "Get info..." to copy the icon from another file and paste into the icon for the applet. The custom icon is stored in the "Icon?" file, located in the root of the applet bundle. The applet can then be signed and notarized.
With macOS Tahoe, that procedure no longer works. That is because the notarization process now wipes the "Icon?" file. The file remains in place but has zero size. Thus Finder shows the default applet icon.
Does anyone know of a way to provide a custom icon for a signed and notarized AppleScript applet ?