On MacOS, I know that App Groups (com.apple.security.application-groups) do not require a provisioning profile.
I was wondering if it's possible to sign them "ad hoc" and have it work? So maybe use a random TEAMID prefix and have it work?
I would only need the app to work locally (for testing), not be distributed in that fashion, of course.
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
I'm working on a build system similar to Bazel where each build action runs in a sandbox. The sandbox contains only the files that the user defined as input to ensure that the build action doesn't have any implicit dependencies. Bazel achieves this by creating a "symlink forest" to the original source files. This works, but I have observed fseventsd using significant CPU during a Bazel build, presumably because of all the symlinks that get created.
Is there a way to disable file events for a directory or a volume? The "File System Events Programming Guide" in the Documentation Archive mentions placing an empty file named no_log in the .fseventsd directory at the root of the volume, but when testing on macOS 15.5 with APFS that appears to no longer work.
Related, is a "symlink forest" the best way to create a sandbox like this? Or is there a different method one can use to provide a view of a subset of the files in a directory tree? I read up on the App Sandbox but that seems too coarse grained. Something like Linux's overlayfs would work well, and maybe one can achieve a similar functionality with firmlinks? Curious about folks thoughts here.
Thanks in advance!
My app designer cannot sign his code changes. He says the only way he can sign his code is for me to give him my Admin privileges. I have revoked and recreated my certificate, hoping to get a private passkey, but there was no private passkey issued with the certificate. Help, please?
Topic:
Code Signing
SubTopic:
General
Can someone tell me the applications requirements for using the secure enclave on MacOS? Does the application need to be signed with the secure-enclave entitlement in order to use it? Since this is a restricted entitlement, does my App ID need approval to use it from Apple?
Currently I'm building in XCode 16 on Sequoia (15.5) using developer signing. My application is a C/C++ daemon running as plist out of /Library/LaunchDaemons. I have also built it as an application using the instructions here but this has not lead to a solution:
https://developer.apple.com/documentation/xcode/signing-a-daemon-with-a-restricted-entitlement/
When I run my application from the command line via sudo signed but without the secure-enclave entitlement enabled in my entitlements file it runs. The first call to:
SecAccessControlRef access = SecAccessControlCreateWithFlags(
kCFAllocatorDefault,
kSecAttrAccessibleWhenUnlockedThisDeviceOnly,
kSecAccessControlPrivateKeyUsage,
&error);
succeeds without error. The call to create the key using:
SecKeyRef privateKey = SecKeyCreateRandomKey(attributes, &error);
then fails with error:
(OSStatus error -50 - Failed to generate keypair)
Here are the setup attributes (keySize = 256):
CFDictionarySetValue(attributes, kSecAttrKeyType, kSecAttrKeyTypeECSECPrimeRandom);
CFDictionarySetValue(attributes, kSecAttrKeySizeInBits, keySize);
CFDictionarySetValue(attributes, kSecAttrLabel, keyName);
CFDictionarySetValue(attributes, kSecAttrApplicationTag, keyLabel);
CFDictionarySetValue(attributes, kSecAttrTokenID, kSecAttrTokenIDSecureEnclave); // Store in the Secure Enclave
CFDictionarySetValue(attributes, kSecAttrKeyClass, kSecAttrKeyClassPrivate);
CFDictionarySetValue(attributes, kSecAttrAccessControl, access);
CFDictionarySetValue(attributes, kSecAttrIsPermanent, kCFBooleanTrue); // persist key across app restarts and reboots
CFDictionarySetValue(attributes, kSecAttrCanEncrypt, kCFBooleanTrue);
CFDictionarySetValue(attributes, kSecAttrCanDecrypt, kCFBooleanTrue);
CFDictionarySetValue(attributes, kSecAttrAccessible, kSecAttrAccessibleWhenUnlockedThisDeviceOnly);
CFDictionarySetValue(attributes, kSecReturnPersistentRef, kCFBooleanTrue);
When I run the application signed and include the "com.apple.developer.secure-enclave" in my entitlements file it crashes at startup. I believe this is to be expected based on above.
How do I proceed such that my application can use the secure enclave correctly?
Topic:
Code Signing
SubTopic:
Entitlements
Can someone please describe what is necessary to perform signing using codesign in a system that runs as LaunchDaemon.
All workarounds like placing the codesigning cert + private key a custom keychain and unlock it in the session of the LaunchDaemon doesn't work anymore on Sequoia.
Or are there alternatives for signing MachO binaries without codesign?
Topic:
Code Signing
SubTopic:
General
Once I have built my macOS .app and signed it I run notarytool using this simple shell script:
#!/bin/sh
ditto -c -k --keepParent "$1.app" "$1.zip"
xcrun notarytool submit "$1.zip" --keychain-profile "Notary Profile for DeepSkyStacker" --wait
xcrun stapler staple $1.app
rm -f $1.zip
How can I export that "keychain-profile" (notary profile) so I can use it in CI/CD actions? Clearly I don't wish to expose the full invocation of xcrun notarytool store-credentials.
Topic:
Code Signing
SubTopic:
Notarization
Hi,
I got the error:
/usr/bin/codesign exited with code 1:
Warning: unable to build chain to self-signed root for signer "Apple Distribution: Q.A.C.F. - Quality Academy Consultoria E Formacao, Unipessoal, Lda (xxxxxx)"
/Users/pedroramalho/Library/Caches/Xamarin/mtbs/builds/drBoxSaude.iOS/3bed3d51415af2e100a4d2bc57e1d36fb42d76ceb190de1db1c4d0dbccbff863/bin/iPhone/Release/drBoxSaude.iOS.app: errSecInternalComponent
and
/usr/bin/codesign exited with code 1:
/Users/pedroramalho/Library/Caches/Xamarin/mtbs/builds/drBoxSaude.iOS/3bed3d51415af2e100a4d2bc57e1d36fb42d76ceb190de1db1c4d0dbccbff863/bin/iPhone/Release/drBoxSaude.iOS.app/Frameworks/libSkiaSharp.framework: replacing existing signature
Warning: unable to build chain to self-signed root for signer "Apple Distribution: Q.A.C.F. - Quality Academy Consultoria E Formacao, Unipessoal, Lda (xxxxx)"
/Users/pedroramalho/Library/Caches/Xamarin/mtbs/builds/drBoxSaude.iOS/3bed3d51415af2e100a4d2bc57e1d36fb42d76ceb190de1db1c4d0dbccbff863/bin/iPhone/Release/drBoxSaude.iOS.app/Frameworks/libSkiaSharp.framework: errSecInternalComponent
Some one can help please
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Sign in with Apple
Signing Certificates
In the past it was relatively easy to download from the developer portal both the app signing and installer signing certs so that I could sign AppleScripts from Script Editor when exporting them and when building packages in Jamf Composer.
I went to set that up today and it seems things have changed in the last few years since I've had to set this up. I've been unable to sort this out and would love some help.
I'm looking for a tutorial on doing this that walks someone step-by-step through the process for obtaining the certs (yes, I have dev account) and setting them up in keychain and then making use of them.
Thanks!
I have tried again and again to generate and install the .mobileprovision on my device for testing apps following the exact instructions. I cannot get this to work. When I tap the .mobileprovision on the device I get the error "Profile Error - This profile cannot be installed."
In Xcode in the console as I try to install the profile, this is what it shows:
`profiled (ManagedConfiguration)
Desc : Invalid Profile
US Desc: Invalid Profile
Domain : MCProfileErrorDomain
Code : 1000
Type : MCFatalError
and then
profiled
Desc : Invalid Profile
Sugg : Invalid Profile
US Desc: Invalid Profile
US Sugg: Invalid Profile
Domain : MCInstallationErrorDomain
Code : 4000
Type : MCFatalError
...Underlying error:
NSError:
Desc : Invalid Profile
US Desc: Invalid Profile
Domain : MCProfileErrorDomain
Code : 1000
Type : MCFatalError
I have been at this for days and cannot get it to work. Any help would be appreciated
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
I have been trying to notarize my application for about a month via this command -
xcrun notarytool submit "Backlsh.zip" --apple-id "" --password "" --team-id ""
but it throws error -
{
"logFormatVersion": 1,
"jobId": "c8173ee6-edd2-4c51-a86b-8f3b8dea0a84",
"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": "Backlsh.zip",
"uploadDate": "2025-03-06T05:33:56.287Z",
"sha256": "b45e579f0c47070b55d74ac49e49c81d32f2315bd290ca5592f71f314018c44d",
"ticketContents": null,
"issues": null
}
I have raised ticket to apple support but i havent received any help yet !
I have tried to submit 5 times.
Kindly help !
Hello Apple Developer Support,
We are experiencing an issue when programmatically installing a trusted root certificate on EC2 macOS instances (ARM-based), running the latest version of macOS 14.7.5 (Build 23H527).
We are using the following command as part of our automated setup process:
sudo security authorizationdb write com.apple.trust-settings.admin allow
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "$CERT_NAME"
sudo security authorizationdb remove com.apple.trust-settings.admin
This fails with the following message:
SecTrustSettingsSetTrustSettings: The authorization was denied since no user interaction was possible
In the past, as sugested in other posts (https://developer.apple.com/forums/thread/671582) we were able to bypass this issue by running:
sudo security authorizationdb write com.apple.trust-settings.admin allow
This worked successfully in prior versions, including earlier 14.x releases, and continues to work on Intel-based macOS instances.
However, in macOS 14.7.5 (on ARM), this approach no longer works.
We suspect this may be due to a change in how System Integrity Protection (SIP) is enforced, especially on EC2 ARM.
Questions:
Has Apple introduced any changes in macOS 14.7.5 that prevent modifying trust settings via security CLI on headless or non-interactive sessions?
Is there an approved or documented way to install system-level trusted certificates programmatically on macOS 14.7.5 (ARM)?
Are there alternatives for setting trustRoot certs in non-GUI environments, such as virtualized or cloud-hosted macOS instances?
As further information we were thinking to use MDM Profiles but looks like it is also blocked
Thanks
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Hello,
I’m facing an issue with enabling In-App Purchases (IAP) for my iOS app, and it’s causing provisioning errors during the build process.
Issue:
• In Apple Developer Portal → Certificates, Identifiers & Profiles, the In-App Purchase capability is checked but grayed out, so I can’t modify it.
• In Xcode, under Signing & Capabilities, I don’t see In-App Purchase listed.
• When trying to build, I get the following error:
Provisioning profile “BillionMines_Dev_Profile” doesn’t include the com.apple.developer.in-app-purchase entitlement.
• Automatic signing in Xcode fails with:
Xcode failed to provision this target.
What I Have Tried:
1. Verified that my App ID is explicitly defined (not a wildcard ID).
2. Regenerated and downloaded a new Provisioning Profile, ensuring it matches my app.
3. Confirmed that In-App Purchase is enabled in App Store Connect under Features.
4. Cleaned the build folder and restarted Xcode.
5. Manually added com.apple.developer.in-app-purchase to my .entitlements file.
Questions:
• Why is the In-App Purchase option grayed out in Certificates, Identifiers & Profiles?
• How can I ensure my provisioning profile includes the com.apple.developer.in-app-purchase entitlement?
• Are there additional steps required to fully activate In-App Purchases?
Any help would be greatly appreciated!
Thanks in advance.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Bundle ID
In-App Purchase
Provisioning Profiles
Hello everyone.
I have a simple doubt, I receive an email informing that the Apple Distribution certificate will expire.
I create one new in the Developer portal with one year duration.
My doubt is, I need to do something more like open again the app in Xcode, insert new certificate and build it again, send to apple and everything?
Or just creating this certification is enough?
Is possible to increase this certification time or auto renew?
Thank you!!!
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
In XCode I create and export a notarized app for "direct distribution". I then create a tar file of the exported .app to distribute to my users. Until today this worked fine. Now when the users try to run the app it pops up a dialog saying "app is damaged and can't be opened. You should move it to the Trash." It is possible to ctrl-click on the app and force it to run but, I think, whether this works or not will depend on system settings and not all users have root access to modify settings. Even simply copying the .app folder from the command line will cause this error.
Hi,
I'm doing Java 22 experiments with open source package "wgpu-macos-aarch64-release" on my Mac M3.
This library contains a .dylib file and a .a file.
In Java you can load native dynamic libraries using JNI. I used that in the past. Now in MacOS 15 this stopped working.
Currently, I compile my Java file and run the binary file on the command line, including the library directory. The application would load the library from that directory. This should normally works but the library is not loaded.
After some investigation it seems the .dylib is rejected by MacOS.
Calling
spctl --assess --verbose=4 libwgpu_native.dylib
gives
libwgpu_native.dylib: rejected
without any extra reason message.
Using
sudo xattr -rd com.apple.quarantine libwgpu_native.dylib
doesn't solve the problem.
I also can't "accept" it in "Privacy & Security" because it's run as a command line call.
I know that code signing should be done for "complete" applications. But these are just experiments and working with single dynamic libraries.
How should this be done, to be able to load those libraries in a Java command line program? Or in general, how can you load an unsigned dylib in an application (apart from using Java as a tool).
Kr,
J
Topic:
Code Signing
SubTopic:
General
Hello,
I already have got approval from Apple for com.apple.developer.family-controls entitlement
When I am building my app, there is one part where I need to check the list of applications which I have blocked with my app.
To get the list I have to have com.apple.developer.managed-settings entitlement ...
Now how and where show I get hold of it ?
I already got permission for Family Control, how do I get hold of this now ?
Hello
I have a qt, CMAKE app, non-xcode one till xcode start supporting cmake.
I have 3 apps, 2 basic ones and 1 very complex ones.
My complex one build/links/notarises/validates/deploys beautifly. I have tear in my eye when I see it build.
The other 2 apps explode and torment me for past 5 days. The build proves is 99% the same, the only thing that a little changes are info.plist and app name+ some minor changes.
Its absolutely bananas and I can't fix it, I'm running out of ideas so if any1 could sugged anything, I'll buy & ship you a beer.
Anyway, errors:
Log: Using otool:
Log: inspecting "/Users/dariusz/Qt/6.9.1/macos/lib/QtCore.framework/Versions/A/QtCore"
Log: Could not parse otool output line: "/Users/dariusz/Qt/6.9.1/macos/lib/QtCore.framework/Versions/A/QtCore (architecture arm64):"
Log: Adding framework:
Log: Framework name "QtCore.framework"
Framework directory "/Users/dariusz/Qt/6.9.1/macos/lib/"
Framework path "/Users/dariusz/Qt/6.9.1/macos/lib/QtCore.framework"
Binary directory "Versions/A"
Binary name "QtCore"
Binary path "/Versions/A/QtCore"
Version "A"
Install name "@rpath/QtCore.framework/Versions/A/QtCore"
Deployed install name "@rpath/QtCore.framework/Versions/A/QtCore"
Source file Path "/Users/dariusz/Qt/6.9.1/macos/lib/QtCore.framework/Versions/A/QtCore"
Framework Destination Directory (relative to bundle) "Contents/Frameworks/QtCore.framework"
Binary Destination Directory (relative to bundle) "Contents/Frameworks/QtCore.framework/Versions/A"
Log: copied: "/Users/dariusz/Qt/6.9.1/macos/lib/QtWebSockets.framework/Versions/A/QtWebSockets"
Log: to "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/Versions/A/QtWebSockets"
Log: copy: "/Users/dariusz/Qt/6.9.1/macos/lib/QtWebSockets.framework/Resources" "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/Versions/A/Resources"
Log: copied: "/Users/dariusz/Qt/6.9.1/macos/lib/QtWebSockets.framework/Resources/Info.plist"
Log: to "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/Versions/A/Resources/Info.plist"
Log: copied: "/Users/dariusz/Qt/6.9.1/macos/lib/QtWebSockets.framework/Resources/PrivacyInfo.xcprivacy"
Log: to "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/Versions/A/Resources/PrivacyInfo.xcprivacy"
Log: symlink "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/QtWebSockets"
Log: points to "Versions/Current/QtWebSockets"
Log: symlink "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/Resources"
Log: points to "Versions/Current/Resources"
Log: symlink "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/Frameworks/QtWebSockets.framework/Versions/Current"
Log: points to "A"
Log: Using install_name_tool:
Log: in "/AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/MacOS/Agameri_Toolbox"
Log: change reference "@rpath/QtWebSockets.framework/Versions/A/QtWebSockets"
Log: to "@rpath/QtWebSockets.framework/Versions/A/QtWebSockets"
ERROR: "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: fatal error: file not in an order that can be processed (link edit information does not fill the __LINKEDIT segment): /AppBuild/Agameri_Toolbox/Agameri_Toolbox.app/Contents/MacOS/Agameri_Toolbox\n"
ERROR: ""
Even tho I get that error, it will "Notarize" and "greenlight by gatekeeper.
So my automatic build app if he sees error with the __LINKEDIT it will stop deployment.
But even tho he "stops" release of app to public I can still go check binary and when I try to run that I get:
Library not loaded: @rpath/QtConcurrent.framework/Versions/A/QtConcurrent
Referenced from: <69A296DB-8C7D-3BC9-A8AE-947B8D6ED224> /Volumes/VOLUME/*/Agameri_Toolbox.app/Contents/MacOS/Agameri_Toolbox
Reason: tried: '/Users/dariusz/Qt/6.9.1/macos/lib/QtConcurrent.framework/Versions/A/QtConcurrent' (code signature in <192D5FAC-FE8C-31AB-86A7-6C2CE5D3E864> '/Users/dariusz/Qt/6.9.1/macos/lib/QtConcurrent.framework/Versions/A/QtConcurrent' not valid for use in process: mapping process and mapped file (non-platform) have different Team IDs), '/System/Volumes/Preboot/Cryptexes/OS/Users/dariusz/Qt/6.9.1/macos/lib/QtConcurrent.framework/Versions/A/QtConcurrent' (no such file), '/Volumes/DEV_MAC/02_CODE/Dev/Icarus.nosync/Icarus_Singleton/codeSingleton/libOutput/Release/QtConcurrent.framework/Versions/A/QtConcurrent' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Volumes/DEV_MAC/02_CODE/Dev/Icarus.nosync/Icarus_Singleton/codeSingleton/libOu
(terminated at launch; ignore backtrace)
And here is my build script, its QT based application, I'm using macdeployqt + my own custom signing as the one from macdeployqt breaks on the complex app. (I will post it in next post as apparently there is 7k limit O.O)
I've tried to replace the @rpath/ to @executable_path but that has made a million new issues and I'm just lost.
Having reviewed every document, this has been going on for nearly two months. Originally, it was thought that the problem might be related to the fact I had created the developer ID signing certificate on an intel mac, and trying to import and use it on an M1 Mac-Mini. That turned out to not be the case. Completely started over with a new account (the company changed names), requested and was granted the entitlements we needed. Create a new CSR from this new m1 machine, created a Developer ID certificate, installed the certificate on this machine. But no matter what, the codesign fails.
Troubleshooting
Environment:
Brand new Apple Developer account and Developer ID Application certificate (generated CSR on this Mac, installed cert and private key in login keychain)
macOS build/signing machine, not running codesign as root
Working from Terminal app in GUI session, not via SSH/cron
Keychain & Certificate Chain:
Verified Developer ID Application: Fidelis Security LLC (J4WGF5B6KZ) certificate and private key are present in login keychain
Verified certificate is marked as trusted and has a private key attached
Developer ID Certification Authority present and trusted in System keychain (removed any extra from login)
Evaluate certificate assistant shows everything is good
Apple Root CA present and trusted in System keychain
Set all trust settings back to System Defaults after testing with “Always Trust”
No expired or duplicate Developer ID intermediates present
codesign Troubleshooting:
Ran:
codesign --force --timestamp --options runtime --sign "Developer ID Application: Fidelis Security LLC (J4WGF5B6KZ)" ./fidelisevents
Consistently received:
Warning: unable to build chain to self-signed root for signer ...
errSecInternalComponent
Confirmed correct identity using:
security find-identity -v -p codesigning
(Shows my Developer ID Application cert as valid)
Keychain order confirmed with security list-keychains
Tried explicit --keychain argument in codesign (no change)
Additional Steps Attempted:
Downloaded and re-installed all relevant Apple intermediates/root certificates from https://www.apple.com/certificateauthority/
Rebooted the Mac and killed/restarted the securityd daemon
Confirmed no use of sudo or root for codesigning
Verified keychain is unlocked
Checked that partition list grants access to codesign (set with security set-key-partition-list -S "apple:codesign:" -s -k "" ~/Library/Keychains/login.keychain-db)
Attempted to codesign a copy of /usr/bin/true (same error)
Ran codesign both with and without --timestamp, both on app bundle and binary
Keychain Access showing:
Certificate and private key present and linked
Correct trust chain
System keychain containing all Apple intermediates/roots
No trust warnings or red Xs
Downloaded the latest Apple CA and Developer ID Root certificates and installed those.
None of the forum searches have helped. AI is likewise confused.
I am distributing a macOS application outside the App Store using Developer ID and need to provide provisioning profiles to customers for installation during the package installation process.
I have two questions:
How can I package and provide the provisioning profile(s) so that the customer can install them easily during the application installation process? Are there any best practices or tools that could simplify this step?
In my case, there are multiple provisioning profiles. Should I instruct the customer to install each profile one by one, or is there a way to combine them and have them installed all at once?
Any insights, resources, or recommendations would be greatly appreciated.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Hi,
I developed a Flutter app that works well in the iOS simulator, but that fails to deploy on my physical iPhone 13 Pro Max. Here is the error I get:
Target debug_unpack_ios failed: Exception: Failed to codesign /Users//Library/Developer/Xcode/DerivedData/Runner-/Build/Products/Debug-iphoneos/Flutter.framework/Flutter with identity
I've followed all the instructions that I found online, like moving my project from cloud storage to my local hard drive, but nothing has worked.
Thank you so much for your help!
Topic:
Code Signing
SubTopic:
General