获取状态时在命令行上返回 'unsupported url' 的 MacOS 公证

MacOS notarization on command line returning 'unsupported url' when getting status

问题是在上传请求后获取公证状态

就像这样,我有一个较旧的内核扩展,需要最新的 mac 更新公证它,我正在尝试以自动方式(命令行)完成此操作。

我想做的第一件事是看看我是否可以上传任何东西并恢复任何状态。

所以在 xcode 中构建了 kext 之后,我使用同上创建了需要发送给 apple 的存档:

cd <builddir> && ditto -c -k --keepParent "MyApp.kext" "MyApp.kext.zip"

完成后我上传它:

xcrun altool --notarize-app --primary-bundle-ip "com.myapp.." --username "user@example.com" --password "mypassword" -asc-provider "MyProvider" --file MyApp.kext.zip

这个returns我需要的请求id

所以上面的步骤有效,下一步是给我带来问题,获取请求的状态,尝试将特定请求全部获取

xcrun altool --notarization-info <id> -u "user@example.com" -p "mypassword" -asc-provider "MyProvider"

xcrun altool --notarization-history 0 -u "user@example.com" -p "mypassword" -asc-provider "MyProvider"

这两个命令都给我:

*** Error: Connection failed! Error Message - unsupported URL
*** Error: Apple Services operation failed. unsupported URL

在 google 我没有找到 "unsupported URL"

的任何错误

有没有人有这方面的经验?

我以前见过这个错误,具体是什么原因忘记了,但肯定是我提交命令的方式有误。不幸的是,altool 似乎并没有在编写时考虑到用户友好性,而且在命令行验证方面似乎也没有做太多事情。

考虑到这一点,仔细查看您的命令行,我注意到:

  • 应该是--asc-provider,不是-asc-provider。两个连字符,不是一个。
  • --notarization-info 子命令实际上不需要 --asc-provider 选项,因为 UUID 可以明确识别您要进行的公证交易。

对于在网络搜索此错误消息后找到此答案的任何人的提示:

  • xcrun altool --help 与您的实际命令进行比较。检查连字符数,并确保您使用的命令 运行 需要或支持您传递的参数。
  • 检查所有字符串(用户名、提供者、捆绑包 ID、密码(我强烈建议钥匙串提供者不要在命令行上提供文字密码!)等)是否正确转义并始终用引号括起来措施。