【问题标题】:XCODE & PKGBUILD create a package that installs a zero-length executableXCODE & PKGBUILD 创建一个安装零长度可执行文件的包
【发布时间】:2014-10-16 13:56:38
【问题描述】:

按照Making OS X Installer Packages like a Pro - Xcode Developer ID ready pkg 中的说明,我能够将我的 Firebreath 插件项目(本质上是一个可执行文件,但后缀为 .plugin 并安装在 /Library/Internet Plugins 中)构建到一个 .pkg 文件中。当我在 OSX Mountain Lion 或 Lion 系统上运行 .pkg 文件时,安装程​​序不会报告任何错误,但会在 /Library/Internet Plugins 中安装一个无法使用的零长度 .plugin 文件。以下是我用来构建 .pkg 文件的命令:

xcodebuild ARCHS=i386 ONLY_ACTIVE_ARCH=NO -target ALL_BUILD -configuration Release
codesign -s "$appCertificate" projects/$srcdir/Release/np$srcdir.plugin
pkgbuild --component projects/$srcdir/Release/np$srcdir.plugin --identifier com.company.$srcdir --version $version --install-location /Library/Internet\ Plug-ins --sign "$installCertificate" $srcdir.pkg

我也尝试过用 productbuild 和其他各种迭代来包装 .pkg 组件文件——没有什么不同。它总是安装一个零长度的可执行文件。而且我在安装程序日志中也看不到任何消息。

有趣的是,当我使用 XCode UI 归档项目,然后使用归档目录中的 .plugin 构建包时,我得到了一个工作安装。所以Release文件夹中的.plugin文件肯定有什么不同。 因此,如果我能找到一种从命令行创建存档的方法,那么我可以使用它而不是 Release 中的那个。但是 xcodebuild 手册页并没有告诉我如何做到这一点——我可以使用一个存档命令,但是当我尝试这个时,它告诉我该命令不可用。这是因为我是在项目中构建,而不是在工作区中构建,并且没有定义任何方案吗?

任何帮助都将不胜感激 - 无论是找出安装的 .plugin 大小为零的原因,还是如何构建存档以便我可以使用它。

【问题讨论】:

    标签: xcode macos pkgbuild


    【解决方案1】:

    .plugin 由 FireBreath 构建的文件通常是一个文件夹。

    当我构建插件并最终得到包含 AppleScript 的 DMG 时,我对不同的安装方法进行了大量研究。这个 applescript 基本上运行一个 shell 命令,将所有东西安装在正确的位置( /Library/Internet Plug-Ins )。我并不是说它对所有事情都是正确的方法,但是如果它适合您的需要,您可以检查一下。

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 2023-02-08
      • 1970-01-01
      • 2014-07-03
      • 2011-11-29
      • 2011-07-18
      相关资源
      最近更新 更多