【问题标题】:unable to install a OSX package created with productbuild无法安装使用 productbuild 创建的 OSX 包
【发布时间】:2012-01-01 03:53:47
【问题描述】:

我对整个 mac 开发和部署世界都很陌生。我试图创建一个 OSX 应用程序并使用 Itunes Connect 和应用程序加载器将其上传到应用程序商店。我使用的是 Mac OSX 版本 10.6.8

我已经使用以下代码对我的应用程序进行了代码签名:

codesign -s "3rd Party Mac Developer Application: <company name>" <my app name>.app

然后我使用以下方法构建了一个安装程序包:

productbuild --component <my app name>.app /Applications --sign "3rd Party Mac Developer Installer: <company name>" <my app name>.pkg

在 codesign 和 productbuild 期间,我没有收到任何错误,并且应用程序运行没有问题。

很遗憾,我无法安装该软件包。如果我使用以下命令在命令行中运行 pkg:

sudo installer -store -pkg <my app name>.pkg -target /

我得到以下输出:

installer: <my app name>.pkg has valid signature for submission
installer: Installation Check: Passed
installer: Volume Check: Passed
installer: Bundle <my bundle name> will be relocated to <path to my app>/<my app name>.app
installer: Starting install
installer: Install 0.0% complete
installer: Install 5.0% complete
[...]
installer: Install 95.0% complete
installer: Install failed: Beim Extrahieren von Dateien aus dem Paket <my app name>.pkg“ ist ein Fehler aufgetreten.

错误的意思是“提取包文件时出错...”

installer.log 中有关安装失败的条目:

Install Failed: PKG: extracting "<my bundle name>"
Error Domain=PKInstallErrorDomain Code=110 UserInfo=0x1004687b0 "Beim Extrahieren von Dateien aus dem Paket „<my app name>.pkg“ ist ein Fehler aufgetreten." Underlying Error=(Error Domain=BOMCopierFatalError Code=0 UserInfo=0x10c9af710 "Der Vorgang konnte nicht abgeschlossen werden. cpio read error: Unknown error: 0") {
    NSFilePath = "/var/folders/zz/zzzivhrRnAmviuee+++++++++++/Cleanup At Startup/PKInstallSandbox-tmp/Root/Applications";
    NSLocalizedDescription = "Beim Extrahieren von Dateien aus dem Paket \U201e<my App name>.pkg\U201c ist ein Fehler aufgetreten.";
    NSURL = "#<my bundle name>.pkg -- file://localhost/<path to my app>/<my app name>.pkg#Distribution";
    NSUnderlyingError = "Error Domain=BOMCopierFatalError Code=0 UserInfo=0x10c9af710 \"Der Vorgang konnte nicht abgeschlossen werden. cpio read error: Unknown error: 0\"";    

我猜这与cpio读取错误有关,但我在这里迷路了......

【问题讨论】:

    标签: macos installation package mac-app-store productbuild


    【解决方案1】:

    问题是 installd 会在磁盘上的其他位置找到您的 .app,并得出结论认为它已经安装,但已重新定位。它在您的构建目录中找到它,对吗?至少我的情况是这样。

    解决方案是:

    1. 构建安装程序;
    2. 压缩此构建的生产中使用的所有资源,您可能希望为这个特定构建归档(对于崩溃报告符号,您需要将应用程序放在包之外),包括 .app 包,除了实际安装程序。

    这样,正在安装的完全相同的二进制文件(当您启动安装程序时),在安装期间不会在磁盘上的任何地方找到(它已存档)。并且 installd 不会关心可以在 ~/Library/Developer/Xcode/DerivedData/ 或磁盘上的任何其他位置找到的应用程序的调试版本。

    【讨论】:

      【解决方案2】:

      好的,重建应用程序并将其打包到不同的文件夹中就可以了。我仍然不确定问题出在哪里,但至少我现在可以继续。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-03
        • 2015-10-18
        • 2017-07-29
        • 2022-10-25
        • 1970-01-01
        • 1970-01-01
        • 2013-03-17
        相关资源
        最近更新 更多