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 starting a new project in Xcode, but the Team ID in the "Signing and Capabilities" section for iOS is different from the one on the website. Is this a problem? Why does Xcode automatically send a different ID when signing?
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?
Hello,
I'm currently developing an iOS app that uses SensorKit.
Everything works fine in development and testing — the app correctly requests and receives SensorKit permissions on test devices.
In my App ID configuration, the SensorKit Reader Access entitlement (com.apple.developer.sensorkit.reader.allow) is included and visible in Xcode under the project’s entitlements list.
However, when I try to archive and distribute the app, I get the following errors in Xcode:
Provisioning profile failed qualification
Profile doesn't support SensorKit Reader Access.
Provisioning profile failed qualification
Profile doesn't include the com.apple.developer.sensorkit.reader.allow entitlement.
Even though my provisioning profile includes this entitlement, Xcode still refuses to distribute the app.
Here’s what I’ve confirmed so far:
The provisioning profile lists com.apple.developer.sensorkit.reader.allow in its entitlements.
SensorKit works perfectly in debug and development builds.
The issue only occurs when attempting to distribute (Archive → Distribute App).
Could this be because my account has only development entitlement for SensorKit and not the distribution entitlement?
If so, how can I verify or request the proper distribution entitlement for SensorKit Reader Access?
Thank you for any guidance or confirmation from Apple regarding this entitlement behavior.
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'm currently observing a problem similar to this thread https://developer.apple.com/forums/thread/737334
The difference is that this is happening after updating a system extension.
Basically same error, sysextd complains it can not check that the system extension is notarized: macOS Error 3 + Error code=-67050.
I think macOS (Sequoia 15.3.2 or 15.7.2 if it matters) is wrong in this case for the following reasons:
when using spctl assess -t install, the system extension is reported to be correctly notarized.
when restarting the Mac, the updated system extension is correctly checked and staged.
if I run spctl assess before sysextd tries to check the system extension, it works.
I'm currently thinking of 2 reasons why the check does not work:
sysextd is somehow trying to work with a cached assessment that has become invalid after the system extension was updated.
macOS needs way more time between the update of the files and the request to update the staged extension. I tried adding a 5-second delay. This does not seem to work or at least reliably.
I tried just touching the system extension, no positive result. Unfortunately, in macOS Sequoia, it is not possible anymore to reset-default using spctl and see if it solves the issue, at least the next time the update is performed.
[Q] Is there some magic operation that would help macOS correctly check the notarization of an updated system extension?
When submitting my new build to app store connect directly from dreamflow, I get this error:
Failed Step: Flutter build ipa and automatic versioning
Building com.pinpictu for device (ios-release)...
════════════════════════════════════════════════════════════════════════════════
No valid code signing certificates were found
You can connect to your Apple Developer account by signing in with your Apple ID
in Xcode and create an iOS Development Certificate as well as a Provisioning
Profile for your project by:
1- Open the Flutter project's Xcode target with
open ios/Runner.xcworkspace
2- Select the 'Runner' project in the navigator then the 'Runner' target
in the project settings
3- Make sure a 'Development Team' is selected under Signing & Capabilities > Team.
You may need to:
- Log in with your Apple ID in Xcode first
- Ensure you have a valid unique Bundle ID
- Register your device with your Apple Developer Account
- Let Xcode automatically provision a profile for your app
4- Build or run your project again
5- Trust your newly created Development Certificate on your iOS device
via Settings > General > Device Management > [your new certificate] > Trust
For more information, please visit:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/
AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
Or run on an iOS simulator without code signing
════════════════════════════════════════════════════════════════════════════════
No development certificates available to code sign app for device deployment
Build failed :|
Step 10 script Flutter build ipa and automatic versioning exited with status code 1
Please not I am on a windows pc, not a mac. I'm not sure how to clear this error and I am not an experinced coder, so any advice would be greatly appreciated, especially if it is simple and easy to follow.
i encountered an error when i distributing my app on xcode 26.0.1. Below is error log.
{
"logFormatVersion": 1,
"jobId": "ed2b622b-61f6-4c8a-90b7-7c3cdfbafc7a",
"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": "mychm.zip",
"uploadDate": "2025-12-10T01:50:34.198Z",
"sha256": "b61e224154823c8e06c3db904d67a78969f1564c7602f1fa77335fdd12a8d22b",
"ticketContents": null,
"issues": null
}
I have two apps - say A and B in my AppStore account, deployed in the AppStore.
App A has obtained the com.apple.developer.usernotifications.filtering entitlement and this is added to my AppStore account by Apple after approval. Note that this is added for the account, and not for the specific app.
Now, my app B also wants this functionality.
Followed all the steps as done for app A - adding the already approved entitlement to my app B's identifier, regenerating the profiles, adding the key in the entitlements file, calling the completion handler with empty content like - contentHandler(UNNotificationContent())
Still the notifications show, the filtering is not working.
Do I have to request the entitlement for App B separately?
Even if I do request again, I am not sure if there is going to be any difference in the steps already done. The difference can only be if Apple has a mapping with the app id internally in their system, for the filtering to work?
If I have white-labelled versions of apps A or B, do I have to request again then?
Or does Apple restrict only one app to have this entitlement from one AppStore account?
Please guide on the next steps here.
This issue keeps cropping up on the forums and so I decided to write up a single post with all the details. If you have questions or comments:
If you were referred here from an existing thread, reply on that thread.
If not, feel free to start a new thread. Use whatever topic and subtopic is appropriate for your question, but also add the Entitlements tag so that I see it.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Determining if an entitlement is real
In recent months there’s been a spate of forums threads involving ‘hallucinated’ entitlements. This typically pans out as follows:
The developer, or an agent working on behalf of the developer, changes their .entitlements file to claim an entitlement that’s not real. That is, the entitlement key is a value that is not, and never has been, supported in any way.
Xcode’s code signing machinery tries to find or create a provisioning profile to authorise this claim.
That’s impossible, because the entitlement isn’t a real entitlement. Xcode reports this as a code signing error.
The developer misinterprets that error [1] in one of two ways:
As a generic Xcode code signing failure, and so they start a forums thread asking about how to fix that problem.
As an indication that the entitlement is managed — that is, requires authorisation from Apple to use — and so they start a forums thread asking how to request such authorisation.
The fundamental problem is step 1. Once you start claiming entitlements that aren’t real, you’re on a path to confusion.
Note If you’re curious about how provisioning profiles authorise entitlement claims, read TN3125 Inside Code Signing: Provisioning Profiles.
There are a couple of ways to check whether an entitlement is real. My preferred option is to create a new test project and use Xcode’s Signing & Capabilities editor to add the corresponding capability to it. Then look at what Xcode did. You might find that Xcode claimed a different entitlement, or added an Info.plist key, or did nothing at all.
IMPORTANT If you can’t find the correct capability in the Signing & Capabilities editor, it’s likely that this feature is available to all apps, that is, it’s not gated by an entitlement or anything else.
Another thing you can do is search the documentation. The vast majority of real entitlements are documented in Bundle Resources > Entitlements.
IMPORTANT When you search for documentation, focus on the Apple documentation. If, for example, you search the Apple Developer Forums, you might be mislead by other folks who are similarly confused.
If you find that you’re mistakenly trying to claim a hallucinated entitlement, the fix is trivial:
Remove it from your .entitlements file so that your app starts to build again.
Then add the capability using Xcode’s Signing & Capabilities editor. This will do the right thing.
If you continue to have problems, feel free to ask for help here on the forums. See the top of this post for advice on how to do that.
[1] Xcode 26.2, currently being seeded as Release Candidate, is much better about this (r. 155327166). Give it a whirl!
Commonly Hallucinated Entitlements
This section lists some of the more commonly hallucinated entitlements:
com.apple.developer.push-notifications — The correct entitlement is aps-environment (com.apple.developer.aps-environment on macOS), documented here. There’s also the remote-notification value in the UIBackgroundModes property.
com.apple.developer.in-app-purchase — There’s no entitlement for in-app purchase. Rather, in-app purchase is available to all apps with an explicit App ID (as opposed to a wildcard App ID).
com.apple.InAppPurchase — Likewise.
com.apple.developer.storekit — Likewise.
com.apple.developer.in-app-purchase.non-consumable — Likewise.
com.apple.developer.in-app-purchase.subscription — Likewise.
com.apple.developer.app-groups — The correct entitlement is com.apple.security.application-groups, documented here. And if you’re working on the Mac, see App Groups: macOS vs iOS: Working Towards Harmony.
com.apple.developer.background-modes — Background modes are controlled by the UIBackgroundModes key in your Info.plist, documented here.
UIBackgroundModes — See the previous point.
com.apple.developer.voip-push-notification — There’s no entitlement for this. VoIP is gated by the voip value in the UIBackgroundModes property.
com.apple.developer.family-controls.user-authorization — The correct entitlement is com.apple.developer.family-controls, documented here.
IMPORTANT As explained in the docs, this entitlement is available to all developers during development but you must request authorisation for distribution.
com.apple.developer.device-activity — The DeviceActivity framework has the same restrictions as Family Controls.
com.apple.developer.managed-settings — If you’re trying to use the ManagedSettings framework, that has the same restrictions as Family Controls. If you’re trying to use the ManagedApp framework, that’s not gated by an entitlement.
com.apple.developer.callkit.call-directory — There’s no entitlement for the Call Directory app extension feature.
com.apple.developer.nearby-interaction — There’s no entitlement for the Nearby interaction framework.
com.apple.developer.secure-enclave — On iOS and its child platforms, there’s no entitlement required to use the Secure Enclave. For macOS specifically, any program that has access to the data protection keychain also has access to the Secure Enclave [1]. See TN3137 On Mac keychain APIs and implementations for more about the data protection keychain.
com.apple.developer.networking.configuration — If you’re trying to configure the Wi-Fi network on iOS, the correct entitlement is com.apple.developer.networking.HotspotConfiguration, documented here.
com.apple.developer.musickit — There is no MusicKit capability. Rather, enable MusicKit via the App Services column in the App ID editor, accessible from Developer > Certificates, Identifiers, and Profiles > Identifiers.
com.apple.mail.extension — Creating an app extension based on the MailKit framework does not require any specific entitlement.
com.apple.security.accessibility — There’s no entitlement that gates access to the Accessibility APIs on macOS. Rather, this is controlled by the user in System Settings > Privacy & Security. Note that sandboxed apps can’t use these APIs. See the Review functionality that is incompatible with App Sandbox section of Protecting user data with App Sandbox.
com.apple.developer.adservices — Using the AdServices framework does not require any specific entitlement.
[1] While technically these are different features, they are closely associated and it turns out that, if you have access to the data protection keychain, you also have access to the SE.
Revision History
2025-12-09 Updated the Xcode footnote to mention the improvements in Xcode 26.2rc.
2025-11-03 Added com.apple.developer.adservices to the common hallucinations list.
2025-10-30 Added com.apple.security.accessibility to the common hallucinations list.
2025-10-22 Added com.apple.mail.extension to the common hallucinations list. Also added two new in-app purchase hallucinations.
2025-09-26 Added com.apple.developer.musickit to the common hallucinations list.
2025-09-22 Added com.apple.developer.storekit to the common hallucinations list.
2025-09-05 Added com.apple.developer.device-activity to the common hallucinations list.
2025-09-02 First posted.
I’m facing an issue with my macOS app after code signing and notarization.
The app is signed with my Developer ID and notarized using xcrun notarytool. Everything works fine on the machine where the signing was done — Gatekeeper accepts it, no warning appears, and codesign/spctl checks pass.
However, when running the same .app on other Macs, users receive a Gatekeeper warning saying the app is "malicious software and cannot be opened". The signature is valid and the notarization log shows status: Accepted.
What I've tried:
Verified signature with codesign --verify --deep --strict --verbose=2
Checked notarization status via xcrun notarytool log
Assessed Gatekeeper trust with spctl --assess --type execute
Everything passes successfully on the development machine.
Why would the app be treated as malicious on other systems even after notarization?
I'm happy to share logs and technical details if needed.
Dear support team,
is it possible to rename a notarized ZIP package and not to loose the notarized status?
One of our ZIP package contains resources and binaries which are code signed. The archive itself is accepted after submitting and uploading during the notarization process (online notarization).
Unfortunately, the ZIP cannot be stapled (offline verification). So, is the filename part of the notarized ZIP package or can a ZIP package be renamed?
Best regards,
Stefan
I've been trying to have an app I've built notarized by Apple. The processing hangs there for hours just waiting.
I even tried with a tiny 1KB test file, it has been stuck for 25+ minutes, and I have 7 real submissions stuck for 24+ hours.
Any Apple representative can help please? I need to publish and release my app asap.
Topic:
Code Signing
SubTopic:
Notarization
I'm trying to add signing certificate from developer.apple.com to my keychain but I'm getting to have error says "An error occurred. Unable to import certificate name. Error -25294". Certificate is valid and I can not do anything with this error. Any idea what can be the reason for this error?
I can create an ipa file with vs using the wildcard bundle identifier but this is rejected by apple when I upload with the Transporter app saying invalid identifier and no distribution profile/certificate. When I create a new distribution profile with the correct XC identifier and distribution certificate and try to archive with visual studio publish says the bundle id is not a match for the distribution profile with iOS? This is a net 10 net maui project and my first build attempt
Hello Apple Developer Forum Community,
I’ve got a problem with the signing process of my AppClip Test App. Can someone help me? As I don’t know hot to get the certificate...
App Notarization got stuck, showing In-Progress from last 24 hrs.
This is really frustrating. Can anyone plz update on this?
Error 7000 "Team is not yet configured for notarization" - Cannot notarize any apps
I'm trying to notarize macOS apps for Developer ID distribution and consistently getting error 7000 on every submission.
Error Details:
{
"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
}
What I've tried:
Completed enrollment verification
Created new App Store Connect API key with Admin access
Created fresh App-Specific Password
Submitted via both API key and App-Specific Password authentication
All submissions are accepted and uploaded successfully, but after processing they're rejected with error 7000
Technical Details:
Active Developer ID Application certificate
Hardened runtime enabled
Apps are properly code-signed (codesign -vvv passes)
Behavior:
Over 15 submissions since December 2nd - ALL rejected with the same error 7000. The submissions upload successfully and show "In Progress" for extended periods (sometimes hours) before eventually being rejected.
Questions:
Has anyone encountered error 7000 and resolved it? What was the fix?
Are there any account settings or agreements required specifically for notarization that aren't obvious in the developer portal?
Should I contact Apple Developer Support directly, or is there a self-service solution?
Any guidance would be greatly appreciated.
I'm experiencing an issue when exporting an Enterprise distribution certificate where the certificate and private key won't export together - the private key keeps getting left out.
I'm running macOS Tahoe. Has anyone encountered the same issue or know of a solution? Any help would be appreciated.
Topic:
Code Signing
SubTopic:
General
Hi,
This is my first time notarizing an app with Developer ID.
I have submitted multiple notarization requests, and all of them have been
stuck in "In Progress" status. The oldest one was submitted over 24 hours ago.
Is this normal for first-time submissions?
How long should I wait before contacting support?
Thanks!
Topic:
Code Signing
SubTopic:
Notarization
Hi
First, I hope I'm in the right place, I'm not certain. I'm having my first attempt at IOS development and want to see the progress I've made on my phone. I plugged it in to my Mac and selected it as a preview device and got the following messages in the Signing & Capabilities screen:
Your team has no devices from which to generate a provisioning profile. Connect a device to use or manually add device IDs in Certificates, Identifiers & Profiles. https://developer.apple.com/account/
No profiles for '...' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '...'.
My account and personal team are shown in the Xcode settings, but it says 0 Provisioned Devices. I also tried restarting, and enabled developer mode on the phone. I checked the provided link, but saw nowhere to add a device ID. Clearly I don't understand what I'm doing. Can anyone help me make sense of this?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles