Mac pkg打包

20 篇文章 1 订阅

自己测试后发现,如果不需要签名,内部使用的mac app,用默认的打包方法却是也是很快捷的说(Disk Utility)
******这里写图片描述
下面文字基本可以不看
=====================
在mac上开发我们经常会需要进行打包(package)来生成安装文件,很自然的我们就会使用到 PackageMaker,这是 mac 自带的,也是 xcode 推荐使用的,但不幸的是,这个PackageMake 非常不智能,也不够人性化,导致很多新手开始使用 PackageMaker 的时候频频受阻,官方的 tutorial 也只有一篇,出了问题没有一个很好的解决方式,最重要的是,使用 PackageMaker 后,很难对打包的文件(pmdoc)进行版本管理,最终让我选择了放弃。

经过不断的寻找,最后终于找到了一款比较好用的打包工具 Iceberg, 现在推荐给大家,尤其是新手,劝你不要使用 PackageMaker 了,它只会给你带来苦恼。

下载地址:http://s.sudre.free.fr/Software/files/Iceberg.dmg

官方教程:http://s.sudre.free.fr/Software/documentation/Iceberg/English.lproj/documentation/index.html

教程写的比较详细,所有如何安装等我就不详细写了,大家如果遇到问题可以给我留言,我会给你耐心解答,我写一下使用需要注意的几个点:

  1. 推荐使用 Iceberg 创建 mpkg 而不是 pkg, 因为 mpkg 更方便管理。

2.如果文件安装的路径没有在默认路径中,要先把路径创建成功后,把当前路径设置为 default destination,再使用add files功能;

3.如果想要把生成的components 的pkg 集成到 mpkg一个文件里,要选择安装到 /contents/Resources 里面。

另外,我主要想对比一下 PackageMaker 和 Iceberg, 以便让大家做一个正确的选择:

(1)guide是否全面?

PackageMaker: 比较少,不详细,官方的有一篇:PackageMaker User Guide

Iceberg: 相对全面一些,Iceberg User Guide

(2)是否支持模块化?

PackageMaker: 不能进行模块化,只能一次性把所有文件打包到一个pkg中,非常不方面于多版本多模块的管理。
Iceberg: 支持模块化,可以把要打包的文件分成小的components,然后需要哪个component,编译的是选择哪个component,这样的好处就是,如果每个版本都有不同的模块或新功能放出去的时候,你就不会乱,不用担心会不会出不该放出的文件。

(3)打包文件是否可以方面进行版本管理?

PackageMaker: 不方面版本管理,因为 pmdoc 里面的 xml文件就是一大坨,你修改了一条,就会导致所有的条目都有修改,当然,你可以每次打版本后手动对它的xml 文件tidy.

Iceberg: 比PackageMaker要好,因为分行了,另外,由于 Iceberg 的 components 的功能,让版本管理变得非常容易。

(3)是否经常出现crash 或莫名其妙的问题?

PackageMaker: 我这里经常crash, 而且会出现过让我崩溃的问题:我明明没有选中A文件,但是打出来的pkg安装后却有A文件,崩溃了一天,后来放弃了。

Iceberg:用了一段时间,没有遇见crash或诡异问题。

(4)功能比较,哪个更强大?

PackageMaker: 支持基本打包功能,比如我想加一个背景图片什么的就无法实现。

Iceberg: 除了支持基本打包功能,还有一些出彩的地方,这个要大家试过才知道,非常好用。

=========================================

