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
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?
Hi everyone,
I’m developing an Electron application on macOS and I’m trying to register and activate a macOS System Extension, but I’m running into startup and entitlement issues.
🔧 What I’m trying to build
• An Electron app packaged with electron-builder
• Signed with Developer ID Application
• Notarized using @electron/notarize
• A macOS System Extension is already built and signed
• The System Extension provides a virtual camera
• I wrote a Swift helper that:
• Registers / activates the virtual camera
• Calls OSSystemExtensionManager
• This Swift code is compiled into a .node native addon
• The .node module is loaded and called from Electron (Node.js) to trigger system extension registration
❗ The problem
When I add the following entitlement:
com.apple.developer.system-extension.install
the application fails to launch at all on macOS.
Without this entitlement:
• The app launches normally
• But system extension activation fails with:
Error Domain=OSSystemExtensionErrorDomain
Code=2
Missing entitlement com.apple.developer.system-extension.install
With this entitlement:
• The app does not launch
• No UI is shown
• macOS blocks execution silently
🤔 My questions
1. Is it valid for an Electron app’s main executable to have com.apple.developer.system-extension.install?
2. Does Apple require a separate helper / launcher app to install system extensions instead of the Electron main app?
3. Are there any Electron-specific limitations when working with macOS System Extensions?
4. Is there a known working example of Electron + macOS System Extension?
5. Do I need a specific provisioning profile or App ID capability beyond Developer ID + notarization?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
I am trying to notarize a VS-Code Fork Electron based app for non-App store distribution. Its just same for more than 24hrs, it just says processing. Looking for someone who could help me.
Thanks
We package a nightly build of our application for distribution. About 1 month ago, this package has started showing the "Apple could not verify 'Application' is free of malware" message.
This only happens to our development branch package. We run the same pipeline with the same signature for our stable branch and the stable package does not show this message.
$ codesign -dv --verbose=4 KiCad.app
Executable=/Applications/KiCad/KiCad/KiCad.app/Contents/MacOS/kicad
Identifier=org.kicad.kicad
Format=app bundle with Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=51931 flags=0x10000(runtime) hashes=1612+7 location=embedded
VersionPlatform=1
VersionMin=722432
VersionSDK=983552
Hash type=sha256 size=32
CandidateCDHash sha256=4f15435c1d3cc056a83432b78a2f6acae8fb0e6d
CandidateCDHashFull sha256=4f15435c1d3cc056a83432b78a2f6acae8fb0e6d03cbe70641719fd1ced3395b
Hash choices=sha256
CMSDigest=4f15435c1d3cc056a83432b78a2f6acae8fb0e6d03cbe70641719fd1ced3395b
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=3915776
Executable Segment flags=0x1
Page size=4096
CDHash=4f15435c1d3cc056a83432b78a2f6acae8fb0e6d
Signature size=9002
Authority=Developer ID Application: KiCad Services Corporation (9FQDHNY6U2)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Dec 19, 2025 at 5:21:05 AM
Info.plist entries=17
TeamIdentifier=9FQDHNY6U2
Runtime Version=15.2.0
Sealed Resources version=2 rules=13 files=37238
Internal requirements count=1 size=176
codesign --verify --verbose=4 KiCad.app
<snipped all libs validated>
KiCad.app: valid on disk
KiCad.app: satisfies its Designated Requirement
% spctl --assess --verbose=4 KiCad.app
KiCad.app: accepted
source=Notarized Developer ID
We distribute this via dmg. The notarization ticket is stapled to the dmg and the dmg opens without warning.
Any help would be appreciated
Topic:
Code Signing
SubTopic:
Notarization
As mentioned in the linked post, I can archive the project locally but not via Xcode Cloud. I have also created a new project, but the same thing happens here.
https://developer.apple.com/forums/thread/746210
Error Code:
ITMS-90035: Invalid Signature. Code failed to satisfy specified code requirement(s). The file at path “{AppName}.app/{AppName}” is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/support/code-signing.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Hello,
We're developing endpoint security software using the Endpoint Security framework, and we've encountered challenges with the behavior change in macOS 15 regarding provisioning UDIDs in cloned VMs.
The Change
Prior to macOS 15, cloning a VM preserved its UDID (format: 0000FE00-9C4ED9F68BBDC72D). Starting with macOS 15, cloned VMs receive a new UDID generated from the host's Secure Enclave (format: b043d27202c7ac37ca3c6b82673302225485cae9), making each clone effectively a new device.
Our Workflow
We maintain a clean base VM image and clone it for each test run. We add the base VM's UDID to our provisioning profile once, then create clones which (previously) retained that same UDID, allowing us to start new testing cycles without re-registering devices.
This is essential because our product involves low-level system integration through the Endpoint Security framework, and if something goes wrong during development, it has the potential to affect system stability. To prevent any cascading issues between test runs or different product versions, we need each test to start from a known clean state rather than reusing the same VM.
The Challenge
With each VM clone generating a new UDID, we're hitting Apple's device registration limits quickly. This particularly impacts:
New team members who spin up VMs for the first time and can't run signed builds
Our CI/CD pipeline where multiple test environments need provisioning profiles
Developers testing different branches who need separate clean environments
Current Workaround
We've found that VMs created on macOS 14 and upgraded to macOS 15+ retain their original UDID format. However, we're concerned this workaround may stop working in future macOS versions, which would leave us without a viable path forward.
If the workaround stops working, our fallback would be signing each CI build with a Developer ID signature to allow running on any device. However, we'd prefer to avoid this as it would significantly increase load on Apple's signing infrastructure for what are essentially internal test builds.
We completely understand the security reasoning behind tying UDIDs to the host's Secure Enclave for Apple Account support. However, for development workflows that don't require Apple Account features in VMs but do require clean, isolated test environments, the previous behavior was quite valuable.
Question
Is there a recommended approach for teams in our situation? We're happy to explore alternative workflows if there's a pattern we're missing, or we'd be glad to provide more context if this is a use case Apple is considering for future updates.
Thanks for any guidance you can provide!
Feedback case: FB21389730
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
macOS
Provisioning Profiles
Code Signing
Virtualization
Hey Apple Friends,
We currently have an enterprise version of our app for debugging and internal distribution. Our release configuration uses our App Store account.
However, it appears you cannot add a 'Declared Age Range' to the Enterprise app as a capability making it impossible to debug because we have added the 'Declared Age Range API' locally, but we cannot add it as a capability on the dev portal.
Is there any work around for this?
How should certificates and notarization be configured for a desktop application developed with Electron so that it can be used properly? The software is distributed via website download.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Hello, I sent this in as a feedback several weeks ago about watchOS 26.2 beta 2 but since the issue is still active now that watchOS 26.2 is in production I'm reposting here for the community. I would also like to submit a DTS about this issue but honestly don't know the best way to go about it and would appreciate advice about that.
There seems to be an issue with VPP distribution for our app on watchOS 26.2. When our watchOS companion app is launched after being installed through VPP to a supervised iPhone, it encounters a dyld error before main() or any application code is even called. The same app launches correctly in every other circumstance we could imagine and test:
– Installed through VPP on supervised devices running watchOS 26.1.
– Installed from the app store (using an apple id) on a supervised iPhone and paired watch running iOS 26.2 / watchOS 26.2.
– Installed through Testflight on a supervised iPhone and paired watch running iOS 26.2 / watchOS 26.2.
– Installed through the app store on unsupervised devices running watchOS 26.1 and 26.2.
This strongly appears to be a VPP signing issue because we even did the following experiment:
Install iPhone and Watch apps through the App Store on a supervised device pair running public iOS 26.2 beta 2 / watchOS 26.2 beta 2.
Verify that both apps launch successfully.
Use an MDM command to install from VPP over the existing installations
Verify that the watch app fails to launch (the iOS app is unaffected)
My feedback included some crash logs which I won't be reposting publicly here. Any feedback or ideas appreciated.
I'm developing an app that receives push notifications, and writes the contents of the push notification to a shared location between the main app and a Notifications Message Extension, through App Groups. This all seems to work on my phone, with developer mode turned on, but when I archive my app as an Enterprise IPA and distribute it, the users can install the app on their phones and they receive the push notifications, but it doesn't appear that the message extension is running as my app displays the content of the shared data in the App Groups on the main screen and nothing is showing. I have tried on 3 phones, and it only works on the phone with developer mode turned on. I can't tell at this point whether it's because of a signing issue, or build phase order issue, or something else?
I want to be able to retrieve payment form wallet, I've used the PKPassLibrary but it hasn't worked
Topic:
Code Signing
SubTopic:
General
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?
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.
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'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?
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.
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
}
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 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...