macOS应用程序在使用codesign命令对其进行签名后无法再通过Internet访问外部资源

问题描述 投票:0回答:1

我已经使用Unity构建了macOS应用程序捆绑包,我打算将其提交给Mac App Store。我按照Unity文档Delivering your application to the Mac App Store中的说明进行了构建。

我能够为macOS运行Build命令,并为我的应用获取.app捆绑包。我也能够启动它,并且运行得很好。但是,运行以下codesign命令后,该应用程序无法通过Internet访问任何资源。我的程序源代码中的Internet可达性模块报告Internet无法访问。这是我正在运行的codesign命令行:

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

所有外部资源均通过HTTPS访问。另外,项目的Info.plist文件中添加了NSAppTransportSecurityNSAllowsArbitraryLoads键,并将其设置为true。 (这是默认情况下由Unity完成的。)

[还值得注意的是,在Unity中构建macOS应用项目会产生.app捆绑包。随附的Info.plist文件已使用NSAppTransportSecurityNSAllowsArbitraryLoads键进行了预配置,并设置为true

我已经尝试过同时保留和删除NSAppTransportSecurityNSAllowsArbitraryLoads键,但均未成功。我也尝试过在键下添加特定域,但没有成功。

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

  1. macOS Catalina 10.15.1

  2. Xcode 11.2.1

  3. Unity 2019.2.13

  4. 我的问题是:

  • 可能出什么事了?

  • 我还有什么其他途径?

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

我已经使用Unity构建了macOS应用程序捆绑包,我打算将其提交给Mac App Store。我遵循了Unity文档中所述的构建说明,即交付您的应用程序...
xcode macos unity3d code-signing
1个回答
1
投票
Mac App Store应用程序必须为sandboxed。在沙盒环境中,需要额外的权利才能建立网络连接。

授权列在here中。有关此特定问题,请参阅“启用网络访问”部分,其中说:]

使用目标编辑器的摘要标签中的Xcode的网络复选框,您可以为应用启用网络访问权限。
© www.soinside.com 2019 - 2024. All rights reserved.