无法启动基于Mavericks构建的App

时间:2013-11-18 08:24:58

标签: java xcode macos osx-lion osx-mavericks

我的Java应用程序的应用程序构建在另一台服务器机器上。此服务器机器现已升级为Mavericks + xcode 5.1。之前我遇到的问题是没有使用Mavericks + xcode 5.1更新在服务器计算机上签署我的应用程序,我按照帖子Failed to sign Mac OS X app中提到的进行了更改

签名应用程序的更改是 -

#!/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!

以上更改使我的应用成功签名,但现在应用程序未启动,尝试使用此命令抛出以下错误 -

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.

环境是 -

在服务器计算机

  1. Mac版:小牛
  2. XCode版本:5.0
  3. Java版:Library / Java / JavaVirtualMachines / jdk1.7.0_21.jdk /
  4. 我的测试机器

    1. Mac版:Mountain Lion 10.8.2
    2. Xcode版本:版本4.6(4H127)
    3. Java版:Library / Java / JavaVirtualMachines / jdk1.7.0_21.jdk /
    4. 在我的机器上一切正常,即能够构建,运行应用程序和签署应用程序。但是使用相同的代码,构建的应用程序是签名但不会在我的机器以及Mavericks机器上启动。

      在护目镜上,我发现 - http://www.java.com/en/download/faq/java_mac.xml

      Apple的OS X已禁用Oracle的Java版本7u25及更低版本。更新到最新版本将允许Java在Mac OS X上运行。

      如果我将旧的JDK从另一个正在运行的应用程序从/Applications/MyAnotherApp.app/Contents/PlugIns/jdk1.7.0_21.jdk复制到MyApp,使我的应用程序启动。

      只更新Java版本解决了JDK的权限问题吗?

      如何解决此问题,因为MyApp将始终在使用Mavericks + Xcode 5.1更新的服务器上构建

      谢谢

2 个答案:

答案 0 :(得分:0)

kLSUnknownErr (-10810)

An unknown error has occurred. 

基本上,这意味着Launch Services框架行为不端,并且在尝试启动应用程序时遇到错误。遇到此错误消息时,最好重新启动计算机

查看this帖子。

答案 1 :(得分:0)

我没有启动应用程序的问题已通过将jdk7u21中的Java更新为最新的jdk7u45来解决,此处添加了详细信息 - How to preserve alias property while signing app?

由于