免终端:用Platypus三步把脚本打包成macOS应用

📅 2026/8/26 16:09:13
免终端:用Platypus三步把脚本打包成macOS应用
免终端用Platypus三步把脚本打包成macOS应用【免费下载链接】PlatypusCreate native macOS applications from command line scripts.项目地址: https://gitcode.com/gh_mirrors/pl/Platypus你写完了一个处理文件的脚本但需要用它的同事从没用过终端连怎么运行一个 .py 文件都不知道。Platypus 解决的就是这类问题它把命令行脚本包进一个标准的 macOS 应用程序包.app一种系统认得的特殊文件夹生成的应用能从 Finder 或 Dock 直接双击启动运行全程不需要命令行脚本输出会显示在你选定的窗口或菜单里。先说清Platypus能干什么和不能干什么 Platypus 是一个用 Objective-C 写的 macOS 开源开发者工具BSD 许可证2003 年起持续维护。它的原理不复杂把你的脚本和一个精简的执行二进制放进同一个 .app二进制读取应用内的 AppSettings.plist运行脚本再把输出按你选的界面逐行展示。你还可以在 Bundled Files 里添加支持文件它们会随脚本一起被复制进应用的 Resources 目录。适合快速做安装器、拖放工具、菜单栏小工具、启动器或把脚本交给非技术用户不适合构建复杂的交互式图形应用它不是 GUI 开发环境运行需要与用户通过标准输入对话的脚本如 Python 的input()、sudo 输密码三步跑通最小流程 先要拿到 Platypus 本身README 在作者官网给出了发布版下载链接约 3.5MB也可以从源码构建git clone https://gitcode.com/gh_mirrors/pl/Platypus cd Platypus make build_unsigned构建需要 Xcode 命令行工具产物在products目录里。之后的操作都在图形界面里完成。第一步 选脚本并让解释器自动识别打开 Platypus点 Select 按钮挑选脚本也可以直接把文件拖进窗口填好应用名。Platypus 会根据文件后缀和脚本首行的 shebang#!行猜测解释器通常不用手动设置猜错了就在 Script Type 下拉框里选或点 Args 按钮追加解释器参数。第二步 选界面类型和应用图标界面共六种None无窗口、Progress Bar进度条、Text Window文本窗口、Web View把输出当 HTML 渲染、Status Menu菜单栏、Droplet拖放窗口。拿不准就先选 Text Window。图标可用预设或导入 .icns 文件——后者在小尺寸下显示效果更好。第三步 点Create拿到成品应用点 Create 按钮应用就出现在你选择的目录里。想一边改脚本一边测试的话在弹出对话框里勾选 Create symlink应用会以符号链接引用原始脚本而不是复制一份。做出三种真实场景应用 让应用接收拖放的文件场景用户想把一堆图片发给你压缩。做法勾选 Accept dropped items在 Drop Settings 面板里用后缀名或 UTI 限定接受的文件类型文件被拖到应用图标上时路径会作为参数传给脚本再勾选 Accept dropped text 还能把拖进来的文本送进脚本的标准输入。效果用户不需要点任何按钮拖放就是操作。仓库 Examples 里的 ImageResizer用系统自带 sips 工具缩放图片和 TarGzipper把拖入的文件打包压缩就是这类应用。做一个菜单栏状态应用场景想让一个小工具常驻菜单栏。做法选 Status Menu 界面类型。每次点击状态项脚本就运行一次输出的每一行变成一个菜单项用户点某个菜单项时脚本会带着该项的文字作为参数再跑一次所以脚本能靠有没有参数区分是在列清单还是执行动作。MacbethMenu 示例就用这个套路把莎士比亚的诗句读出来。用profile配合命令行批量生成场景想把打包脚本应用纳入 CI 构建流程。做法在图形界面调好设置经 Profiles 菜单存成 .platypus 配置文件plist 格式再安装命令行工具platypus 二进制会装到 /usr/local/bin/装好后不再依赖图形界面一条命令即可重建应用/usr/local/bin/platypus -P myProfile.platypus MyApp.app效果配置只维护一份批量生成可重复。避开四个最容易踩的坑 ⚠️现象原因解决办法脚本输出最后才一次性出现语言输出缓冲Python 在 Args 里给解释器加-u关闭缓冲或在代码里 flushPerl 用$| 1脚本索要输入应用卡死生成的应用没有交互式 stdinsudo 或input()会一直等待需要提权时勾选 Run with root privileges脚本自身不要写 sudo首次打开提示 Gatekeeper 批准生成的应用默认未签名用codesign签名或让用户右键应用选打开脚本里的命令找不到GUI 启动的应用不加载用户 shell 环境变量解释器设/bin/bash并在 Args 加-l或脚本开头source ~/.bashrc在仓库里找到这些资料 完整文档全部界面类型、PROGRESS: / ALERT: 等脚本输出控制语法、完整 FAQDocumentation/Documentation.md18 个 .platypus 示例配置可在应用 Profiles 菜单直接打开Examples/命令行工具源码CLT/platypus_clt.m生成应用的执行逻辑如何启动脚本、如何捕获输出ScriptExec/SEController.m构建入口make build_unsigned目标定义在此MakefilePlatypus 把脚本变应用压缩成几次点击它的价值在于让非技术用户零门槛地用上你的脚本。建议下一步从 Profiles 菜单打开一个内置示例如 AlertMe点 Create 跑一遍整个闭环就清楚了。【免费下载链接】PlatypusCreate native macOS applications from command line scripts.项目地址: https://gitcode.com/gh_mirrors/pl/Platypus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考