我正在尝试从Xcode 9.1上的bot中的构建后触发器导出一个Developer-ID签名的应用程序包,但我不能让它通过Gatekeeper而不必使用右键单击 - in-Finder解决方法。
根据this answer的建议,我尝试运行codesign -dvv /path/to/my.app
并获得此输出(服务器和团队ID已被删除):
Executable=/path/to/my.app/Contents/MacOS/myapp
Identifier=com.abbey-code.myapp
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=29403 flags=0x0(none) hashes=911+5 location=embedded
Signature size=4630
Authority=Mac Developer: OS X Server (**********)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=Nov 20, 2017, 5:48:21 PM
Info.plist entries=35
TeamIdentifier=**********
Sealed Resources version=2 rules=13 files=141
Internal requirements count=1 size=184
上面的答案表明我应该看到Developer ID Certification Authority
,但我只看到“Mac Developer”作为根权威。我正在使用这些参数调用xcodebuild:
xcodebuild -verbose -exportArchive -exportOptionsPlist exportOptions.plist -archivePath,/ path / to / xcarchive,-exportPath,/ path / to / place / exported / appbundle
我的exportOptions.plist如下所示:
<?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>method</key>
<string>mac-application</string>
<key>signingCertificate</key>
<string>Developer ID Application</string>
<key>signingStyle</key>
<string>automatic</string>
</dict>
</plist>
我的机器人已登录到我的开发者帐户,并设置为自动管理证书。我还尝试在服务器上启动Xcode,登录我的帐户,下载开发者ID证书,然后单击编辑机器人工作表中的“添加到服务器”按钮。
我做错了什么?
答案 0 :(得分:1)
我的导出选项plist不正确。我成功地使用了以下内容:
<?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>method</key>
<string>developer-id</string>
<key>signingStyle</key>
<string>automatic</string>
</dict>
</plist>
我可以确认,为了实现这一点,需要在Bot配置中手动将Developer ID证书添加到服务器。出于某种原因,它并没有自动获得那个。