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
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
Code Signing
Provisioning Profiles
Signing Certificates
I'm unable to sign the an example application using xcode and "automatically manage signing".
The error I'm getting is:
CodeSign [...] (in target 'foobar' from project 'foobar')
Signing Identity: "Apple Development: [xxxx] "
/usr/bin/codesign --force --sign 4ABB258102FF656E9F597546A49274C28D2B8B3E -o runtime --timestamp\=none --generate-entitlement-der [filename]
4ABB258102FF656E9F597546A49274C28D2B8B3E: no identity found
Command CodeSign failed with a nonzero exit code
However, I am able to see a certificate and a private identity on my keychain:
% security find-certificate -aZ | grep -i 4ABB258102FF656E9F597546A49274C28D2B8B3E
SHA-1 hash: 4ABB258102FF656E9F597546A49274C28D2B8B3E
and
% security find-key -s | grep -q 'Apple Development' && echo YES
YES
what is puzzling is that security does not find an identity:
% security find-identity -p codesigning
Policy: Code Signing
Matching identities
0 identities found
Valid identities only
0 valid identities found
but XCode claims that everything is working fine.
Anybody knows what might I be missing?
I tried logging out, requesting new certificates, rebooting, moving them to another keychain, and asking to developer friends.
I am making an iOS step counting app and I have included a widget in the design. I would like to get the widget to pull data from the main app to display step count etc so I created a bundle id for the widget and have been trying to use a group id to link them together. The group capabilities for both seem to be set up/enabled properly with the same App Groups id, but I've been getting an error in xcode which says, "
'Provisioning Profile: "BUNDLE_ID" doesn't include the com.apple.developer.security.application-groups entitlement.' Try Again
But the identifiers do have the App Group id enabled. I have tried automatic signing, manual signing with generated profiles, unchecking and rechecking auto-signing, removing and re-adding the group capability. Creating a new bundle id from scratch, creating a new group id from scratch. Always I get the error. I've really pulled my hair out troubleshooting this and would appreciate support.
I'm happy to answer and questions or share details.
Thank you.
Can someone please explain why Mac app packaging is so farcically convoluted?
Windows app packaging can be picked up in an hour or so.
But I've spent longer trying to fathom how to package the Mac version than I did building the app.
And it's not done with me yet.
Every single line of code requires a deep dive into a new, unrelated skillset.
So, it’s sidebar after sidebar.
Kafka’s ‘The Trial’ comes to mind.
Why does it have to be like this?
Topic:
Code Signing
SubTopic:
Notarization
Hi, I'm currently at 19 hours waiting for notarization. My dev account is new and this is the first time I'm submitting anything to be notarized. I've gathered from my research that this is normal (unfortunately). I figure the only thing I can do is wait, but is there any way for me to know if I'm waiting for a human to manually review it? I was going to file a support request, but I saw that they won't be responding to any support requests until after their Thanksgiving break, and I assume nobody is manually reviewing notary submissions for the next week+. I attached the submission below, thanks!
createdDate: 2025-11-21T21:17:10.082Z
id: c9746d42-1dc7-4641-aec1-62c6cedff1a2
name: ***********.zip
status: In Progress
Topic:
Code Signing
SubTopic:
Notarization
Hi,
I'm trying to create a FairPlay Streaming Certificate for the SDK 26.x version.
Worth to mention that we already have 2 (1024 and 2048) and we only have the possibility to use our previous 1024-bit certificate (which we do not want because we want a 2048 cert)
Our main issue is that when I upload a new "CSR" file, the "Continue" button is still on "gray" and cannot move forward on the process.
The CSR file has been created with this command:
openssl req -out csr_2048.csr -new -newkey rsa:2048
-keyout priv_key_2048.pem
-subj /CN=SubjectName/OU=OrganizationalUnit/O=Organization/C=US
Some help will be appreciated.
Thanks in advance
Best,
Hi there,
I am trying to build the Apple SimpleAudioDriver example but fail with codesign and/or provisioning.
I would be ok for now with the local option, but XCode 16.4 doesn't show the option "build to run locally" (SIP is disabled).
When using "Automatically manage signing" it ends in a "Please file a bug report".
I found that having two different development teams tripped it up, so I deleted all certificates and keys and made sure to be only signed into one account in Xcode.
Can anyone give advice? Thanks a ton!
Here is the URL to the sample: https://developer.apple.com/documentation/coreaudio/building-an-audio-server-plug-in-and-driver-extension
macOS: 15.6.1
XCode: 16.4
Hardware: MacBook Pro M2 Max
SIP: disabled
Topic:
Code Signing
SubTopic:
Entitlements
I am using a Sonoma VM (14.6) where i have installed xcode 16.2. When i try login into apple id into xcode, i am getting this error. I know i am entering the correct credentials.
Not sure why this issue is.
In other Sequioa and Tahoe VM , i was able to login.
Question based on the https://developer.apple.com/forums/thread/649172
What is the mechanics of using this entitlement?
What should be done in the UNNotificationServiceExtension in order to prevent the display of a notification for the user?
Just pass an empty UNNotificationContent object to contentHandler or something else?
I got an email with the subject "Action Needed: Developer ID Application Certificate Expires in 30 Days"
But on the cert page it's not exactly clear to my how to renew the cert or generate a new one.
Confused by the fact that I already have half a dozen ...somehow?
Any help or guidance appreciated.
Hi Team,
i'm running into same issue with notarization time. I create new, small app for a customer but however the notarization is running since this morning, so almost a few hours.
This isn't normal or ?
Is there anything what i can do ?
Best regard,
Lars
Topic:
Code Signing
SubTopic:
Notarization
Hello,
I've been developing a mac app built with Electron Builder. In August, I was successfully notarizing my app and able to send it to testers without them receiving a malware warning. I took a two month break. When I came back in October, I am not able to distribute my app without the malware warning.
I can't for the life of me figure out what I could be missing, unless my developer account was flagged by Apple for some reason. All the diagnostics I run on my app package show that it is properly signed, notarized, and stapled.
Here are some diagnostics I have run on the app:
Command: codesign -dv --verbose=4 "/Volumes/Form Desktop 1/Form.app"
Output:
Executable=/Volumes/Form Desktop 1/Form.app/Contents/MacOS/Form
Identifier=co.Form.desktop
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=763 flags=0x10000(runtime) hashes=13+7 location=embedded
VersionPlatform=1
VersionMin=720896
VersionSDK=917504
Hash type=sha256 size=32
CandidateCDHash sha256=cedcaef933c003c01b4d9ef6925a413fe6b4a585
CandidateCDHashFull sha256=cedcaef933c003c01b4d9ef6925a413fe6b4a585bf61e19751e8158775600b00
Hash choices=sha256
CMSDigest=cedcaef933c003c01b4d9ef6925a413fe6b4a585bf61e19751e8158775600b00
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=16384
Executable Segment flags=0x1
Page size=4096
CDHash=cedcaef933c003c01b4d9ef6925a413fe6b4a585
Signature size=8973
Authority=Developer ID Application: Jacob LEELAND (92D98F49FU)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Nov 14, 2025 at 8:25:09 PM
Notarization Ticket=stapled
Info.plist entries=30
TeamIdentifier=92D98F49FU
Runtime Version=14.0.0
Sealed Resources version=2 rules=13 files=35090
Internal requirements count=1 size=176
RESULT: ✅ SIGNED WITH DEVELOPER ID
✅ NOTARIZATION TICKET STAPLED
✅ HARDENED RUNTIME ENABLED
----------------------------------------------------------------
Command: spctl --assess --verbose=4 --type execute "/Volumes/Form Desktop 1/Form.app"
Output:
/Volumes/Form Desktop 1/Form.app: accepted
source=Notarized Developer ID
RESULT: ✅ GATEKEEPER ACCEPTS APPLICATION
----------------------------------------------------------------
Command: xattr -l "/Volumes/Form Desktop 1/Form.app"
Output:
(No extended attributes)
----------------------------------------------------------------
Command: stapler validate "/Volumes/Form Desktop 1/Form.app"
Output:
Processing: /Volumes/Form Desktop 1/Form.app
The validate action worked!
RESULT: ✅ NOTARIZATION TICKET VALID
[signing-verification-report.txt](https://developer.apple.com/forums/content/attachment/45b41936-6e7a-4f4f-8e80-bc1e3136c84e)
code-block
I have attached a more complete diagnostic text file as well. I have tried notarizing the .dmg in addition to the app bundle, but no combination seems to work as far as I can tell.
I appreciate any help or point in the right direction. I've wasted many days of development time on this, lol.
Hi everyone,
We're trying to prepare a DriverKit App for a client test, and we've run into an unavoidable signing conflict that seems to be caused by the Xcode Archive process itself.
Background & Environment:
Environment: macOS 15.6.1, Xcode 16.4
Our project consists of a main App Target and a DEXT Target.
Both the Debug and Release configurations for both targets are set to Xcode's default: Automatically manage signing.
Our developer account holds a valid, active Developer ID Application (With Kext) certificate, which we use for signing our legacy KEXT.
The Action That Triggers Failure:
From this clean state, we execute Product -> Archive.
The Archive process fails during the signing validation phase and presents the following three errors, completely halting the process:
There is a problem with the request entity - You already have a current Developer ID Application Managed (With Kext) certificate...
No profiles for 'com.company.Acxxx.driver' were found...
No profiles for 'com.company.Acxxx.app' were found...
This error seems to indicate that the Xcode Archive process:
Ignores the project's Release configuration (even the default 'Auto' setting).
Attempts to automatically create a new, standard Developer ID certificate for us.
This action conflicts with the existing (With Kext) certificate in our account, causing the entire Archive process to fail.
The "Failed Experiment" to Resolve This:
To work around this automation conflict, we tried the solution: configuring a fully manual signing process for the Release configuration to explicitly tell Xcode to use our existing KEXT certificate.
Our Steps: We disabled automatic signing for both the App and DEXT targets for the Release configuration and manually assigned the Developer ID Provisioning Profiles created for our Developer ID (With Kext) certificate.
The New Problem: After doing this, the Signing Certificate field for the DEXT Target's Signing & Capabilities interface now shows None, accompanied by the misleading warning about needing a DriverKit development profile.
The Outcome: This None issue now prevents us from even starting the Archive process, as the project fails to build due to the incorrect signing configuration. We've tried every debugging step — including rebuilding profiles, validating the keychain, and clearing caches — but nothing resolves this None issue.
Our Dilemma:
State A (Fully Automatic Signing): The Archive process fails due to the KEXT certificate conflict.
State B (Manual Release Signing): The project fails to build due to the Signing Certificate: None issue, preventing us from initiating an Archive.
For a development team holding a KEXT Developer ID certificate, how should an Xcode project be configured when migrating to DriverKit, so that the Archive process:
Does not trigger the flawed automation logic that attempts to create a new certificate?
And, does not fall into the Signing Certificate: None configuration trap?
Related Forum Threads We've Studied:
https://developer.apple.com/forums/thread/781932
https://developer.apple.com/forums/thread/751490
https://developer.apple.com/forums/thread/767152
https://developer.apple.com/forums/thread/721563
Best Reagrds,
Charles
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
SCSIControllerDriverKit
PCIDriverKit
DriverKit
I'm having trouble configuring the "IOPCIPrimaryMatch" entitlement.
I'm currently developing using "sign to run locally" and have been able to confirm the expected behavior. I was considering signing with "Developer ID Application" for future distribution to customers, but after finding the following forum, I'm now aiming to sign with "Apple Development."
https://developer.apple.com/forums/thread/743021
I'm currently having trouble with the IOPCIPrimaryMatch value. The "signing certificate" status in Xcode changes depending on the value, as follows:
Successful if the value is as follows:
IOPCIPrimaryMatch
0xFFFFFFFF&0x00161916
An error occurs if the value is as follows:
IOPCIPrimaryMatch
0xFFFFFFFF&0x00161916
So I tried building and installing using "0xFFFFFFFF&0x00161916", but this time the driver was not assigned to the PCI device.
By the way, when I used "sign to run locally", both the installation and assignment were successful with the following:
IOPCIPrimaryMatch
0xFFFFFFFF&0x00161916
Could you please tell me the correct way to write this?
I've submitted my app, signed with a new Developer Id Certificate for a distribution outside of the App Store, 88 hours ago.
xcrun notarytool history ...
Shows the submission as "In Progress".
xcrun notarytool log ...
Tells me "Submission log is not yet available or submissionId does not exist".
I don't know if that's expected for an "In Progress" submission.
As far as I can tell the signing worked without problems. I'm using the Tauri toolchain, which under its hood is using notarytool.
How long can I expect this to take? If there is a problem with my submission does the status just stay on "In Progress" or do I get an error?
Thanks
Topic:
Code Signing
SubTopic:
Notarization
Hello,
We are experiencing an issue with the notarization queue and would appreciate your assistance.
A few days ago, we helped another team submit their app for notarization. However, that submission has been stuck in the “In Progress” state for about three days now. Unfortunately, this also seems to have caused our own team’s notarization requests to get stuck as well.
We ran the following command to review the submission history:
xcrun notarytool history --apple-id "xxx" --team-id "xxx" --password "xxx"
Successfully received submission history.
Partial results:
id: 0bafa66f-4f47-4327-811f-a05481be5d0b
status: In Progress
id: 2d00b75a-a17a-44fc-afa1-71e0e39ec2cd
status: In Progress
It appears that one of these belongs to another team’s app we helped submit, and the other is our own submission.
Both have remained In Progress for several days, and we are now unable to proceed with any new notarization requests.
Could you please help us clear or reset the stuck notarization queue so we can continue our submissions?
Thank you very much for your help!
Topic:
Code Signing
SubTopic:
Notarization
I am using Automatically Manage Signing
And I have registered my Mac UUID in developer account, but it is still giving me these errors -
Device My Mac is not registered to your team Ai Glider Inc. Devices must be registered in order to run your code, but you do not have permission to register them. Please check with your team's admin.
No profiles for 'com.aiexample.sebexample' were found
Xcode couldn't find any Mac App Development provisioning profiles matching 'com.aiexample.sebexample'.
Hi everyone,
I’m trying to notarize a macOS app for direct distribution in Xcode. The upload finished, but the notarization has been stuck on “In Progress” for hours. I’m not getting any emails or errors, and the status log in Organizer only shows the same “In Progress” message without any extra details.
I tried reopening Organizer and creating a new archive, but it always ends up in the same state.
Is this normal, or is there something I should check on my side? Any help would be appreciated.
Thanks!
I have a DriverKit system extension (dext) that uses PCIDriverKit. I would like to get the build environment straightened out to successfully distribute the dext and associated software to end users.
There are three types of software involved:
The Dext-hosting application - this is the application that must be installed to /Applications/, and will perform the registration of the dext. The dext is deployed "within" this application, and can be found in the /Contents/Library/SystemExtensions folder of the app bundle.
The dext itself - this is the actual binary system extension, which will be registered by its owning application, and will operate in its own application space independent of the hosting application.
Additional applications that communicate with the dext - these are applications which will connect to the dext through user clients, but these applications do not contain the dext themselves.
There are multiple locations where settings need to be exactly correct for each type of software to be signed, provisioned, and notarized properly in order to be distributed to users:
developer.apple.com - where "identifiers" and "provisioning profiles" are managed. Note that there are differences in access between "Team Agent", "Admin", and "Developer" at this site.
Xcode project's Target "Signing & Capabilities" tab - this is where "automatically manage signing" can be selected, as well as team selection, provisioning profile selection, and capabilities can be modified.
Xcode project's Target "Build Settings" tab - this is where code signing identity, code signing development team, code signing entitlements file selection, Info.plist options and file selection, and provisioning profile selection.
Xcode's Organizer window, which is where you manage archives and select for distribution. In this case, I am interested in "Developer ID" Direct Distribution - I want the software signed with our company's credentials (Team Developer ID) so that users know they can trust the software.
Choosing "automatically manage signing" does not work for deployment. The debug versions of software include DriverKit (development) capability (under App ID configuration at developer.apple.com), and this apparently must not be present in distributable provisioning. I believe this means that different provisioning needs to occur between debug and release builds?
I have tried many iterations of selections at all the locations, for all three types of binaries, and rather than post everything that does not work, I am asking, "what is supposed to work?"
Is the Notary service unavailable again? The system-status page shows it as being green but I am back to receiving the same error as previously which fixed itself once the notary service went green again and I am unable to notarize and staple my Distribution PKG.
Hello Quinn and Apple Developer Support,
We are encountering an issue where our notarization queue appears to be stuck, and we would greatly appreciate your help.
A few days ago, we assisted another team by submitting their app for notarization using our own Apple Developer account, because their own notarization attempts were getting stuck. However, the submission we made for them under our account has now been stuck in the “In Progress” state for about 5 days.
Later, their own submission (using their account) was rejected after 2–3 days, but our submission for them (under our account) has never completed.
Since then, all our subsequent notarization requests have also remained “In Progress”, which strongly suggests that the stuck submission is blocking our entire notarization queue.
Here are the details from our submission history:
xcrun notarytool history --apple-id "xxx" --team-id "xxx" --password "xxx"
Partial results:
id: 0bafa66f-4f47-4327-811f-a05481be5d0b status: In Progress
id: 2d00b75a-a17a-44fc-afa1-71e0e39ec2cd status: In Progress
The first ID is our own app’s submission.
The second ID belongs to the submission we made for the other team.
Both have been stuck in “In Progress” for several days, which seems abnormal.
Could you please help us clear or reset the notarization queue for our account so that we can continue submitting our own apps?
Thank you very much for your time and assistance!
Best regards,
gongcj
Topic:
Code Signing
SubTopic:
Notarization