1

我正在尝试使用 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!

早些时候我问过无法启动基于 Mavericks 的应用程序,因为当时我的机器在 Mountain Lion 10.8.2 上,但现在我有 Mavericks。现在的情况类似于我们构建应用程序的服务器机器,因为 -

  • 爪哇:jdk7u21
  • 代码: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 签署应用程序的方式。

谢谢

4

1 回答 1

0

我的问题已通过将 Java 从 jdk7u21 更新到最新的 jdk7u45 得到解决,此处添加了详细信息 -如何在签署应用程序时保留别名属性?

谢谢

于 2013-11-27T10:58:46.657 回答