我已经为MacOS开发了一个应用程序。我正在将公证过程作为其分发的一部分。我已经遵循了所有的步骤,并且我已经运行:
xcrun altool --notarize-app --primary-bundle-id "${APP_BUNDLE_ID}" --username "${APPLE_DEV_ID}" --password "${DEV_APP_SPECIFIC_PASSWORD}" --file "${DMG_PATH}" 然后,我使用以下命令检查公证进度:
xcrun altool --notarization-info "${notarize_uuid}" -u "${APPLE_DEV_ID}" -p "${DEV_APP_SPECIFIC_PASSWORD} 它的输出是:
RequestUUID: =<Request>
Date: 2019-05-26 09:40:34 +0000
Status: success
LogFileURL: <Log file>
Status Code: 0
Status Message: Package Approved =~ success ]] 然后我启动staple命令:
xcrun stapler staple -v <dmg file>它也以成功告终:
The staple and validate action worked! 但是,当我提取.app文件并运行:
spctl --assess --verbose ./macos/MyApp.app
./macos/MyApp.app/: accepted 根据我读过的文档,它应该是这样的:“source=Notarized开发人员ID”,对吗?
我在MacOS Mojave 10.14.5上运行
我遗漏了什么??
有人能帮帮我吗?
提前感谢
发布于 2019-05-28 01:58:51
如果有人遇到同样的问题,我会把解决方案贴出来:
首先,必须装订.app文件,而不是装订dmg。这意味着您必须提取二进制文件并将其装订起来
此外,为了检查申请是否经过公证,请在
`System Preferences - Security and Privacy`选项Allow apps downloaded from:必须选中Apple Store and identifier developers选项
希望这能有所帮助
发布于 2019-06-18 16:30:40
app和dmg可以一个接一个地分别进行公证和装订。尝试这样做,错误应该会消失。
发布于 2019-12-04 17:17:41
Short answer
这可能是由于RPATH引用了应用程序包外部的路径。删除此RPATH将解决此问题。
检查日志文件
您可以在Console.app中找到有关拒绝的额外信息(在尝试启动被阻止的应用程序之后)。请注意,在尝试打开被阻止的应用程序之前,您应该打开Console.app,否则可能不会记录所有消息。您应该在设备的日志中查找process XprotectService (即在Console.app的左侧栏中选择您的设备)。如果RPATH确实是问题所在,您应该可以找到这样的记录:
XprotectService:文件/path/to/your/executable/or/library在rPathCmd上失败/r路径/导致/ com.apple.xprotect:xprotect /问题(r路径解析为:(未找到路径),bundleURL: /path/to/your/bundle.app)
检查这些日志文件也可以为您解决其他问题提供一把钥匙。
请注意,我从一位苹果工程师那里收到了以下信息:
公证过程纯粹是为了检测恶意软件,并不复制网守强制执行。您仍然需要对软件进行公证,并使用Gatekeeper进行测试。
我们希望在未来为开发人员提供更好的工具,以预测一些常见的错误。
联系苹果公司
如果您无法使用上述信息解决您的问题,您可能需要使用Feedback Assistant与苹果联系。他们的反应不是很快(~1-2周),但答案是相当中肯的。
https://stackoverflow.com/questions/56312548
复制相似问题