4

我是 MAC 应用程序开发的新手,并且正在开发使用 Zoom Mac SDK 但该 SDK 不支持使用 Xcode 存档的项目,因此我需要使用缩放支持中心建议的其他工具进行存档。根据他们的回复,应用程序可以使用 pkgbuild/pkgutil/productbuild 存档,但我不知道为我的 Mac 应用程序创建存档/pkg/dmg 文件的确切步骤。

另外请让我知道我需要创建哪个文件扩展名才能从网站为用户下载我的应用程序。

我正在使用“开发人员 ID 应用程序”和“开发人员 ID 安装程序”证书来签署我的构建,但不知道如何在不使用 Xcode 的情况下创建构建,因为使用 Xcode 我收到第三方框架的错误,因为“代码对象未签名全部”。

感谢您的大力帮助。

4

1 回答 1

3

首先,您需要 pkgbuild 和 productbuild 来做一些富有成效的事情。

您可以在此处指定根文件夹、标识符、版本、安装位置、标牌和安装后脚本。

例如:

pkgbuild --root "${ROOTFOLDER}" \
--identifier "${IDENTIFIER}" \
--version ${VERSION} \
--install-location "/" \
--sign "${IDENTITY}" \
--scripts '${SCRIPT}' \
"${PKGNAME}.pkg"

在您的 ${ROOTFOLDER} 中,您可以控制文件/文件夹,就像在“/”之后的本地计算机上一样。例如,如果您想将“xy.app”放入 /Applications,您可以在 ${ROOTFOLDER} 中创建一个“Applications”文件夹并将 xy.app 放入其中。当您安装软件包时,在您机器上的“/Applications”文件夹中,将会有 xy.app。您还可以将文件复制到 /Library 或其他任何地方,只需在指定的根文件夹中创建文件夹即可。

当您想要安装任何 .pkg / .dmg 或 .sdk 时,您将创建一个您在 --scripts ${SCRIPTSFOLDER} 下指定的脚本文件夹,并在其中创建一个“安装后”文件。

postinstall 文件将包含将与您的包一起执行的内容,例如安装另一个 .pkg 或 .sdk,它们将位于您的 ${ROOTFOLDER} 中。

例如,将多个 .pkg' 文件放入 ${ROOTFOLDER}/Packages 中。在您的根文件夹中,将创建 /Packages 文件夹。意味着,在您的安装后,您可以说:

sudo installer -pkg /Packages/anotherPackageOrApp.pkg target /

完成之后,你得到了一个简单的包。然而,你真的不想要那个。

使用 productbuild,您可以创建一个分发文件:它包括产品存档的所有配置,包括产品许可证、产品 README 文件、组件包列表、约束(例如最低操作系统版本)。

继续执行以下操作:

productbuild --synthesize --package "${PKGNAME}.pkg" distribution.dist

现在您已经从包中取出了您的 distribution.dist,您可以随意编辑它。重新构建它:

productbuild --distribution distribution.dist --scripts "${SCRIPTS}" --sign "${IDENTITY}" --package-path "${PKGNAME}.pkg" --resources . --version ${VERSION} "${PKGNAME}_New.pkg"

现在你得到了最终的签名包。包含可以通过 postinstall 文件安装的 .sdk、.pkg 和 .dmg 的位置,或者只是复制到将安装 pkg 的计算机上的目录。

问候

于 2019-01-28T09:06:26.510 回答