迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

如何从 shell 脚本创建简单的 Mac 应用程序

作者:迹忆客 最近更新:2023/01/06 浏览次数:

基本上,Mac 应用程序有一个 .app 扩展名,但它不是真正的文件——它是一个包。 我们可以通过在 Finder 中导航到应用程序,右键单击它然后选择“Show Package Contents”来查看应用程序的内容。

show package contents

内部文件夹结构可能因应用程序而异,但我们可以确定每个 Mac 应用程序都会有一个包含 MacOS 子文件夹的目录文件夹。 在 MacOS 目录中,有一个无扩展名的文件,其名称与应用程序本身完全相同。 这个文件实际上可以是任何东西,但最简单的形式是一个 shell 脚本。 事实证明,这个文件夹/文件结构是创建一个功能性应用程序所需要的!

进入 appify

在这一发现之后,Thomas Aylott 想出了一个聪明的“appify”脚本,可以让我们轻松地从 shell 脚本创建 Mac 应用程序。 代码如下所示:

#!/usr/bin/env bash

APPNAME=${2:-$(basename "${1}" '.sh')};
DIR="${APPNAME}.app/Contents/MacOS";

if [ -a "${APPNAME}.app" ]; then
    echo "${PWD}/${APPNAME}.app already exists :(";
    exit 1;
fi;

mkdir -p "${DIR}";
cp "${1}" "${DIR}/${APPNAME}";
chmod +x "${DIR}/${APPNAME}";

echo "${PWD}/$APPNAME.app";

如果你习惯于使用 UNIX,那么安装和使用 appify 非常简单。 (我不是,所以我必须弄清楚这一点。)以下是安装方法:

  1. 将脚本保存到 PATH 中的目录并将其命名为 appify(无扩展名)。 我选择放在**/usr/local/bin** ,需要root权限。
  2. 启动 Terminal.app 并输入 sudo chmod +x /usr/local/bin/appify 使 appify 在没有 root 权限的情况下可执行。

之后,我们只需启动 Terminal.app 并输入如下内容,即可基于任何 shell 脚本创建应用程序:

$ appify your-shell-script.sh "Your App Name"

显然,这将创建一个名为 Your App Name.app 的独立应用程序,它会执行 your-shell-script.sh 脚本。

之后,如果需要,我们可以非常轻松地向应用程序添加自定义图标。

添加自定义应用程序图标

  1. 使用我们想要的图标创建 .icns 文件或 512×512 PNG 图像,并将其复制到剪贴板 ⌘ + C。 (或者,按照步骤 2 和 3 中的说明从现有应用程序复制它。)
  2. 右键单击要更改其图标的 .app 文件并选择“获取信息”(或选择该文件并按 ⌘ + I)。
  3. 单击一次选择左上角的应用程序图标。 如果你做对了,它会得到一个微妙的蓝色轮廓。
  4. 现在点击 ⌘ + V(粘贴)用新图标覆盖默认图标。

请注意 ,这适用于任何文件或文件夹,而不仅仅是 .app 文件。


示例

Chrome/Chromium 引导程序

我喜欢在启用一些命令行开关或标志的情况下运行 Chrome/Chromium。 在 Windows 上,我们可以创建快捷方式并在其属性中设置我们想要的参数; 在 Mac 上,我们每次都需要从命令行启动它。 好吧,不再是了:)

#!/usr/bin/env bash
/Applications/Chromium.app/Contents/MacOS/Chromium --enable-benchmarking --enable-extension-timeline-api&

最后的 & 不是错字; 它用于确保 Chromium 在单独的线程中启动。 如果没有 &,Chromium 将在我们退出 Terminal.app 时立即退出。

从目录启动本地 Web 服务器

假设我们正在处理一个项目并且想从 Web 服务器调试它。 以下 shell 脚本将使用 Python 从特定目录启动本地 Web 服务器,并在我们选择的默认浏览器中打开索引页面。 应用后,你甚至不需要再打开终端了。

#!/usr/bin/env bash
cd ~/Projects/Foo/
python -m SimpleHTTPServer 8080 &> /dev/null &
open http://localhost:8080/

不用说,可能性是无限的。 再举一个例子,你可以很容易地创建一个应用程序来缩小特定文件夹中的所有 JavaScript 和 CSS 文件。 有什么好主意吗? 通过发表评论告诉我们!

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Mac 上更改 MySQL 根密码

发布时间:2024/03/25 浏览次数:243 分类:MySQL

本文教你如何在 OSX 上更改 MySQL root 用户密码。我们将使用 XAMPP,因此你可以使用 MySQL 控制台更改密码。

使用 Mac 终端打开 MySQL

发布时间:2024/03/25 浏览次数:272 分类:MySQL

本文将教你如何使用 Mac 终端打开 MySQL。我们将向你展示如何在 macOS Catalina 及更高版本上执行此操作。此外,macOS Mojave 及更早版本。

在 Mac OS 上设置 C#

发布时间:2024/02/03 浏览次数:263 分类:编程语言

在本文中,了解设置 C# 语言以在 Mac OS 上进行开发的过程。本文将演示 Mac OS 上 C# 语言的完整设置和基本语法。在 Mac OS 上安装和设置 C#

在 Mac 上安装 Pip3

发布时间:2023/12/21 浏览次数:170 分类:Python

这篇文章向你展示了使用 Python 在 Mac 上安装 pip3 的方法。你可以使用两种主要方法通过 Python 在 Mac 上安装 pip3:get-pip.py 文件和 Homebrew 包管理器。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便