Mac打包Unix可执行文件为pkg
方式一:通过packages页面打包
1.下载packages app
2.点击new project,创建新项目
3. 设置project version等信息
一个 project 可以对应多个 packages,这里我们先修改 package 信息,后面修改全局的 project 信息。
4. 在packages的payload里添加unix文件
5. 添加 pre-install 脚本、post-install 脚本
因为我pkg安装包执行后会将unix文件安装到Application下,所以我这里直接在post-install脚本里以sudo方式运行即可:
postinstall.sh:
#!/bin/bash
sudo /Applications/ziyi_darwin_arm64
# 记录日志到指定文件
echo "postinstall.sh executed at $(date)" >> /var/log/postinstall.log
exit 0
6. 设置安装页面介绍文案presentation
7. build项目,打包pkg
选中Build-点击Build And Run:
然后就弹出了安装页面,至此大工搞成:
我们打包好的pkg文件默认放在了~/项目名/build目录下
访问服务接口,可以看到服务已经安装成功:
方式二:通过pkgbuild命令打包
pkgbuild的所有参数如下:
-root:指定要打包的文件夹的路径。
-identifier:指定包的标识符(ID)。
-install-location:指定安装包的安装位置。
-scripts:指定安装前后脚本文件的路径。
-version:指定包的版本号。
-sign:指定签名文件的路径,以进行安全签名。
-keychain:指定要用于签名的钥匙链。
-timestamp:指定时间戳服务器的URL,用于验证签名。
-verbose:显示详细信息。
-nopayload:仅创建空载荷。
-filter:指定要包含或排除的文件和文件夹。
-template:指定要使用的pkgproj模板文件的路径。
sudo pkgbuild --root /Users/ziyi2/GolandProjects/ziyi/build --identifier com.test.pkg.project --version 1.0.1 --install-location /tmp/ziyi_pkg --scripts /Users/ziyi2/scripts /Users/ziyi2/Desktop/project.pkg
# --root /Users/ziyi2/GolandProjects/ziyi/build:指定要打包的文件夹
# --install-location /tmp/ziyi_pkg 指定安装包的安装位置(tmp目录,默认如果文件超过3天没人访问则被删除)
# --scripts /Users/ziyi2/scripts 指定preinstall、postintall脚本所在文件夹(在安装前、安装后执行的脚本)
#### 注意:脚本文件名必须为:preinstall、postintall且有可执行权限