在子项目中使用cocoapods

时间:2013-11-11 14:58:27

标签: ios xcode cocoapods

我正在尝试在几个模块中组织一个项目。为简化起见,我有两个模块:

  • iOSAppModule - 这是顶级模块
    • DataProviderModule - 由iOSAppModule使用

因此iOSAppModule是一个依赖于DataProviderModule的项目。因此,DataProviderModule是iOSAppModule的子项目。

DataProviderModule独立于iOSAppModule工作。它有两个目标:DataProviderModuleUI和DataProviderModuleStatic。 DataProviderModuleUI是一个提供UI的目标,因此externals可以测试DataProviderModule。 DataProviderModuleStatic是一个Cocoa Touch静态库,用于删除UI类。

现在,问题是:我在DataProviderModule中使用cocoapods,我无法在iOSAppModule上使用DataProviderModule(使用Static目标),因为它无法找到lPods。

这是我在DataProviderModule中的当前PodFile:

platform :ios, '5.0'

link_with ['DataProviderModuleUI', 'DataProviderModuleStatic']
pod 'MKNetworkKit', '~> 0.87'

iOSAppModule不使用pod。

2 个答案:

答案 0 :(得分:1)

如果将--no-integrate option与pod命令一起使用,则几乎可以进行任何设置工作。您必须手动将Pod项目连接到项目,但您具有更大的灵活性。

在您的情况下,只需将Pod项目作为DataProviderModule的子项目,并相应地设置标题,库和构建路径。有关分步说明,请参阅this page

答案 1 :(得分:0)

您的问题可能与CocoaPods不支持目标解除整合有关。即如果您在过去使用CocoaPods集成目标,则需要从其构建阶段中删除Pods库并取消设置CocoaPods配置文件。

由于最终目标未与CocoaPods集成,您还需要手动包含任何系统框架/库以及任何其他所需的构建标志。 CocoaPods生成的xcconfig用于此目的,但它与目标的依赖关系相关。

几点说明:

  • CocoaPods目前不支持在没有某种人工干预的情况下与静态库链接。
  • 您可能需要使用xcodeproj DSL指令指定目标项目。