macOS 开发 - 打包 PKG(使用 Packages)

文章目录

  • 一、软件准备
    • 1、Packages (推荐)
    • 2、PackageMaker
    • 3、Iceberg
    • 4、命令行
  • 二、打包 pkg 工程
    • 1、准备材料、创建工程
      • 1.1 在桌面创建一个文件夹,放置需要安装的文件
      • 1.2 打开 Packages 应用
      • 1.3 添加项目信息
    • 2、添加 package 信息
      • 2.1 identifier 必须添加,否则会编译不通过。
      • 2.2 在payload 添加需要安装的文件
      • 2.3 添加 pre-install 脚本、post-install 脚本
    • 3、全局工程设置
      • 3.1 设置 pkg 包名等
      • 3.2 设置 introduction
      • 3.3 添加 readme
      • 3.4 destination select 和 installation 无法修改
      • 3.5 修改 installation type
      • 3.6 设置安装背景图片
    • 4、编译
    • 5、修改pkg 安装包
    • 6、pkg 签名
  • 三、PKG 说明
  • 四、参考


打包 dmg 文件可见:https://blog.csdn.net/lovechris00/article/details/78029337


一、软件准备

可以安装下面几种软件,本次以 Packages 为例,下载 Packages 即可。

1、Packages (推荐)

下载地址:http://s.sudre.free.fr/Software/Packages/about.html


2、PackageMaker

是之前 Xcode 自带的pkg 打包工具,网传在 /Development/Utility 文件夹,但目前没有这个文件夹,也不在 ~/library/Developer 这个文件夹。
正确方式是前往官网下载 Auxiliary Tools ,这个软件集合了多款开发者工具应用,但最后发布时间是 2012年。
https://developer.apple.com/download/more/?=for Xcode

macOS 开发 - 打包 PKG(使用 Packages)_第1张图片


下载成功后,打开 Auxiliary Tools ,选中 PackageMaker,直接拖拽到应用程序即可。PackageMaker 在 Auxiliary Tools 的 dmg包中,直接是个 .app 文件。

相关打包教程:https://blog.csdn.net/zhangkongzhongyun/article/details/20700659

macOS 开发 - 打包 PKG(使用 Packages)_第2张图片


3、Iceberg

相关教程
https://www.xuebuyuan.com/809255.html


4、命令行

可使用 pkgbuild + productbuild + pkgutil 来制作安装包。


二、打包 pkg 工程

1、准备材料、创建工程


1.1 在桌面创建一个文件夹,放置需要安装的文件

比如我的文件夹叫做 PKGDemo,里面放上我需要安装的 App 文件


1.2 打开 Packages 应用

Packages分为两种模式,packages 软件已经说明的比较清楚,如下图
我们需要安装 .app 文件和一个 驱动程序,这里选择 Distribution,它可以显示更丰富的内容。

macOS 开发 - 打包 PKG(使用 Packages)_第3张图片


macOS 开发 - 打包 PKG(使用 Packages)_第4张图片


1.3 添加项目信息

macOS 开发 - 打包 PKG(使用 Packages)_第5张图片


2、添加 package 信息

一个 project 可以对应多个 packages,这里我们先修改 package 信息,后面修改全局的 project 信息。

2.1 identifier 必须添加,否则会编译不通过。


可以设置安装完成后,是否重启应用、退出用户


2.2 在payload 添加需要安装的文件

选中 contents 里面的文件夹,然后选择下面的+ 按钮,即可添加文件到指定位置。
这个set 按钮一般没必要点击。


文件可以添加到这个目录树下的任意地方。
这是我添加了之后的效果。


2.3 添加 pre-install 脚本、post-install 脚本

这两个脚本的具体意思可参考:https://zhuanlan.zhihu.com/p/24895270

preinstall:针对单程序安装包(pkg),该脚本会在preflight脚本运行之后运行;针对多程序安装包(mpkg),该脚本会在用户按下Install铵钮后执行,只会在用户第一次安装该程序时执行。
postinstall:该脚本在程序安装完之后才运行。

常见的 preinstall (用来关闭、移除旧版本)

#!/usr/bin/env bash
echo "Running PKGDemo script"

# 关掉正在运行的app
echo "Killing PKGDemo"
killall "PKGDemo"

echo "Finding old version of PKGDemo"
sudo rm -rf /Applications/PKGDemo.app 
echo "Removed old versions of PKGDemo in Applications, if any."
echo "Ran PKGDemo preinstall script success."
exit 0

