在终端中使用codesign命令签名后,使用Unity构建的macOS应用在启动时挂起

时间:2019-11-25 21:08:51

标签: xcode macos unity3d code-signing

我正在尝试将使用Unity构建的macOS应用提交到Mac App Store。我按照Unity文档Delivering your application to the Mac App Store中提到的说明进行操作。

我能够为macOS运行Build命令,并为我的应用程序获取一个.app捆绑包。我也可以启动它,并且运行良好。但是,在运行以下codesign命令(如上面的链接文档中所述)后,该应用在启动时冻结,必须强制退出。这是我正在运行的codesign命令行:

codesign -o runtime -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"

我在Apple拥有付费的(个人)开发人员许可,并且已按照文档中的说明在钥匙串中正确设置了证书。我还设法通过运行命令行来检查应用程序捆绑包是否已签名:

codesign -dv --verbose=4 GAMENAME.app

运行以上命令将显示它已使用我的第三方Mac App Developer证书签名。

我试图寻找一种从Unity应用程序导出 Xcode项目的方法,因此我可以尝试使用Xcode对其进行构建和签名,但是在搜索Web之后,我意识到Unity并没有尚不支持导出macOS应用程序的Xcode项目(对于iOS也可以这样做)。

我正在运行所有软件的最新版本,并在下面提到:

  1. macOS Catalina 10.15.1

  2. Xcode 11.2.1

  3. 团结2019.2.13

我的问题是:

  • 可能出什么问题了?

  • 我还有其他途径吗?

我正在寻找暂时通过Mac App Store独家分发应用程序。这将是一个付费应用程序(如果相关的话)。

1 个答案:

答案 0 :(得分:1)

如果要通过命令行(使用Unity的命令行调用)构建.app,请尝试改用编辑器进行构建。

确认您不是在构建仅32位的二进制文件。

尝试从codesign命令中删除-o runtime,这是您过程中唯一与我的不同的部分,并且我的工作正常。

否则,当上传到App Store时,我相信Xcode将为您签名。尽管这与codesign没什么不同,但是Xcode可能会检查您是否在特定计算机上意外阻止或配置错误的运行二进制文件。您应该在其他计算机或macOS VM上进行测试。