日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 macOS 开发 - 打包 PKG(使用 Packages) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、軟件準(zhǔn)備
    • 1、Packages (推薦)
    • 2、PackageMaker
    • 3、Iceberg
    • 4、命令行
  • 二、打包 pkg 工程
    • 1、準(zhǔn)備材料、創(chuàng)建工程
      • 1.1 在桌面創(chuàng)建一個(gè)文件夾,放置需要安裝的文件
      • 1.2 打開(kāi) Packages 應(yīng)用
      • 1.3 添加項(xiàng)目信息
    • 2、添加 package 信息
      • 2.1 identifier 必須添加,否則會(huì)編譯不通過(guò)。
      • 2.2 在payload 添加需要安裝的文件
      • 2.3 添加 pre-install 腳本、post-install 腳本
    • 3、全局工程設(shè)置
      • 3.1 設(shè)置 pkg 包名等
      • 3.2 設(shè)置 introduction
      • 3.3 添加 readme
      • 3.4 destination select 和 installation 無(wú)法修改
      • 3.5 修改 installation type
      • 3.6 設(shè)置安裝背景圖片
    • 4、編譯
    • 5、修改pkg 安裝包
    • 6、pkg 簽名
  • 三、PKG 說(shuō)明
  • 四、參考


打包 dmg 文件可見(jiàn):https://blog.csdn.net/lovechris00/article/details/78029337


一、軟件準(zhǔn)備

可以安裝下面幾種軟件,本次以 Packages 為例,下載 Packages 即可。

1、Packages (推薦)

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


2、PackageMaker

是之前 Xcode 自帶的pkg 打包工具,網(wǎng)傳在 /Development/Utility 文件夾,但目前沒(méi)有這個(gè)文件夾,也不在 ~/library/Developer 這個(gè)文件夾。
正確方式是前往官網(wǎng)下載 Auxiliary Tools ,這個(gè)軟件集合了多款開(kāi)發(fā)者工具應(yīng)用,但最后發(fā)布時(shí)間是 2012年。
https://developer.apple.com/download/more/?=for Xcode


下載成功后,打開(kāi) Auxiliary Tools ,選中 PackageMaker,直接拖拽到應(yīng)用程序即可。PackageMaker 在 Auxiliary Tools 的 dmg包中,直接是個(gè) .app 文件。

相關(guān)打包教程:https://blog.csdn.net/zhangkongzhongyun/article/details/20700659


3、Iceberg

相關(guān)教程
https://www.xuebuyuan.com/809255.html


4、命令行

可使用 pkgbuild + productbuild + pkgutil 來(lái)制作安裝包。


二、打包 pkg 工程

1、準(zhǔn)備材料、創(chuàng)建工程


1.1 在桌面創(chuàng)建一個(gè)文件夾,放置需要安裝的文件

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


1.2 打開(kāi) Packages 應(yīng)用

Packages分為兩種模式,packages 軟件已經(jīng)說(shuō)明的比較清楚,如下圖
我們需要安裝 .app 文件和一個(gè) 驅(qū)動(dòng)程序,這里選擇 Distribution,它可以顯示更豐富的內(nèi)容。



1.3 添加項(xiàng)目信息


2、添加 package 信息

一個(gè) project 可以對(duì)應(yīng)多個(gè) packages,這里我們先修改 package 信息,后面修改全局的 project 信息。

2.1 identifier 必須添加,否則會(huì)編譯不通過(guò)。


可以設(shè)置安裝完成后,是否重啟應(yīng)用、退出用戶


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

選中 contents 里面的文件夾,然后選擇下面的+ 按鈕,即可添加文件到指定位置。
這個(gè)set 按鈕一般沒(méi)必要點(diǎn)擊。


文件可以添加到這個(gè)目錄樹(shù)下的任意地方。
這是我添加了之后的效果。


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

這兩個(gè)腳本的具體意思可參考:https://zhuanlan.zhihu.com/p/24895270

preinstall:針對(duì)單程序安裝包(pkg),該腳本會(huì)在preflight腳本運(yùn)行之后運(yùn)行;針對(duì)多程序安裝包(mpkg),該腳本會(huì)在用戶按下Install銨鈕后執(zhí)行,只會(huì)在用戶第一次安裝該程序時(shí)執(zhí)行。
postinstall:該腳本在程序安裝完之后才運(yùn)行。

常見(jiàn)的 preinstall (用來(lái)關(guān)閉、移除舊版本)

#!/usr/bin/env bash echo "Running PKGDemo script"# 關(guān)掉正在運(yùn)行的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

