
在 macOS 上,如果你要打包 Script 到應用程式有很多方法,我常用的是 Automator 或是用 PyInstaller。
雖然這兩個工具一般情況下還算夠用,但就是有時候打包過程有點囉嗦(由其是 PyInstaller 還必須用 Shell 指令打包;而 Automator 打包的程式在換個環境用還會有 Gatekeeper 簽名憑證的問題,那這樣要分享開發的成果就變得還要自簽憑證。最後的指向都會是往 App Store 開發者的環境…… 😮💨
不過最近在改 Sigil 的流程中,寫了一堆補足 Sigil 的 Plug-in,然後在偶然間發現了一個有趣的工具「Platypus」。
Platypus(鴨嘴獸)是什麼樣的一款工具
Platypus 是一款專為 macOS 開發者設計的工具,其核心功能是將 Script(例如 Shell、Python、Perl、Ruby、Tcl、JavaScript 或 PHP)快速的封裝成原生的 macOS 應用程式(.app)。這款工具自 2003 年起便持續開發與維護,是一款以 Objective-C 與 Cocoa 框架編寫的免費開源軟體。
Platypus 的核心功能與優勢
Platypus 的主要用途在於簡化腳本的分享與使用,讓不熟悉終端機(Terminal)介面的使用者也能透過圖形介面來執行複雜的程式。它具備以下關鍵特性:

- 多樣化的圖形介面:開發者可以為 Script 選擇不同的介面類型,包括執行進度條(Progress Bar)、文字對話窗口(Text Window)、網頁視圖(Web View)、狀態欄選單(Status Menu)或拖放應用(Droplet)。
- 高度整合系統功能:Platypus 支援接收拖放的文件或文字作為參數、註冊 URI 協議(如
myscheme://)、發送系統通知,以及在背景執行。 - 權限管理:應用程式可以透過 macOS Security Framework 以 root 權限執行腳本。
- 自動化與配置:提供命令行工具(platypus)與「設定檔(Profiles)」功能,方便整合進大型的構建流程中。
這個工具很適合現階段還不想碰 Xcode 的人

如果不用 Platypus,開發者若想手動在 Mac 上將一個開源腳本打包成符合規範的應用程式,會面臨非常繁瑣的步驟:
- 複雜的目錄結構 (Bundle Structure):macOS 的應用程式實際上是一個特殊的資料夾(Bundle),必須包含特定的層級,例如
Contents/MacOS/(存放執行檔)、Contents/Resources/(存放資源與腳本)以及必備的Info.plist設定檔。 - 編寫包裝執行檔 (Wrapper Binary):腳本本身無法直接作為 Mac 應用的入口,開發者必須親自編寫並編譯一個二進位執行檔,用來啟動腳本、捕捉其輸出(stdout/stderr),並將其導向至圖形介面。
- UI 與資源處理:若需要圖形介面,必須使用 Xcode 處理 Nib 文件。此外,還需要手動製作並封裝
.icns格式的圖標文件。 - 處理 GateKeeper 與安全限制:現代 macOS 有嚴格的安全檢查。手動打包的應用若未經過代碼簽署(codesign)與公證(notarization),使用者開啟時會遭到系統阻攔。
- 環境與參數傳遞:手動處理如何將拖放的文件路徑正確傳遞給腳本作為參數(Arguments),或處理 stdin 的輸入限制,都是技術上的難點。
Platypus 將上述所有複雜的過程自動化,開發者只需要幾次點擊,就能完成原本需要編寫大量代碼與手動調整配置的工作。
我對這個 Platypus 的看法
想像你要把一封手寫信(你的腳本)寄給一個不識字的人。手動打包就像是你得自己砍樹造紙、製作信封、學習郵局複雜的編碼規則,最後還得去申請政府的官印證明這不是偽造信件。(簽憑證)
而 Platypus 就像是一個全自動郵寄機器人,你只要把信交給它,它就會自動幫你裝進漂亮的盒子裡、貼上正確的標籤並蓋好所有合法的印章,讓收信人只要打開蓋子就能看到內容。

其實本來 Apple 的 Automator 和 Shortcuts(捷徑)就是為了開發者降低門檻的設計,結果 Apple 又把 Automator 的強大功能用憑證鎖在個人使用的環境裡面,再往上就得直接往開發者跳階,完全忽視了中間還有一群在用開源苟延殘喘人。
我認為開源明明就有一股不小的商機,由其是 B2B 的應用更為廣大。可惜 Apple 就只會佈建 B2C 的環境,從賈伯斯到現在的庫克,都從未正眼看過這個商機。
要上架到 App Store 應該還是需要用 Cocoa API,即便 Platypus 這個方式還需要自己簽署才能執行,但是對於小範圍的佈建也應該足夠,所以它還是一個不錯的開源軟件。
Platypus 作者是來自冰島的軟體工程師「Sveinbjorn Thordarson」,他 Blog 上還有幾個很棒的 Open Source 看起來也很不錯,有機會我會再分享他的其他作品。











