问题描述
我有一个应用程序目前在 Mac App Store 中。它由主应用程序、PlugIns 文件夹 (/Contents/PlugIns) 中的可加载包以及登录项 (/Contents/Library/LoginItems/) 下的 Luncher 助手组成
使用 Xcode 12.4 我可以构建,但是当我尝试将其上传到 Apple 时出现错误:
ERROR ITMS-90296: "App sandBox not enabled. The following executables must include the
"com.apple.security.app-sandBox" entitlement with a Boolean value of true in the
entitlements property list:[("com.mycompany.myapp.mas.pkg/Payload/MyApp.app/
Contents/Library/LoginItems/MyApp Launcher.app/Contents/MacOS/MyApp Launcher")]
Refer to App SandBox page at https://developer.apple.com/documentation/security/app_sandBox
for more information on sandBoxing your app."
已为 Launcher 启用沙箱。我对所有三个代码部分(应用程序、可加载包和帮助程序)使用相同的权利文件。
帮助程序有自己的包标识符,但没有配置文件,因为包 ID 未在我的“证书、标识符和配置文件”中注册,因为它不是用于自行分发的独立应用程序。
这非常令人沮丧,因为它在 Xcode 11 中有效,但在 Xcode 12 中无效。
codesign --verify --deep --verbose /mainapp.app/
valid on disk
satisfies its Designated Requirement
并检查助手的权利:
codesign -d --entitlements :- /mainapp.app/Contents/Library/LoginItems/helper.app
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandBox</key>
<true/>
<key>com.apple.security.files.bookmarks.app-scope</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.temporary-exception.files.absolute-path.read-only</key>
<array>
<string>/</string>
</array>
<key>com.apple.security.temporary-exception.mach-lookup.global-name</key>
<array>
<string>com.apple.testmanagerd</string>
<string>com.apple.coresymbolicationd</string>
</array>
</dict>
</plist>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)