我正在尝试将 Java 应用程序发送到 MacOS X App Store。我的所有代码都已正确签名(jar、dylib 等)。不幸的是,在发送二进制文件时,我总是收到“无效的二进制文件”错误,并显示以下消息:
尊敬的开发人员, 我们发现您最近交付的“tamaggo ibi 桌面”存在一个或多个问题。要处理您的交付,必须更正以下问题: 未启用应用沙箱 - 以下可执行文件必须在权利属性列表中包含布尔值为 true 的“com.apple.security.app-sandbox”权利。有关对您的应用程序进行沙盒化的更多信息,请参阅应用程序沙盒页面。• tamaggo ibi.app/Contents/MacOS/JavaAppLauncher 纠正这些问题后,转到版本详细信息页面并单击“准备上传二进制文件”。继续完成提交过程,直到应用状态为“等待上传”。然后,您可以提供更正后的二进制文件。问候, App Store 团队
我用谷歌搜索了一整天,但没有找到任何东西。有人知道如何在 .entitlements 文件中对 JavaAppLauncher 进行沙箱处理吗?
为了提供更多信息,这是我签署代码的方式:
/usr/bin/codesign --resource-rules desktop-app/target/dist/myApp/Contents/ResourceRules.plist --verbose --force --sign "3rd Party Mac Developer Application: XXX" desktop-app/target/dist/myApp
find desktop-app/target/dist/myApp.app/Contents/ -type f \( -name "*.jnilib" -or -name "*.jar" -or -name "*.dylib" \) -exec codesign --resource-rules desktop-app/target/dist/myApp.app/Contents/ResourceRules.plist --verbose -f -s "3rd Party Mac Developer Application: XXX" --entitlements desktop-app/target/dist/myApp.app/Contents/myApp.entitlements {} \;
codesign --resource-rules desktop-app/target/dist/myApp.app/Contents/ResourceRules.plist --verbose --force --sign "3rd Party Mac Developer Application: XXX" desktop-app/target/dist/myApp.app/Contents/Resources/binaries/ffmpeg
codesign --resource-rules desktop-app/target/dist/myApp.app/Contents/ResourceRules.plist --verbose --force --sign "3rd Party Mac Developer Application: XXX" desktop-app/target/dist/myApp.app/Contents/MacOS/JavaAppLauncher