上传和重新下载可执行脚本

时间:2013-11-22 18:55:16

标签: macos executable sh .app

我有一个可执行的终端程序(在带有GHC的Haskell代码的MacOS上构建),当我在Finder中双击它时运行。我想把它放在我的网站上,人们可以通过双击从他们的Finder下载并运行它。

在这个交换中,文件丢失了" + x"这样当它重新下载时就不能再双击了。我仍然可以运行它,但我必须做" chmod + x"第一。我该怎么做才能使下载的文件默认可执行?我是否必须将其打包在" .app"文件?现在它" .command"。

1 个答案:

答案 0 :(得分:0)

无论它是否是应用程序包的一部分,可执行文件本身都需要......可执行。为了确保可执行性,您应该将其放在zip或dmg文件中,这将保留其“可执行”标志。


如果你想把它变成一个应用程序包,有一个简单的方法可以做到这一点。如果可执行文件名为PROGRAMNAME,则只需将其放在名为PROGRAMNAME.app的文件夹中。双击应运行该文件。

如果您想创建更合适的应用包,请使用以下命令:

APP_NAME='My Awesome App.app'
EXE_NAME='PROGRAMNAME'

mkdir -p "$APP_NAME"/Contents
defaults write "`pwd`"/"$APP_NAME"/Contents/Info CFBundleExecutable "$EXE_NAME"
mkdir "$APP_NAME"/Contents/MacOS
cp "$EXE_NAME" "$APP_NAME"/Contents/MacOS
chmod a+x "$APP_NAME"/Contents/MacOS/"$EXE_NAME"

应用程序包不会显示终端输出或报告错误,因此如果您需要,应将其保留为原始可执行文件。此外,以上述方式制作的简单应用程序将没有GUI,并且似乎没有响应,并且在完成运行时将退出。

此外,如果您收到以下消息,可能是因为可执行文件太短(向其中添加更多字符)或者因为隔离限制(尝试编辑可执行文件并使用TextEdit等应用程序保存它以使其受信任)。