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
Hey all,
I’m experiencing a consistent issue with notarizing a signed .pkg file that contains a macOS screen saver (.saver) bundle.
Nothing online so far except 1 thread on the form from the altool time pre-2023 so i thought it worth another update.
Here is what I did:
I signed the .saver bundle using my Developer ID Application certificate.
I packaged it into a .pkg using pkgbuild with my Developer ID Installer certificate:
I submitted the resulting .pkg via xcrun notarytool:
xcrun notarytool submit saver-name.pkg --apple-id email@email.com --password [app-specific-password] --team-id xxxxxxxxx
The submission appears to be accepted and uploads successfully.
However, the notarization status remains stuck at “In Progress” for hours (over 12h), with no update.
I also tried:
Repackaging the .pkg with a new name
using a zip
Resubmitting it under a new submission ID
All attempts are stuck in the same “In Progress” state indefinitely.
Did anyone solve this yet?
Hello everyone,
I’m trying to notarize my macOS app (DockIt.zip) using the new notarytool CLI, but every submission remains in In Progress status forever, it never moves to Accepted or Rejected. I’ve tried multiple rebuilds, credential resets, and even the Xcode GUI method, but the result is the same.
Environment
• macOS 14.x
• Xcode 15.x / Command-Line Tools 15.x
• Apple ID: afonsocruz.dev@icloud.com (Team ID: 264Z9XKCT6)
• Keychain profile: DockItCreds
Steps taken
1. zip -r DockIt.zip DockIt.app
2. xcrun notarytool store-credentials DockItCreds --apple-id ... --team-id 264Z9XKCT6
3. xcrun notarytool submit DockIt.zip --keychain-profile DockItCreds --wait
4. xcrun notarytool history --keychain-profile DockItCreds
History snapshot
167a9600-5c7c-4bc4-b984-dd967d30e161 (2025-05-19T11:37:59Z) – In Progress
7167f7c8-d448-4b35-9817-055009f2730a (2025-05-19T04:59:34Z) – In Progress
6ef0610a-595f-4c57-b0f2-f5fe783e8679 (2025-05-18T22:04:10Z) – In Progress
bddde388-a34a-42c4-afb8-f06f2b0fe8fa (2025-05-17T10:24:07Z) – In Progress
Questions
Is it normal to stay “In Progress” for so long?
Any recent service changes or outages?
How can I get more detailed logs?
Also, I'm still learning about macOS development and these steps! If there's something obvious and I was not able to see, please, take into consideration!
Thanks!
Topic:
Code Signing
SubTopic:
Notarization
We are using SHC to compile on macOS to convert the .sh script to a binary file. This binary file is then digitally signed by the Apple developer account and then notarised. After that, it will work on the same system where we follow this process. But if we share this file to another system, then it gets quarantined (com.apple.quarantine) while downloading.
Is there any way to prevent it by getting quarantine on another system or something I'm missing, any clues?
Hello all,
I am attempting to notarize my newly made Mac OS application using the notarization command in VS Code.
"/Users/teejgotit/Desktop/Cursor Workspace/Rust CutContour v2/cutcontour-app/src-tauri/target/release/bundle/dmg/CC Studio_0.1.0_aarch64.dmg" \
--key "/Users/teejgotit/AppleCerts/AuthKey_MATVLX3.p8" \
--key-id "MATVLX9" \
--issuer "887ba428-aa39-4fb3-a3dc-f83b9145cab0" \
--wait
Only to be met with a continual "Current State: In Progress.."
for what has been about 1 day and 16 hours now.
Current status: In Progress........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
My app and project are rather small and was curious if this is a normal thing for this to day takes for a first time notarization?
Would love any help or feedback.
Successfully received submission history.
history
......
--------------------------------------------------
createdDate: 2025-10-19T18:34:47.472Z
id: d3248896-7841-421e-9470-101df9d0da21
name: ...
status: In Progress
--------------------------------------------------
createdDate: 2025-10-19T18:12:45.325Z
id: e5822fa0-5bcf-4610-81fc-9f541e8ad189
name: ...
status: In Progress
I am trying to build/deploy app to my phone however I get this message:
"provisioning profile doesn't include the currently selected device"
My developer account is pretty old one and used to be one the paid-version one. My understanding is that I should be able to deploy apps using free account but I don't see where I can add or delete devices....stuck in the loop over here! :-)
I've created support request via email but I don't know if that is being worked or not...four days since I put it in. I suppose my other options are new apple-id or pay $99 and hope apple pays attention then?
Any other suggestions?
Hi everyone,
I'm following up on this post I made earlier about an issue I'm having with FamilyControls and the DeviceActivityMonitor extension not working for external TestFlight testers.
To briefly recap:
I have official Apple approval for the com.apple.developer.family-controls entitlement (distribution)
The entitlement is added to both my main app and the DeviceActivityMonitor extension
The App Group is correctly configured for both targets
On internal TestFlight builds, everything works as expected: app blocking works, the extension runs, and selected apps are shielded.
On external TestFlight builds, users get the Screen Time permission prompt, can select apps to block, but nothing is blocked.
Since that post, I submitted a Code Level Support request, and Apple asked me to file a bug report via Feedback Assistant. I did that almost a month ago.
The only reply I’ve received since is that they can’t give a timeframe or guarantee it will be resolved. I'm stuck in limbo with no updates and no fix.
This feature is critical to my app and I cannot launch without it. I’ve reached out to other developers who use app blocking, and none of them have run into this issue. My setup seems correct, and Apple has not said otherwise.
If anyone has experienced something similar, found a workaround, or knows how to get real movement on a bug report like this, I would really appreciate any help. It’s been weeks, and I just want to launch my app.
Thanks so much.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
TestFlight
Family Controls
Device Activity
In Xcode, under Signing & Capabilities (Release) for our bundle ID
the selected provisioning profile does include the entitlement:
com.apple.developer.payment-pass-provisioning
However, when we upload a new build to TestFlight, the Build Metadata →
Entitlements section for the same bundle ID does not include
com.apple.developer.payment-pass-provisioning.
Because of this, PKAddPaymentPassViewController does not open in TestFlight
builds.
This suggests that while the entitlement is enabled for the App ID and
visible in Xcode, it may not yet be propagated to App Store Connect’s
signing service for TestFlight/App Store builds.
Please Note: The Wallet Entitlements team had confirmed
that they had granted entitlements for our team and the apple IDs
Xcode : 26.0.1
Profile being used: Distribution Profile
Topic:
Code Signing
SubTopic:
Entitlements
Tags:
Wallet
Entitlements
Provisioning Profiles
TestFlight
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
Hi,
I am developing a iOS app with Packet Tunnel Provider Network Extension. I manage signing manually. I created a distribution provisioning profile. Then when I archive and click "validate" I get this error:
Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'url-filter-provider' for key 'com.apple.developer.networking.networkextension'
So I run security cms -D -i profiles/vpn_distribution.mobileprovision and I see there
<key>Entitlements</key>
<dict>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider</string>
<string>content-filter-provider</string>
<string>packet-tunnel-provider</string>
<string>dns-proxy</string>
<string>dns-settings</string>
<string>relay</string>
<string>url-filter-provider</string>
<string>hotspot-provider</string>
</array>
Where are those coming from. My entitlement file has
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>packet-tunnel-provider</string>
</array>
<key>com.apple.security.application-groups</key>
<array>
<string>group.my-app-group</string>
</array>
</dict>
</plist>
What is happening here. How can I get a provisioning profile that only has the entitlements that I actually need?
Hey, when I try to launch my app it prompts me with a "Apple could not verify" popup. The thing is the app has been signed and stapled.
xcrun stapler validate .app for my app returns "The validate action worked!"
If I also run syspolicy_check distribution .app it returns: "App passed all pre-distribution checks and is ready for distribution"
Any idea?
I am developing and distributing an XCFramework, and I want to ensure that it remains valid for as long as possible. I have some questions regarding certificate expiration and revocation:
I understand that if an XCFramework is signed with a timestamp, it remains valid even after the signing certificate expires.
However, if the signing certificate is revoked, the XCFramework immediately becomes unusable.
As far as I know, Apple allows a maximum of two active distribution certificates at the same time.
I assume that once a certificate expires, it will eventually need to be revoked in order to issue a third certificate. Is this correct?
If an expired certificate is later revoked, will the XCFrameworks signed with that certificate also become invalid, even though they were timestamped?
I want to ensure that released XCFrameworks remain valid for as long as possible. What is the best approach to achieve this?
If anyone has insights or official documentation references on how to manage signing certificates for long-term XCFramework validity, I would appreciate your guidance.
Thank you!
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Frameworks
Signing Certificates
Code Signing
Hi everyone,
After I recently changed my Apple ID (iCloud) password, my Developer ID certificate stopped working for signing macOS apps.
Symptoms:
Signing fails with the Developer ID certificate that was previously working fine.
I tried re-downloading the certificate from my Apple Developer account and importing it into the Keychain, but the issue persists.
It seems that the Developer ID identity is no longer trusted or properly linked to my system since the password change.
Attempts:
Re-downloaded and installed the certificate from the developer portal.
Verified that the private key is present and linked.
Checked keychain access and code-signing identity — everything appears normal, but the signed apps are rejected or the signing process fails.
Blocking issue:
I am unable to delete or revoke the Developer ID certificate on my account (Apple Support says it's not possible).
Also, I can't create a new one due to the certificate limit.
Questions:
Is it expected for a Developer ID certificate to become invalid after changing the Apple ID password?
Is there a recommended way to refresh or restore the certificate trust on macOS?
How can I invalidate the current certificate and generate a new one if I'm stuck?
Any insights or official guidance would be really appreciated.
Thanks in advance!
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Signing Certificates
Code Signing
Developer ID
Hi everyone. Sorry if this is not an appropriate forum section for this question. I'm making a game engine and it doesn't launch on my colleague's MacBook, although it does launch on mine.
There's an application file, let's say, Sample.app. And along with it in the same folder there's Engine.dylib. If we look at the app-file structure, the executable file's path is Contents/MacOS/Sample. So for the executable file the library is located at the path ../../../Engine.dylib. But when my colleague runs the Sample.app file, he gets an error "Library not loaded: @executable_path/../../../Engine.dylib". Although the path is correct and on my MacBook it works. Are there any ideas how to fix it?
Topic:
Code Signing
SubTopic:
General
we have organization account
I'm the admin of team. and i have additional resources:
Additional Resources
Access to Reports
Access to Certificates, Identifiers & Profiles.
Access to Cloud Managed Distribution Certificate
Create Apps
Generate Individual API Keys
Issues:
i can't find my team certificate in Xcode
I don't have access to https://developer.apple.com/account/resources/
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
I have a pass type id that expired.
I created a CSR in keychain access on my Mac.
I uploaded the CSR and generated a new cert.
I downloaded the new cert and imported into keychain access.
I don't see the associated private key and I cannot export a .p12 certificate.
It's possible I started with the wrong key to generate the CSR or maybe I inadvertently deleted key while trying to locate the cert after importing. I'm not sure how to determine which.
I do still have the private key from the cert that expired. But, I cannot figure out how to sign a cert again, my only option now is download.
I've been searching the forum and while there may be an answer, I may just be looking for the wrong thing.
I could use some help if anybody would be so kind.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
APNS
Signing Certificates
Wallet
IMPORTANT The underlying issue here (FB8830007) was fixed in macOS 11.3, so the advice in this post is irrelevant if you’re building on that release or later.
Note This content is a repost of info from another thread because that thread is not world readable (it’s tied to the DTK programme).
A number of folks have reported problems where:
They have a product that supports older versions of macOS (anything prior to 10.11).
If they build their product on Intel, everything works.
If they build their product on Apple Silicon, it fails on those older versions of macOS.
A developer filed a bug about this (FB8830007) and, based on the diagnosis of that bug, I have some info to share as to what’s going wrong and how you can prevent it. Let’s start with some background.
macOS’s code signing architecture supports two different hash formats:
sha1, the original hash format, which is now deprecated
sha256, the new format, support for which was added in macOS 10.11
codesign should choose the signing format based on the deployment target:
If your deployment target is 10.11 or later, you get sha256.
If your deployment target is earlier, you get both sha1 and sha256.
This problem crops up because, when building for both Intel and Apple Silicon, your deployment targets are different. You might set the deployment target to 10.9 but, on Apple Silicon, that’s raised to the minimum Apple Silicon system, 11.0. So, which deployment target does it choose?
Well, the full answer to that is complex but the executive summary is that it chooses the deployment target of the current architecture, that is, Intel if you’re building on Intel and Apple Silicon if you’re building on Apple Silicon. For example:
intel% codesign -d --arch x86_64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
intel% codesign -d --arch arm64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
arm% codesign -d --arch x86_64 -vvv Test664892.app
…
Hash choices=sha256
…
arm% codesign -d --arch arm64 -vvv Test664892.app
…
Hash choices=sha256
…
The upshot is that you have problems if your deployment target is less than 10.11 and you sign on Apple Silicon. When you run on, say, macOS 10.10, the system looks for a sha1 hash, doesn’t find it, and complains.
The workaround is to supply the --digest-algorithm=sha1,sha256, which overrides the hash choice logic in codesign and causes it to include both hashes:
arm% codesign -s - --digest-algorithm=sha1,sha256 Test664892.app
arm% codesign -d --arch x86_64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
% codesign -d --arch arm64 -vvv Test664892.app
…
Hash choices=sha1,sha256
…
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
My app records the screen to use the audio for audio analysis for a music visualization. The app works perfectly in production but when uploaded to Transporter is rejected as below. What is the correct entitlement to use as the entitlement I am using seems deprecated.
Validation failed (409)
Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on macOS. Specifically, key 'com.apple.security.screen-capture' in 'com.boxedpandora.pulse.pkg/Payload/PuLsE.app/Contents/MacOS/PuLsE' is not supported. (ID: a1a436f5-925d-43bc-908d-0761064d589b)
Many thanks for any input provided!
Hi All,
Really weird one here...
I have two bundle ids with the same reverse dns name...
com.company.app1
com.company.app2
app1 was installed on the device a year ago.
app2 was also installed on the device a year ago but I released a new updated version and pushed it to the device via Microsoft InTunes.
A year ago the vendor Id's matched as the bundle id's were on the same domain of com.company.
Now for some reason the new build of app2 or any new app I build isn't being recognised as on the same domain as app1 even though the bundle id should make it so and so the Vendor Id's do not match and it is causing me major problems as I rely on the Vendor Id to exchange data between the apps on a certain device.
In an enterprise environment, does anyone know of any other reason or things that could affect the Vendor Id?
According to Apple docs, it seems that only the bundle name affects the vendor id but it isn't following those rules in this instance.
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.