使用productbuild对mac app进行签名和存档,而无需使用xcode将应用程序分发到Mac App Store

时间:2018-01-03 12:37:24

标签: macos code-signing pkgbuild productbuild

我是MAC App开发和使用Zoom Mac SDK的项目的新手,但SDK不支持使用Xcode存档,所以我需要使用zoom支持中心建议的其他工具进行存档。根据他们的回复,app可以使用pkgbuild / pkgutil / productbuild存档,但我不知道为我的Mac App创建archive / pkg / dmg文件的确切步骤。

另请告诉我需要创建哪个文件扩展名才能从网站上下载我的应用程序。

我正在使用"开发者ID应用"和#34;开发者ID安装程序"签署我的版本的证书,但不知道如何在不使用Xcode的情况下创建构建,因为使用Xcode我得到第三方框架的错误,因为"代码对象根本没有签名"。

感谢您的大力帮助。

1 个答案:

答案 0 :(得分:0)

首先,您需要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}下指定,并在其中创建“后安装”文件。

安装后的文件将包含将与您的软件包一起执行的内容,例如安装其他.pkg或.sdk,这些文件将位于$ {ROOTFOLDER}中。

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

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

完成此操作后,您将获得一个简单的程序包。但是,您并不是只想要那样。

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

继续执行以下操作:

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"

现在,您已经获得了最终签署的软件包。包含.sdk,.pkg和.dmg的位置,可以通过安装后文件安装这些位置,也可以将它们复制到将要安装pkg的计算机上的目录中。

礼物