我正在尝试使用 Xcode 5.0.2 在 Mavericks OS 上签署我的 java 应用程序 -
#!/bin/sh
if [ -f "/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate" ]; then
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"
elif [ -f "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate" ]; then
export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
else
export CODESIGN_ALLOCATE="/usr/bin/codesign_allocate"
fi
codesign --deep -s "my name" MayApp.app
codesign -v MayApp.app && echo MayApp.app is Signed Successfully!
之前我曾以 Unable to launch App built on Mavericks 的身份询问过因为当时我的机器是 Mountain Lion 10.8.2,但现在我有 Mavericks。 现在的情况类似于我们构建应用程序的服务器计算机,如 -
- Java:jdk7u21
- Xcode:5.0.2
我在启动应用程序时仍然面临同样的错误,即 -
admins-iMac-4:~ admin$ open /Users/admin/Desktop/APP/MyApp.app
LSOpenURLsWithRole() failed with error -10810 for the file /Users/admin/Desktop/APP/MyApp.app.
如果我在没有 --deep 参数的情况下签名,那么 -
SigningApp:
[exec] MayApp.app: code object is not signed at all
[exec] In subcomponent: /Users/admin/Desktop/BUILD/MayApp.app/Contents/PlugIns/jdk1.7.0_21.jdk
[exec] MayApp.app: code object is not signed at all
我尝试过多种组合来签名,但都是徒劳 -
- codesign --deep -s“我的名字”MayApp.app
- codesign --force -s“我的名字”MayApp.app
- codesign --force -s“我的名字”MayApp.app/Contents/PlugIns/jdk1.7.0_21.jdk
尝试在签署应用程序之前签署jdk,但应用程序没有任何反应。
在 Mavericks 之前一切正常,之前不需要在签名声明中使用 --deep 参数。
如果我正在构建没有签名应用程序的应用程序,那么它启动正常!!
请建议在 Mavericks 签署应用程序的任何方式。
谢谢
最佳答案
我的问题已通过将 Java 从 jdk7u21 更新到最新的 jdk7u45 得到解决,详细信息在此处添加 - How to preserve alias property while signing app?
谢谢
关于java - 如何使用 Xcode 5.0.2 在 Mavericks 上签署应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186202/