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
下載成功后,打開 Auxiliary Tools ,選中 PackageMaker,直接拖拽到應用程序即可。PackageMaker 在 Auxiliary Tools 的 dmg包中,直接是個 .app 文件。
相關打包教程:https://blog.csdn.net/zhangkongzhongyun/article/details/20700659
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,它可以顯示更豐富的內容。
1.3 添加項目信息
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 bashecho "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.frameworkchmod -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.
此前沒有設置這個界面,界面的顯示效果如圖:
因為設置了需要密碼,所以這里會彈窗提示用戶輸入密碼。
安裝成功了,可以去應用程序文件夾(或者你添加的文件夾),檢查下需要安裝的文件是否存在了。
5、修改pkg 安裝包
本次編譯后,文件夾會變成如下:
下次更新App 版本時,雙擊這個文件打開,并修改里面的內容,再次build,就可以打一個新的 pkg 包。
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
總結
以上是生活随笔為你收集整理的macOS 开发 - 打包 PKG(使用 Packages)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JS 逆向百例】吾爱破解2022春节解
- 下一篇: Android框架排行榜