如何将捆绑安装位置设置为其父捆绑目录?

时间:2012-08-03 20:21:00

标签: objective-c xcode plugins bundle

我有一个主项目App,其中包含要安装在AppBundleDirectory/Contents/PlugIns中的子项目。

plugin.xcodeproj的默认安装目录是/Library/Bundles,我想将其更改为AppBundleDirectory/Contents/PlugIns。我不认为plugin知道它的父构建目录,所以我找不到要放入Installation Directory设置的任何环境变量。

总结一下:

项目结构

App.xcodeproj
  Plugins/
    plugin1.xcodeproj
    plugin2.xcodeproj

想要生成结构

App.app
  Contents/
    Plugins/
      plugin1.bundle
      plugin2.bundle

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您的应用目标取决于您的插件目标,那么它非常简单:

  • 将“复制文件”阶段添加到您的应用
  • 将目标设为“PlugIns”(位于下拉列表中)
  • 使用“+”按钮选择插件。

如果插件依赖于应用程序,那么它只会稍微复杂一些。您必须硬编码应用程序的名称:

  • 确保每个人都拥有相同的DSTROOT(使用单一Scheme是最简单的方法)
  • 使插件INSTALL_PATH为“/App.app/Contents/PlugIns”(注意领先/)

请注意,它是“PlugIns”而不是“Plugins”。 99.99%的时间没关系。但是经常遇到一个人在安装时选择区分大小写的文件系统并且你的插件没有加载。我把这个虫子追了四个月一次。从“复制文件”列表中选择它是确保正确的好方法。