核心重点其实是
核心提示:p=1219OSX程序打包大概有两种,其一就打成pkg,另一就是dmg了,将做好的App打包起来就可以变成最终的产品.pkg的方式:个人比较推荐用工具Iceberg来打包(当然也可以用apple的打…

OSX程序打包大概有两种,其一就打成pkg,另一就是dmg了,将做好的App打包起来就可以变成最终的产品.

pkg的方式:
个人比较推荐用工具Iceberg来打包(当然也可以用apple的打包工具,这里不作介绍),这个工具的License是BSD的,所以包括商业行为的公司都可以放心地使用,不用担心版权的问题,这里详细的说明s.sudre.free.fr/Software/Iceberg.html 有源代码以及binary文件下载,基本上都有教程的,可以说比较简单易用的GUI方式,这里就不多介绍了。

DMG磁盘镜像方式 简单的dmg方式
dmg的方式比较流行,直接了当,一拖一拽就搞定,简单易用的东西,总是比较受欢迎的,打包的工具就是直接用 Disk Utility , 步骤为 File–> New –> Disk Image From Folder…最后写上文件名.dmg 直接保存就可以了,也可以用commandline的方式,下面有个简单的例子,具体更多的参数,请查看hdiutil的使用。

1 hdiutilcreateyour_dmg_name.dmg-volname the_name_on_volume -fsHFS±srcfolder /your/dir

自定义的dmg方式
如果只是简单icon的话,显示比较单调一点,至少来一点colorful的背景吧,可以自定义一些图片作为背景,再是最好就直接在小区域内拽动就行了,不要老远找另一个Finder中的Applications才行。

通过 Disk Utility 创建一个空白的dmg镜像, File–> New –> Blank Disk Image
双击“MyTest” 出来的空白窗口,一切的东西都在这里布局了, 请准备好一背景图片。以下是本人打包用的图片将这图片拽到“MyTest”里面,并在空白处右键(或菜单的方式也可以),选择”Show View Options”将图片设置为背景设置好后,可以将原来的图片hidden了(在Terminal的command line) 1 2 jackmac:~jackman c d / V o l u m e s / M y T e s t / j a c k m a c : M y T e s t j a c k m a n cd/Volumes/MyTest/ jackmac:MyTestjackman cd/Volumes/MyTest/jackmac:MyTestjackmanmvbg_img.jpeg.bg_img.jpeg 将build好的app拽到“MyTest”里面 做Applications快捷方式(右键–>Make Alias) 将 Applications快捷方式 拽到“MyTest”里面,到这里完全大部分了 美化一下dmg, 加一个美美的图标给它,无非也是复制一个image,右键MyTest–>GetInfo在icon的位置粘贴过去就可以了 将做好的dmg,转换一下就完成了,在DiskUtility 中如果没有的话,请将它拽回去就可以了,然后右键MyTest.dmg–>Convert”My……”
(也可以用另一方法Disk Utility File –>New –> Disk Image From folder… 然后选择”MyTest.dmg”)
最终的效果(双击“MyTestProduction.dmg”) 这样就大功告成了,😃 参考资料 Create DMG file /?p=700

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
pkg是一个可以将Node.js应用打包成可执行文件的工具。它可以将你的egg项目打包成一个可执行文件,方便在不同的环境中运行。首先,你需要在你的egg项目中创建一个名为build.js的文件,内容如下所示: 'use strict'; const egg = require('egg'); const workers = Number(process.argv || require('os').cpus().length); egg.startCluster({ workers, baseDir: __dirname }); 然后,你可以使用pkg命令对你的egg项目进行打包。具体的使用步骤如下: 1. 首先,确保你已经全局安装了pkg:npm install -g pkg 2. 在你的egg项目根目录下,创建一个名为build.js的文件,并将上述代码复制到build.js文件中。 3. 打开命令行工具,进入到你的egg项目根目录下。 4. 运行以下命令来进行打包: - 如果你的操作系统是Windows:pkg .\build.js --target node10-windows-x64 - 如果你的操作系统是Linux:pkg .\build.js --target node10-linux-x64 注意:上述命令中的node10表示打包的目标Node.js版本,windows-x64和linux-x64表示目标操作系统的架构。 5. 打包完成后,你会在你的egg项目根目录下看到生成的可执行文件。 综上所述,使用pkg可以将你的egg项目打包成可执行文件,方便在不同环境中部署和运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [pkg对egg项目打包](https://blog.csdn.net/weixin_44637104/article/details/128181127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值