我正在研究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.
答案 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