8

这些是我正在运行的命令。这曾经每次都对我有用,但现在失败了。

codesign -s "Developer ID Application: <YOUR NAME>" --timestamp --options runtime -f --entitlements entitlements.plist --deep <APP NAME>.app

/usr/bin/ditto -c -k --keepParent <APP NAME>.app <APPNAME>.zip

xcrun altool --notarize-app --primary-bundle-id "<BUNDLE ID>" -u "<YOUR EMAIL>" -p "<APP SPECIFIC PASSWORD>" --file <YOURAPP>.zip

我收到一封包含“您的应用程序公证失败”或诸如此类的电子邮件。

这些是我得到的错误。

{
"logFormatVersion": 1,
"jobId": "69910cca-87c0-44f6-a8ec-a0c8a6a7b614",
"status": "Invalid",
"statusSummary": "Archive contains critical validation errors",
"statusCode": 4000,
"archiveFilename": "MegaHasan.zip",
"uploadDate": "2020-02-05T19:07:48Z",
"sha256": "b6b7c75a0e50a9ec9f238360c674f9345ef6a97d27a21a69e793b7938927eb42",
"ticketContents": null,
"issues": [
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/plugin_bit.dylib",
"message": "The binary is not signed with a valid Developer ID certificate.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/plugin_bit.dylib",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/plugin_bit.dylib",
"message": "The binary uses an SDK older than the 10.9 SDK.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/libsteam_api.dylib",
"message": "The binary is not signed with a valid Developer ID certificate.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/libsteam_api.dylib",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/plugin_steamworks.dylib",
"message": "The binary is not signed with a valid Developer ID certificate.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Plugins/plugin_steamworks.dylib",
"message": "The signature does not include a secure timestamp.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Frameworks/CoronaCards.framework/Versions/A/Frameworks/gameNetwork.dylib",
"message": "The binary uses an SDK older than the 10.9 SDK.",
"docUrl": null,
"architecture": "x86_64"
},
{
"severity": "error",
"code": null,
"path": "MegaHasan.zip/Mega Hasan.app/Contents/Frameworks/CoronaCards.framework/Versions/A/Frameworks/licensing.dylib",
"message": "The binary uses an SDK older than the 10.9 SDK.",
"docUrl": null,
"architecture": "x86_64"
}
]
}
4

2 回答 2

5

公证仅适用于与 macOS 10.9 或更高版本链接的二进制文件。您必须针对 SDK 10.9 或更高版本重新链接有问题的库,然后重新提交应用程序。

您必须安装至少与 10.9 一样现代的 XCode macos SDK,并在编译和链接不是最新的库时将其用作您的 sysroot。然后重新编译并将您的应用程序链接到新的库。使用相同的工具链编译所有 dylib 和主要执行二进制文件通常是一个好主意。对于公证,不幸的是,任何 10.9 之前的 sdk 链接二进制文件都将被禁止。

于 2020-02-21T00:36:23.693 回答
3

我在电子公证过程中遇到了类似的问题,以前可以工作,现在不行。我发现不知何故我的一些证书已被吊销。他们没有在 Apple Developer 网站上显示这种方式,但是当我进入 Xcode: Preferences: Accounts 并单击 Manage Certificates 按钮时。

创建新证书确实让我达到了通过公证的地步,但现在当我使用 Application Loader 上传时出现签名错误,所以我可能在制作新证书和重新生成我的配置文件时做错了其他事情,但希望这可以帮助你出去。

于 2020-02-20T15:41:33.360 回答