如何查看 Delphi 应用程序的 Apple Notarize 日志

Mik*_*kup 2 delphi notarize delphi-10.3-rio

我的 Delphi 10.3.2 应用程序未通过 Apple 公证。

我已经能够获得另一个不同的应用程序来成功进行公证。

如何查看包含失败公证结果的日志文件?

(Xcode 的说明没有帮助,因为 Xcode 似乎认为日志与 Xcode 产品档案相关,而这是一个 Delphi 项目。)

在 PAServer 中打开详细设置会显示使用 altool 请求 --notarization-info 的最后一个命令。这是该类型中唯一的命令。在此命令之后不久,Apple 就发送了一封电子邮件,通知我公证失败。

当我的另一个项目成功公证时,--notarization-info命令在PAServer中出现了几十次才成功。

我回去尝试去公证这个项目,一直成功。我收到 Apple 发来的电子邮件,说它已经过公证,但 Delphi(不是 PAServer)显示了此错误:

[PAClient 错误] 错误:E5896 2019-07-24 11:16:23.235 altool[2270:146899] *** 错误:Apple 服务操作失败。找不到 RequestUUID。

PAServer 的输出:

> command_line: "/usr/bin/plutil" -convert binary1 "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app/Contents/Info.plist"
> command_line: "/usr/bin/codesign" -o runtime --timestamp --entitlements "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.entitlements" --deep -s "Developer ID Application: Bookup" -f "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app"
> command_line: "/usr/bin/ditto" -c -k --keepParent "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app" "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app.zip"
> command_line: "/usr/bin/xcrun" altool -t osx --notarize-app --primary-bundle-id com.bookup.chessopeningswizardexpress -u appleid@mysite.com -p lgsp-xxxx-yyyy-xxxx -f "/Users/michaelleahy/PAServer/scratch-dir/Mikes SSD Dell-Mikes Dell SSD/ChessOpeningsWizardExpressBuild107.app.zip"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
> command_line: "/usr/bin/xcrun" altool --notarization-info 8a88a10f-3868-4958-8bca-10eea92a305b -u "appleid@mysite.com" -p "lgsp-xxxx-yyyy-xxxx"
Run Code Online (Sandbox Code Playgroud)

从那时起我就猜到了这个问题。显然,应用程序包中有一个未签名的可执行文件。在这种情况下,代码签名可能会失败,而 Delphi 会忽略这一点。删除有问题的可执行文件可以让应用程序得到公证。

我仍然找不到查看公证过程日志的方法。

小智 5

您必须通过在详细模式下运行命令行 ALTOOL 来查看日志。这是我所做的:

“/usr/bin/ditto”-c -k --keepParent“/Users/eee/PAServer/scratch-dir/admin-MACMini/eee.Pkg.bak”“/Users/eee/PAServer/scratch-dir/admin -MACMini/eee.Pkg.zip"

“/usr/bin/xcrun”altool -t osx --notarize-app --primary-bundle-id za.co.eee -u eee@eee.co.za -p veet-teee-geee-xeee -f ” /Users/eee/PAServer/scratch-dir/admin-MACMini/eee.Pkg.zip"

请注意--verbose命令行中的添加:

“/usr/bin/xcrun”altool --verbose --notarization-info 2ceeeb2c-eeee-eeee-bce8-16fae417eee2 -u“eee@eee.co.za”-p“eeet-eeen-eeh-xdha”

错误信息以JSON格式返回。查找需要复制并粘贴到浏览器中的 URL。粘贴 URL 后,将显示另一条 JSON 格式的消息。在那里您会发现导致应用程序未被通知的问题:

"message": "可执行文件未启用强化运行时。"。

要解决此问题,您必须在 Delphi IDE 中启用以下设置:

项目选项 -> 应用程序 -> 权利列表

  1. 允许执行 JIT 编译的代码 = True
  2. 允许未签名的可执行内存= True
  3. 禁用可执行内存保护 = True

公证过程现在应该可以进行。