I have a DriverKit system extension (dext) that uses PCIDriverKit. I would like to get the build environment straightened out to successfully distribute the dext and associated software to end users.
There are three types of software involved:
The Dext-hosting application - this is the application that must be installed to /Applications/, and will perform the registration of the dext. The dext is deployed "within" this application, and can be found in the /Contents/Library/SystemExtensions folder of the app bundle.
The dext itself - this is the actual binary system extension, which will be registered by its owning application, and will operate in its own application space independent of the hosting application.
Additional applications that communicate with the dext - these are applications which will connect to the dext through user clients, but these applications do not contain the dext themselves.
There are multiple locations where settings need to be exactly correct for each type of software to be signed, provisioned, and notarized properly in order to be distributed to users:
developer.apple.com - where "identifiers" and "provisioning profiles" are managed. Note that there are differences in access between "Team Agent", "Admin", and "Developer" at this site.
Xcode project's Target "Signing & Capabilities" tab - this is where "automatically manage signing" can be selected, as well as team selection, provisioning profile selection, and capabilities can be modified.
Xcode project's Target "Build Settings" tab - this is where code signing identity, code signing development team, code signing entitlements file selection, Info.plist options and file selection, and provisioning profile selection.
Xcode's Organizer window, which is where you manage archives and select for distribution. In this case, I am interested in "Developer ID" Direct Distribution - I want the software signed with our company's credentials (Team Developer ID) so that users know they can trust the software.
Choosing "automatically manage signing" does not work for deployment. The debug versions of software include DriverKit (development) capability (under App ID configuration at developer.apple.com), and this apparently must not be present in distributable provisioning. I believe this means that different provisioning needs to occur between debug and release builds?
I have tried many iterations of selections at all the locations, for all three types of binaries, and rather than post everything that does not work, I am asking, "what is supposed to work?"
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
Hi all,
I have two apple accounts. Stupidly my project is written in Account A and my paid developer account is Account B. When I tried to archive and publish under Account A, it says "Team "*** (Personal Team)" is not enrolled in the Apple Developer Program". But when I add a team to Account B, "Command CodeSign failed with a nonzero exit code". I know it is not the code itself because it runs fine when I use Account A. Just couldn't publish.
Any advice? Many many thanks
Topic:
Code Signing
SubTopic:
General
I have some questions regarding App Group Id's and use of the FileManager during an Appstore iOS transfer.
I've read a lot of the topics here that cover app groups and iOS, but it's still unclear exactly what is going to happen during transfer when we try to release an updated version of the app from the new account.
We're using this method FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.foo.bar") to store files on the device that are important for app launch and user experience.
Once we transfer the app and begin the process of creating a new version under the new account will we be able to read the files that are stored using this app group id under the new account?
What steps do we need to take in order to handle this and continue being able to access these files? It seems like the app group is not transferred in the process?
I've seen some users mention they removed the app group from the original account and created it again under the receiving account (with notes mentioning this is undocumented behavior). These conversations we're centered around Shared user defaults, and that applies as well but I'm more concerned with reading the values from the file system.
Thanks!
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Files and Storage
iOS
Entitlements
Security
I'm developing an electron app using electron-builder
I code-signed and notarized it and can confirm with codesign and spctl commands like below:
% codesign --verify --deep --verbose ./MyApp.app
./MyApp.app: valid on disk
./MyApp.app: satisfies its Designated Requirement
% spctl -a -vvv -t install ./MyApp.app
./MyApp.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: XXXXX.,Ltd. (XXXX)
But I cannot open it as if weren't signed.
"MyApp" can't be openend"
If I try to open it in terminal with open command:
The application cannot be opened for an unexpected reason, error=Error Domain=NSOSStatusErrorDomain Code=-10810 "kLSUnknownErr: Unexpected internal error" UserInfo={_LSFunction=_LSLaunchWithRunningboard, _LSLine=2735, NSUnderlyingError=0x600003aa0900 {Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x600003aa09c0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" UserInfo={NSLocalizedDescription=Launchd job spawn failed}}}}}
What could be wrong here? I'm strongly suspecting that my apple developer program and certificate has some issues. As this happened after I renew my program this month.
Or could there be some other reason for this error?
Topic:
Code Signing
SubTopic:
Notarization
Hello, builds we've submitted for notarization have been stuck in the In-Progress stage for a while now. The process has taken less than 10 minutes in the past.
The latest of which is id: 86916f85-b82f-4a95-982b-1232387a92e1.
We haven't made any stark changes so we're not clear on what the issue is. Is the best way forward to submit a support ticket?
we are trying to build MacOS Desktop app using electron code sign-in and notarization has completed basically it is angular application but still unable to open the desktop app getting below error pop-up : screenshot of it.
CrashReporter Key: XXXX-XXXX-XXXX-XXXX-XXXX
Hardware Model: MacBook Pro (Obfuscated)
Process: xnode [5798]
Path: /Applications/[App Path]/Contents/MacOS/xnode
Identifier: ai.xnode.xnode
Version: 1.0.0 (1.0.0.43313)
Code Type: X86-64 (Native)
Role: Default
Parent Process: launchd [1]
Coalition: ai.xnode.xnode [5056]
Date/Time: [Redacted for Privacy]
OS Version: macOS 14.6.1 (23G93)
Release Type: User
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL (Code Signature Invalid))
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: CODESIGNING 1 Taskgated Invalid Signature
Triggered by Thread: 0
Thread 0 Crashed:
0 dyld_path_missing 0x10dbb4010 _dyld_start + 0
1 main_executable_path_missing 0x10b395000 ???
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000000 rcx: 0x0000000000000000
rdx: 0x0000000000000000 rdi: 0x0000000000000000 rsi: 0x0000000000000000
rbp: 0x0000000000000000 rsp: 0x00007ff7b4b6abf8 rip: 0x000000010dbb4010
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
macOS
Mac App Store
Code Signing
Hello All,
I am trying to do my research, but wanted to ask for confirmation and clarification on a couple of points.
We are currently developing and app for a client, we would like to distribute the ipa to them via our own site, rather than running through the app store upload. It's not going to be a public facing app.
We used to have access to the Enterprise side of things, but this was removed when Apple added the minmum employees restriction.
I'm assuming that we would need to use the Developer ID Application certificate?
But I was also wondering if more than one person can have this certificate on their machines to create builds?
I appreciate that these may be obvious to some, but I'm fairly new to signing apps etc.
Thanks for your help.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Hello,
I'm new at developing an ios app, but I have created a basic app, I plan to use just for me using xcode and the language swift.
I intend to use this app, to display a video and images on ipads that will be used as KIOS on a trade show. I don't need this app to be published on the app store as I intend to use it solely for my use.
Is there a way I can do something like this that won't be restricted with the 10 days restriction?
I learned xcode/swift as little as I could to create the app, but now I'm limited to the 10 days, and only 3 devices. Is there a way I can create an offline app, that doesn't have the all the restrictions? I plan to use these ipads over and over again on tradeshows to display my work.
Topic:
Code Signing
SubTopic:
General
I am developling a electron app, failed when notarize.
I filled in 3 fields:
appleId: my apple account email
apple id password: I generated it from https://account.apple.com/account/manage/section/security, the "app-specific password"
team id: I get it from https://developer.apple.com/account
How can I fix it?
Log:
{
"logFormatVersion": 1,
"jobId": "7bedcb38-5ca7-4d69-be96-1bd660b67942",
"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": "Samira.zip",
"uploadDate": "2024-12-04T11:34:01.999Z",
"sha256": "e9cea98493836dfd4c238a25e6d8dae31ed529ed353d4f8463313ee3d431c741",
"ticketContents": null,
"issues": null
}
Topic:
Code Signing
SubTopic:
Notarization
Trying to notarise a small VST3 application, but get the "invalid" status. Chrcked the logfile, and there are a few issues there. How should I resolve this?
{
"logFormatVersion": 1,
"jobId": "4438fc34-4900-4302-bf2f-dd2336f44b89",
"status": "Invalid",
"statusSummary": "Archive contains critical validation errors",
"statusCode": 4000,
"archiveFilename": "Abandoned Beta 4.vst3.zip",
"uploadDate": "2024-12-07T10:22:59.950Z",
"sha256": "25457e4fd6e7eae72e8a892e468cef916d173f2fb30d2156d8ff72e33d0f4fe3",
"ticketContents": null,
"issues": [
{
"severity": "error",
"code": null,
"path": "Abandoned Beta 4.vst3.zip/Abandoned Beta 4.vst3/Contents/MacOS/Abandoned Beta 4",
"message": "The binary is not signed.",
"docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087721",
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "Abandoned Beta 4.vst3.zip/Abandoned Beta 4.vst3/Contents/MacOS/Abandoned Beta 4",
"message": "The signature does not include a secure timestamp.",
"docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087733",
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "Abandoned Beta 4.vst3.zip/Abandoned Beta 4.vst3/Contents/MacOS/Abandoned Beta 4",
"message": "The signature of the binary is invalid.",
"docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087735",
"architecture": "arm64"
},
{
"severity": "error",
"code": null,
"path": "Abandoned Beta 4.vst3.zip/Abandoned Beta 4.vst3/Contents/MacOS/Abandoned Beta 4",
"message": "The signature does not include a secure timestamp.",
"docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087733",
"architecture": "arm64"
}
]
}
Topic:
Code Signing
SubTopic:
Notarization
Howdy,
I thought this would be an easy question, but it turns out it's really not! In fact, it flies in the face of how the Apple ecosystem is set up. That said, I still need an answer to be able to inform our customers of what their app update options are.
The question: Does app store provisioning ever expire? Based on the very limited information I can find, it either expires in one year, two years, or never. Anecdotal evidence seems to indicate that the answer could be never, but I need to confirm this.
The use case: Some of our customers are very old school. They tend to find a technical solution and stick with it. As such, they do not update apps regularly on their field iPads. They generally only update when they are forced to. They use MDM to deploy the app, and would set the MDM not to pull updated apps from the app store when available, essentially keeping the same version of the app in use for as much as 3 years or more. If this were to happen, I need to know if the provisioning for the old version of the app will ever expire if they get it from the app store.
I know with an enterprise deployment of .ipa files via MDM, the app provisioning/certificate will expire after 1 or 2 years (can't remember which atm), but I can't find an answer about app store provisioning. Hopefully someone can provide me with an answer on this forum.
Thanks in advance,
Mapguy
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
App Store
Provisioning Profiles
Device Management
I got a error when validate App as flow
Asset validation failed
App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "com.***.yyy.pkg/Payload/***.app/Contents/MacOS/zzz" )] Refer to App Sandbox page at https://developer.apple.com/documentation/security/app_sandbox for more information on sandboxing your app. (ID: dc264017-f236-4e89-a100-e69c7f0fb318)
zzz is a command tool build by make, I need codesign it.
#1. use two lines below, run succes, but get 'App sandbox not enabled' problem
codesign -s "TTT1" -f -v --timestamp --options runtime dist/m_arm64/zzz
codesign -s "TTT1" -f -v --timestamp --options runtime dist/m_x64/zzz
#2. use two lines below, reduce 'App sandbox not enabled' , but run zzz get 'zsh: trace trap'
codesign -s "TTT2" -o runtime --entitlements zzz.entitlements -f dist/debug/zzz
codesign -s "TTT2" -o runtime --entitlements zzz.entitlements -f dist/debug/zzz
lipo -create dist/m_arm64/zzz dist/m_x64/zzz -output dist/zzz
lipo -archs dist/zzz
otool -L dist/zzz
the zzz.entitlements content is
the Info.plist embedded in zzz is
#codesign both success
codesign -d -vvv ./zzz
#use method 2, the sandbox poblem ok
codesign --display --entitlements - ./zzz
why when codesign with entitlements, the zzz cant run success? if I upload to appstore, the client will get the zsh error?
Has anyone encountered this kind of problem before?
Reference:
https://developer.apple.com/documentation/xcode/embedding-a-helper-tool-in-a-sandboxed-app
Topic:
Code Signing
SubTopic:
Entitlements
Hello,
I can see this option in my certificate on the developer.apple.com platform.
The entitlements file is updated with:
com.apple.developer.proximity-reader.payment.acceptance
code-block
I’ve created a new profile for development and App Store, but in Release mode, my profile is not recognized…
What configuration might be missing?
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Tap to Pay on iPhone
Entitlements
Hi everyone!
We use to have an intel Mac machine where we generate the Developer ID Installer & Application certs for signing and notarization process. This process works sweet.
Now, we move from an intel to a m1 Mac machine, where we want to do the same process as before. I had try two different approaches, but ending up with the same result.
I export the cert with the private key from my intel to the m1 machine, but when I try to sign, I get: Invalid signature. (Not sure what this error means in this case as everything works on the intel machine. I am guessing the cipher for creating either the private key or the signature differs between the architecture)
I try to generate new certs for this m1 machine, but I get the following error: You already have a current Developer ID installer certificate or a pending certificate request. I try with the same account, but also with a different account. In both cases got the same error.
I create a ticket for apple, where they said to expect a reply between one and two business days, but no luck yet.
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
Tags:
Signing Certificates
Code Signing
We are developing an application for local file discovery and transfer.
We applied to Apple for two permissions. One is com.apple.developer.networking.multicast, which supports the four provisioning profiles: Development, Ad hoc, App Store Connect, and Developer ID. The other is com.apple.developer.device-information.user-assigned-device-name, but Apple only approved it for Development and Ad hoc, without granting App Store Connect support. This prevents us from using the user-assigned-device-name permission in the archive.
Could you please clarify the situation? How can we get user-assigned-device-name supported for App Store Connect?
Topic:
Code Signing
SubTopic:
Entitlements
What is the actual ASN.1 structure of the DER encoded entitlements used for iOS and MacOS applications?
You can see a sample output at 'The Future is DER', but is there any official documentation or definition?
Topic:
Code Signing
SubTopic:
Entitlements
After using backup to setup my new Mac Mini my xCode App projects run ok in the Simulator but fail to Archive or Analyze with the error: "The specified item could not be found in the keychain." The item is a provisioning profile.
I was able to Run, Archive and Validate these projects on my old Mac Mini just before the final backup. Are there known problems in backup of provisioning profiles or keychains?
I have tried creating new profiles etc without success for several days. I'm not an expert developer so I'm hoping there is a simple solution.
Please suggest the best way to resolve and/or clarify this problem.
Hello,
I am trying without luck to create a .dmg or .pkg for my electron app that can be opened by any user on a mac. Every time I fail. All is happening by the same pattern. Here is the last try with creating a .pkg instead of .dmg.
The app is built and it is signed correctly (I suppose)
codesign --verify --verbose=1 dist/mac-universal/VIVIDTIME.app
dist/mac-universal/VIVIDTIME.app: valid on disk
dist/mac-universal/VIVIDTIME.app: satisfies its Designated Requirement
I created a .pkg
pkgbuild --root "dist/mac-universal/VIVIDTIME.app" \
--install-location "/Applications/VIVIDTIME.app" \
--identifier "app.vividtime.mac" \
--version "1.1.0" \
--sign "Developer ID Installer: Pavel Bochkov-Rastopchin (2QKDCTR5Y3)" \
dist/VIVIDTIME.pkg
pkgbuild: Inferring bundle components from contents of dist/mac-universal/VIVIDTIME.app
pkgbuild: Adding component at Contents/Frameworks/Mantle.framework
pkgbuild: Adding component at Contents/Frameworks/VIVIDTIME Helper.app
pkgbuild: Adding component at Contents/Frameworks/VIVIDTIME Helper (GPU).app
pkgbuild: Adding component at Contents/Frameworks/Electron Framework.framework
pkgbuild: Adding component at Contents/Frameworks/Squirrel.framework
pkgbuild: Adding component at Contents/Frameworks/VIVIDTIME Helper (Renderer).app
pkgbuild: Adding component at Contents/Frameworks/VIVIDTIME Helper (Plugin).app
pkgbuild: Adding component at Contents/Frameworks/ReactiveObjC.framework
pkgbuild: Using timestamp authority for signature
pkgbuild: Signing package with identity "Developer ID Installer: Pavel Bochkov-Rastopchin (2QKDCTR5Y3)" from keychain /Users/innrvoice/Library/Keychains/login.keychain-db
pkgbuild: Adding certificate "Developer ID Certification Authority"
pkgbuild: Adding certificate "Apple Root CA"
pkgbuild: Wrote package to dist/VIVIDTIME.pkg
Topic:
Code Signing
SubTopic:
Notarization
We have a MacOS application that we plan on distributing standalone (it'll be installed through MDM or directly, not through the app store). We utilize endpoint security and full disk access for this (enterprise) app. I have a makefile that uses codesign to sign the app inside-out. All that appears to work (i.e., when I try to run the app directly it functions as I expect it to).
What's the recommended way to allow the developers in my team to also sign the app for local development so it functions as close as possible to production? My first thought is to distribute the developer identity to their machines using MDM. However, ideally i'd like to rule out the ability for a developer who has the MDM profile assigned to export the keys. That really only leaves a centralized solution in place or disabling SIP on their system (which I don't want to do). Alternatively, would creating a separate identity for production make more sense, so that in the case the developer certificate is revoked, the production releases continue to function as normal (however, I assume this would also require creating two different profiles for the endpoint security entitlement--one for each certificate).
Thanks!
Derek
Topic:
Code Signing
SubTopic:
Certificates, Identifiers & Profiles
We would like to codesign up for the app that uses LuaJIT to be downloadable as the app with the identified developer on Apple silicon macOS. It means no targeting to the App Store which can be problematic due to LuaJIT usage.
Looks like there is no problem making the application run with the signature, but the performance is really bad.
All times are for running on an M2 chip, MacOS Sonoma 14.6.
Our x86_64 build works fine. Reference LuaJIT benchmark takes around 0.15 seconds (seed 2, 100 runs).
Same build for arm64 with ad-hoc signature, no entitlements, and needs around 1.8 seconds (seed 2, 100 runs) to run the same benchmark code.
I created luajit_app in Xcode to investigate.
It simply opens a window, you select Lua script, and it runs it and prints output to the text area.
Signed by my developer ID, run from Xcode immediately after build:
I see the same behaviors for the x86_64 build. It needs around 0.43 seconds (seed 2, 1000 runs) to finish the benchmark code.
The arm64 build without added entitlements needs around 16 seconds (seed 2, 1000 runs).
Added entitlements com.apple.security.cs.disable-executable-page-protection:
The arm64 build typically needs around 0.14 seconds (seed 2, 1000 runs).
Added entitlements com.apple.security.cs.allow-jit which fixed LuaJIT to use MAP_JIT flag:
The arm64 build typically needs around 0.14 seconds (seed 2, 1000 runs).
2nd and other app runs need around 19 seconds for benchmark.
Ad-hoc signed without developer ID and team, com.apple.security.cs.allow-jit:
Run from Xcode
The first app runs after the build/rebuild
The arm64 build typically needs around 0.14 seconds (seed 2, 1000 runs), but the first run sometimes takes around 5 seconds (seed 2, 1000 runs).
2nd and next runs of the app
The arm64 build typically needs around 19 seconds (seed 2, 1000 runs).
Bad signed, signature fix from the command line:
Signed with codesign --force --deep --sign MYID -o runtime --entitlements entitlements.plist luajit_app_bad_sign.app or AD-HOC
Behaviors are similar to Xcode runs. The first time the app runs usually takes around 5 seconds and 0.14 seconds later for benchmark script. Sometimes first benchmark runs takes 5 seconds, the second run 19 seconds and later runs take 0.14 seconds.
Later app runs typically fall to 19 seconds needed to do benchmark script.
End
I have also tried ad-hoc and the developer signature with both entitlements for the origin app, but no difference in time needs for the benchmark was observed.
Any ideas what is going on?
Topic:
Code Signing
SubTopic:
Entitlements