2013-11-22 57 views
0

我有一個可執行的終端程序(基於GHC的Haskell代碼的MacOS構建),當我在Finder中雙擊它時運行。我想把它放在我的網站上,人們可以通過雙擊從Finder下載並運行它。上傳和redownloading可執行腳本

不知怎的,在這個交換中文件丟失了「+ 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" 

應用程序包將不會顯示終端輸出或報告錯誤,所以如果你需要,你應該把它作爲原料的可執行文件。此外,以上述方式製作的簡單應用程序將不具有GUI,並且看起來不會響應,並在完成運行時退出。另外,如果您收到以下消息,可能是因爲可執行文件太短(向其中添加更多字符),或者因爲隔離限制(嘗試編輯可執行文件並將其與像TextEdit這樣的應用程序一起保存以使其可執行信任)。

+0

壓縮是最簡單的方法 - 非常感謝! – user2744010