2013-11-22 4 views
0

У меня есть исполняемая программа терминала (построена на MacOS из кода Haskell с GHC), которая запускается, когда я дважды щелкаю ее в Finder. Я хочу разместить это на своем веб-сайте, из которого люди могут загрузить и запустить его из своего Finder, дважды щелкнув.загружаемый и перезагружаемый исполняемый скрипт

Как-то в этом обмене файл теряет бит «+ x», так что при его повторной загрузке он не может быть запущен двойным щелчком. Я все еще могу запустить его, но сначала мне нужно сделать «chmod + x». Что я могу сделать, чтобы загруженный файл по умолчанию исполнялся? Должен ли я упаковать его внутри файла «.app»? Сейчас это «.command».

ответ

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" 

App пакеты не будут отображаться терминальный вывод или сообщения об ошибках, так что если вам нужно, что вы должны держать его в качестве исходного исполняемого файла. Кроме того, простые приложения, созданные выше, не будут иметь графический интерфейс и, похоже, не будут реагировать и выйдут, когда они закончатся.

Кроме того, если вы получите следующее сообщение, возможно, это связано с тем, что исполняемый файл слишком короткий (добавьте к нему больше символов) или из-за ограничений на карантин (попробуйте отредактировать исполняемый файл и сохраните его с помощью приложения, такого как TextEdit, чтобы сделать это доверенный).

+0

Zipping был самым простым способом - спасибо большое! – user2744010

Смежные вопросы