使用 Packages 创建支持 Apple M1 芯片的 pkg 安装包

苹果发布 M1 芯片设备已经有一段时间了,虽然我当时第一时间申请了 DTK 设备,但由于一些原因,直到苹果回收设备,我也没能亲手摸到。总之,落格输入法 macOS 还是成功靠盲打支持了 Apple 架构,即 arm64,根据用户反馈,效果还行。

直到有用户说虽然 app 是支持 m1 芯片的,但安装包不行——当运行 pkg 安装包时,系统弹出了 Rosetta 2……

虽然其实并不影响实际 pkg 中 payload 的 app,但总要多说一句去解释一下也很让人头疼,于是我开始想办法解决这个问题。

我是在使用 Packages 来生成 pkg 安装包的,图形化配置,一键生成,顺便还能签名,并且带有命令行版本,创作好项目文件后,用命令行实现自动化生成,非常的香……但这个 app 很久没有更新了,我考虑给开发者写邮件试试……于是发到 dev.packages@gmail.com 的邮件被退信了…… 好吧,邮箱已经不能用了,看来无法联系到开发者。

我开始寻找其他方案,其实也就只能是直接使用 productbuild 来生成 pkg,总体来说操作很复杂,其实要先使用 pkgbuild 来生成简易的 pkg 安装包(如果你有多个包,就要用它来生成每一个),然后用 productbuild 来把它们合并成同一个。

 

重点来了⚠️ :在 productbuild 的配置参数中, hostArchitectures 这个可选项要加上,并且值为 x86_64,arm64 这样才能让新生成的 pkg 安装包被 m1 芯片的系统识别,从而不再触发 Rosetta 2 翻译。

 

这样的话……既然只是一个参数,那么 Packages 究竟能不能改呢?翻了一下它的设置,还真让我给找到了!

Packages 开启高级选项

默认情况下 Packages 是没有暴露这个设置的,这是一个高级选项。首先,你要在设置中开启“显示高级选项”的功能:

Packages 显示高级用户选项

然后回到项目的设置界面(Project→Settings)底部就有了高级选项(Advanced Options)

我们找到 hostArchitectures 并写入 x86_64,arm64 ,完美:

使用高级设置修改 Packages 默认参数

使用高级设置修改 Packages 默认参数

本文由 落格博客 原创撰写:落格博客 » 使用 Packages 创建支持 Apple M1 芯片的 pkg 安装包

转载请保留出处和原文链接:https://www.logcg.com/archives/3481.html

About the Author

落格博客

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

发表评论

您的电子邮箱地址不会被公开。