是什么让OS X应用程序无法打开错误" LSOpenURLsWithRole()失败,错误-10810"?

时间:2015-01-23 08:13:34

标签: macos app-bundle

我正在研究OS X应该是一个非常简单的应用程序包。我的操作系统是版本10.7.5。在这种情况下,应用程序是一个shell脚本。

Kerkerkruip.app/Contents/Info.plist

<?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>CFBundleExecutable</key>
    <string>Kerkerkruip</string>
    <key>CFBundleIconFile</key>
    <string>Kicon.icns</string>
    <key>CFBundleIdentifier</key>
    <string>org.kerkerkruip.Kerkerkruip</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>Kerkerkruip</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <!--<key>CFBundleSignature</key>
    <string>????</string>-->
    <key>CFBundleVersion</key>
    <string>9.0.1</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.4</string>
    <key>NSHumanReadableCopyright</key>
    <string>© 2011-2015 by the Kerkerkruip team</string>
    <!--<key>NSMainNibFile</key>
    <string>MainMenu</string>-->
    <!--<key>NSPrincipalClass</key>
    <string>NSApplication</string>-->
</dict>
</plist>

Kerkerkruip.app/Contents/MacOS/Kerkerkruip

#!/usr/bin/env bash
echo "This is a blank script." 1>&2
exit 1

当我尝试打开应用程序时,收到以下错误消息:

$ open Kerkerkruip.app/
The application cannot be opened because it has an incorrect executable format.

脚本设置为+ x。我见过this question on SuperUser但没有任何帮助 - 我的脚本超过27个字符。

编辑:按照说明in this other question重建我的应用程序的启动服务数据库后,尝试立即打开它会产生:

LSOpenURLsWithRole() failed with error -10810 for the file /Users/dannii/Documents/kerkerkruip/packages/osx/Kerkerkruip.app.

1 个答案:

答案 0 :(得分:3)

我做了一些测试,并且能够重现你的第二个错误。

  

LSOpenURLsWithRole()因文件/PATH/TO/Kerkerkruip.app错误而错误-10810。

经过实验,看起来问题是由于您的shell脚本退出时出现错误代码1。如果您exit的成功代码为0,则不会发生错误。

实施例

#!/usr/bin/env bash
echo "This is a blank script." 1>&2
exit 0