有没有人知道如何发送包含嵌入式帮助应用程序包的Mac应用程序包,以便由Apple公证?当我尝试归档一个简单的应用程序时,一切顺利。该应用程序已正确存档,我可以上传存档,我的应用程序会在几分钟的问题中进行公证。
但是,当我尝试将包含帮助应用程序包的应用程序包归档到其中时,使用脚本阶段并尝试通过创建存档的正常自动工作流程自动签署和公证我的应用程序包,我无法上传应用程序包公证。所以我该怎么做?
任何帮助表示赞赏。
你可以找到有用的信息here
看看你是否可以通过公证。对我来说,我必须解开一些罐子并在其中签名并重新包装。
我遇到的另一个问题是当你使用'runtime'选项对java应用程序进行编码时,它们无法运行,这可能与你遇到的问题相同(消失)。要查看错误,您可以从终端运行您的应用程序,您将看到错误。在这种情况下,您可以尝试使用--entitlements
添加一些例外。
这是我用来运行应用程序的权利
<?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.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
</dict>
</plist>
命令签署应用程序:
codesign --force --verbose=9 -s "Developer ID Application: XXXXXXX" --options runtime --deep --entitlements ./entitlements Myapp.app
由于Apple在2019年WWDC期间制作的新文档,我终于能够解决这个问题,这在以前是不可能的,即使在使用DTS票证之后也是如此。基本上,如果您有一个复杂的包,并且需要使用脚本自动构建它,则不能通过Archive使用自动工作流,然后通过Xcode中的管理器上传应用包。
那么,对于那些现在和将来遇到这个问题的人来说,这就解决了我的问题:
1)转到项目导航面板,然后单击您的项目
2)通过单击构建设置转到每个目标并进行以下修改(在搜索框中输入“签名”一词,因为这会缩小显示的构建设置):
3)要构建您的应用程序以进行分发,请执行以下操作:
4)要公证您刚刚创建并正确签名的应用程序包,并使用有效的安全时间戳,您有几个选项:
/usr/bin/ditto -ck --keepParent "*APP_PATH*" "*ZIP_PATH*"
中的应用程序将您的应用程序包压缩为zip文件5)在Terminal:xcrun altool --notarize-app --primary-bundle-id "your-primary-bundle-id-here" --username "*your-username*" --password "*your-app-specific-password-here*" --file *your-path-here*
中使用它上传磁盘映像或zip文件。您需要转到appleid.apple.com帐户为altool
应用生成应用专用密码。这是一项安全措施,因此您不会以明文形式发送Apple ID密码。您可以在Apple ID管理帐户的“安全”面板中执行此操作。在您确认上传成功之前,请勿执行任何操作。
6)要请求公证历史状态,请在终端中运行:xcrun altool --notarization-history 0 -u "*your-account*" -p "*your-app-specific-password-here*"
。您应该会看到上传列表及其各自的日期和RequestUUID。最新上传通常是列表中的第一个。
7)要请求公证状态,包括访问公证日志文件在终端运行:xcrun altool --notarization-info RequestUUID -u "*your-account*"
8)如果您获得批准您的应用程序包的状态,那么您可以通过在终端:xcrun stapler staple *path-to-your-app-bundle*
中运行此批准来批准该批准。