常见的 postinstall

#!/usr/bin/env bash

echo "Running myframeworktest.app postinstall script."
echo "Installing myframework.framework."

rm -rf ~/Library/Frameworks/myframework.framework
mkdir ~/Library/Frameworks/myframework.framework
cp -r /Applications/myframeworktest.app/Contents/Frameworks/myframework.framework/* ~/Library/Frameworks/myframework.framework

chmod -R 6777 ~/Library/Frameworks/myframework.framework
echo "Ran myframeworktest.app postinstall script."

exit 0

点击 choose 即可选中脚本文件,点击 remove 可以移除。


3、全局工程设置

3.1 设置 pkg 包名等

点击左上方的 project 可以对这个 pkg 工程进行设置;
这里settings 界面中的 name,就是最后打包出来的name。


3.2 设置 introduction

这里如果不管,就会显示下图中默认的英文字符;
点击右下角的添加按钮,右侧列表就会新增一行;选中新增这一行的内容,会显示 choose 按钮,可以选中本地的 txt 文件。


这里是我刚准备的 txt 文件,选中后,内容就会添加到这个面板。
在面板上无法修改这段内容,只能修改本地的这个 txt 文件。
如果修改了这个 txt 文件,保存后,面板的内容也会同步更新。


3.3 添加 readme

readme 默认是灰色的,也就是不显示;在安装步骤中也不显示。
但是如果你添加了 readme 相关的txt文件,就会显示出来。


这里是我添加的 readme.txt 文件。


3.4 destination select 和 installation 无法修改


3.5 修改 installation type

这里一般不需要修改,但选中文件,在右侧添加 title 和 description 后,内容会不一样。


这里是我修改后的效果


点击右侧的 requirement,可以对安装的操作系统版本做要求。


3.6 设置安装背景图片

选择最上方的 框,选中 background ,可以修改背景信息。可以发现它属于 introduction 这一步。


选择show 右侧的设置,改为 custom background,才能选择图片


选择图片,图片就会显示到我们的安装面板。
可以调整图片的对齐方式和显示的适配方式。


到这里基本配置完成


4、编译

选中窗口,点击 Build --> build and run,会自动编译,并运行pkg 安装包。
你也可以只build,不run.


macOS 开发 - 打包 PKG(使用 Packages)_第6张图片


此前没有设置这个界面,界面的显示效果如图:
macOS 开发 - 打包 PKG(使用 Packages)_第7张图片


因为设置了需要密码,所以这里会弹窗提示用户输入密码。
macOS 开发 - 打包 PKG(使用 Packages)_第8张图片


安装成功了,可以去应用程序文件夹(或者你添加的文件夹),检查下需要安装的文件是否存在了。
macOS 开发 - 打包 PKG(使用 Packages)_第9张图片


5、修改pkg 安装包

本次编译后,文件夹会变成如下:
下次更新App 版本时,双击这个文件打开,并修改里面的内容,再次build,就可以打一个新的 pkg 包。

macOS 开发 - 打包 PKG(使用 Packages)_第10张图片


6、pkg 签名

可前往下方链接查看:
https://blog.csdn.net/lovechris00/article/details/80965744


三、PKG 说明

pkg格式的软件安装其实就是把压缩在pkg里的文件解压出来并放置特定的路径下,再赋予它们特定的权限。

pkg相当于win下面的大型安装包,比如大型的micoffice软件,这种软件一般需要注册,而且安装时需要机主的权限。

dmg相当于win下面的rar压缩软件包。当然mac也能解压rar软件,很多都可以直接解压,然后拖到你需要的地方使用。

在数据产品中,PKG是塞班系统文件,也是Mac OS X中的pkg安装包,类似Windows系统中的.msi和.exe安装包,但给人的感觉更为高效和统一,或许这就是苹果系统更为高效的一个原因吧。由于 一般人使用塞班系统中pkg文件较少,所以这里主要讲讲较为常用的MAC系统中的PKG包的使用。


四、参考

  • 郭宏:MacOS 开发 — 程序打包生成pkg文件
    https://blog.csdn.net/heroguo_jp/article/details/78049964
  • 非虫:PKG安装包的管理与文件格式分析
    https://zhuanlan.zhihu.com/p/24895270

你可能感兴趣的:(Apple,开发,pkg,打包,packages,Mac,打包,pkg,pkg,mac)