我一整天都在努力解决这个问题,似乎在大多数情况下这应该“有效”,但对我来说却不起作用。
我正在尝试使用 Electron-builder 在 mac 上签署 mac 应用程序。该应用程序构建得很好,如果我跳过签名步骤,我可以毫无问题地启动它,尽管显然它是未签名的,不会在生产中运行。我已按照我能找到的所有步骤进行操作(例如this),包括使用计算机上的 CSR 在 Apple Developer 网站上创建签名密钥并将其添加到我的钥匙串中。 Electron-builder 显然发现并尝试使用这个密钥,因为苹果打开了一个对话框,要求我输入密码来解锁密钥,并且它显示了正确的名称。但是,大约 30 秒后,签名过程失败并出现以下错误:
failedTask=build stackTrace=Error: Command failed: codesign --sign [key censored unsure if it's sensitive] --force --timestamp --options runtime --entitlements build/entitlements.mac.plist /Users/camdan.me/Documents/Repos/failsafe/app/dist/mac-arm64/Failsafe.app/Contents/Frameworks/Failsafe Helper (GPU).app/Contents/MacOS/Failsafe Helper (GPU)
/Users/camdan.me/Documents/Repos/failsafe/app/dist/mac-arm64/Failsafe.app/Contents/Frameworks/Failsafe Helper (GPU).app/Contents/MacOS/Failsafe Helper (GPU): replacing existing signature
/Users/camdan.me/Documents/Repos/failsafe/app/dist/mac-arm64/Failsafe.app/Contents/Frameworks/Failsafe Helper (GPU).app/Contents/MacOS/Failsafe Helper (GPU): resource fork, Finder information, or similar detritus not allowed
值得注意的是,当我解锁密钥时,它会立即要求我再次解锁,并且只有在我单击“始终允许”时才会停止。不确定这是否相关。
这是我的
mac
的
electron-builder.yml
部分
mac:
entitlements: build/entitlements.mac.plist
entitlementsInherit: build/entitlements.mac.plist
extendInfo:
- NSCameraUsageDescription: Application requests access to the device's camera.
- NSMicrophoneUsageDescription: Application requests access to the device's microphone.
- NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
- NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
hardenedRuntime: true
gatekeeperAssess: false
有什么想法或建议吗?
如果其他人也遇到此问题,则问题出在文件位于与 iCloud 同步的目录中。将项目文件夹移动到非同步目录并在那里构建没有问题,但我不确定为什么。