常見(jiàn)的 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

點(diǎn)擊 choose 即可選中腳本文件,點(diǎn)擊 remove 可以移除。


3、全局工程設(shè)置

3.1 設(shè)置 pkg 包名等

點(diǎn)擊左上方的 project 可以對(duì)這個(gè) pkg 工程進(jìn)行設(shè)置;
這里settings 界面中的 name,就是最后打包出來(lái)的name。


3.2 設(shè)置 introduction

這里如果不管,就會(huì)顯示下圖中默認(rèn)的英文字符;
點(diǎn)擊右下角的添加按鈕,右側(cè)列表就會(huì)新增一行;選中新增這一行的內(nèi)容,會(huì)顯示 choose 按鈕,可以選中本地的 txt 文件。


這里是我剛準(zhǔn)備的 txt 文件,選中后,內(nèi)容就會(huì)添加到這個(gè)面板。
在面板上無(wú)法修改這段內(nèi)容,只能修改本地的這個(gè) txt 文件。
如果修改了這個(gè) txt 文件,保存后,面板的內(nèi)容也會(huì)同步更新。


3.3 添加 readme

readme 默認(rèn)是灰色的,也就是不顯示;在安裝步驟中也不顯示。
但是如果你添加了 readme 相關(guān)的txt文件,就會(huì)顯示出來(lái)。


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


3.4 destination select 和 installation 無(wú)法修改


3.5 修改 installation type

這里一般不需要修改,但選中文件,在右側(cè)添加 title 和 description 后,內(nèi)容會(huì)不一樣。


這里是我修改后的效果


點(diǎn)擊右側(cè)的 requirement,可以對(duì)安裝的操作系統(tǒng)版本做要求。


3.6 設(shè)置安裝背景圖片

選擇最上方的 框,選中 background ,可以修改背景信息??梢园l(fā)現(xiàn)它屬于 introduction 這一步。


選擇show 右側(cè)的設(shè)置,改為 custom background,才能選擇圖片


選擇圖片,圖片就會(huì)顯示到我們的安裝面板。
可以調(diào)整圖片的對(duì)齊方式和顯示的適配方式。


到這里基本配置完成


4、編譯

選中窗口,點(diǎn)擊 Build --> build and run,會(huì)自動(dòng)編譯,并運(yùn)行pkg 安裝包。
你也可以只build,不run.



此前沒(méi)有設(shè)置這個(gè)界面,界面的顯示效果如圖:


因?yàn)樵O(shè)置了需要密碼,所以這里會(huì)彈窗提示用戶輸入密碼。


安裝成功了,可以去應(yīng)用程序文件夾(或者你添加的文件夾),檢查下需要安裝的文件是否存在了。


5、修改pkg 安裝包

本次編譯后,文件夾會(huì)變成如下:
下次更新App 版本時(shí),雙擊這個(gè)文件打開(kāi),并修改里面的內(nèi)容,再次build,就可以打一個(gè)新的 pkg 包。


6、pkg 簽名

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


三、PKG 說(shuō)明

pkg格式的軟件安裝其實(shí)就是把壓縮在pkg里的文件解壓出來(lái)并放置特定的路徑下,再賦予它們特定的權(quán)限。

pkg相當(dāng)于win下面的大型安裝包,比如大型的micoffice軟件,這種軟件一般需要注冊(cè),而且安裝時(shí)需要機(jī)主的權(quán)限。

dmg相當(dāng)于win下面的rar壓縮軟件包。當(dāng)然mac也能解壓rar軟件,很多都可以直接解壓,然后拖到你需要的地方使用。

在數(shù)據(jù)產(chǎn)品中,PKG是塞班系統(tǒng)文件,也是Mac OS X中的pkg安裝包,類似Windows系統(tǒng)中的.msi和.exe安裝包,但給人的感覺(jué)更為高效和統(tǒng)一,或許這就是蘋果系統(tǒng)更為高效的一個(gè)原因吧。由于 一般人使用塞班系統(tǒng)中pkg文件較少,所以這里主要講講較為常用的MAC系統(tǒng)中的PKG包的使用。


四、參考

  • 郭宏:MacOS 開(kāi)發(fā) — 程序打包生成pkg文件
    https://blog.csdn.net/heroguo_jp/article/details/78049964
  • 非蟲(chóng):PKG安裝包的管理與文件格式分析
    https://zhuanlan.zhihu.com/p/24895270

總結(jié)

以上是生活随笔為你收集整理的macOS 开发 - 打包 PKG(使用 Packages)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。