多个目标取决于相同的cocoapods

时间:2014-02-10 12:16:21

标签: cocoapods

我在Xcode项目中有多个目标,它们必须依赖于相同的pod列表。 我可以像这样编写Podfile:

target :target1 do
    pod 'pod1'
    pod 'pod2'
    ...
end
target :target2 do
    pod 'pod1'
    pod 'pod2'
    ...
end

但显然不是很酷。

我希望我能写出这样的东西:

target :target1, :target2 do
    pod 'pod1'
    pod 'pod2'
end

但遗憾的是它不起作用。 (请注意,我的主要目标需要这些pod)。 是否有可能使多个目标依赖于相同的pod列表(当然没有复制粘贴)?

1 个答案:

答案 0 :(得分:1)

我刚刚经历了这种可怕的情况并修复了它 - 我现在有一个工作空间,它将通过命令行或xcode构建,它有4个不同的目标,具有不同的捆绑ID。上面你的方法的问题是你最终会链接疯狂,因为每个目标都会构建pod。我做的是:

  1. 创建一个目标并配置了pod的项目。
  2. 使用此链接复制目标3次并更改套件ID等:http://swwritings.com/post/2013-05-20-concurrent-debug-beta-app-store-builds
  3. 为每个目标创建工作区级别方案。
  4. 为您的pod构建创建工作区级别方案。
  5. 修改您的计划并关闭“查找隐式依赖关系”#。
  6. 使您的方案取决于您的pod方案(编辑方案中的构建选项卡)。
  7. 我的podfile看起来像这样 - 与开始时的相同:

    target 'test-target' do
        pod 'HockeySDK'
        pod 'RestKit', '~> 0.23.1'
        pod 'RKXMLReaderSerialization', :git => 'https://github.com/RestKit/RKXMLReaderSerialization.git', :branch => 'master'
        pod 'NSLogger'
        pod 'Parse-iOS-SDK'
    end
    

    我在构建时确实遇到了一些问题,它一直告诉我它无法链接到我通过更改“图书馆搜索路径”来解决的广告连接。在构建设置中:

    $(PROJECT_DIR)/Build/Products/$(CONFIGURATION)-$(PLATFORM_NAME)
    

    与/ Build / Products有点奇怪的路径,但这似乎是Pods开箱即用的东西,如果你反对它就会变得丑陋。

    很难写出详细的操作方法,因为我花了5天时间进行实验,以便在Xcode,xcodebuild和Teamcity CI服务器上运行神奇版本。