XCODE& PKGBUILD创建一个安装零长度可执行文件的包

时间:2014-10-16 13:56:39

标签: xcode macos pkgbuild

按照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的大小为零,要么就如何构建存档所以我可以使用它。

1 个答案:

答案 0 :(得分:0)

由FireBreath构建的

.plugin -file通常是一个文件夹。

当我构建我的插件并最终使用包含AppleScript的DMG时,我做了很多关于不同安装方法的研究。这个applescript基本上运行一个shell命令,在正确的位置安装所有东西(/ Library / Internet Plug-Ins)。我并不认为这是适合所有方面的正确方法,但如果符合您的需求,您可以查看它。