如何处理多模块iOS Cocoapods项目中的依赖关系?

如何处理多模块iOS Cocoapods项目中的依赖关系?,ios,swift,cocoapods,Ios,Swift,Cocoapods,我目前正在用Cocoapods构建一个多模块的iOS项目,并面临依赖关系管理的挑战。我的产品结构如下: app/ |-- SampleApp/ |-- Podfile sdk/ |-- Module 1/ |-- Module 2/ |-- Module 3/ |-- Module 4/ |-- Module 5/ 每个模块都有自己的podspec文件,其中使用特定版本描述了依赖项。有些模块依赖于其他模块,也被描述为依赖项,但没有版本,因为我总是想要最新的版本 我在pod文件中这样描述该项目:

我目前正在用Cocoapods构建一个多模块的iOS项目,并面临依赖关系管理的挑战。我的产品结构如下:

app/
|-- SampleApp/
|-- Podfile
sdk/
|-- Module 1/
|-- Module 2/
|-- Module 3/
|-- Module 4/
|-- Module 5/
每个模块都有自己的podspec文件,其中使用特定版本描述了依赖项。有些模块依赖于其他模块,也被描述为依赖项,但没有版本,因为我总是想要最新的版本

我在pod文件中这样描述该项目:

platform :ios, '11.0'
use_frameworks!

workspace 'SampleAppWorkspace'
project 'SampleApp/SampleApp.xcodeproj'

target 'SampleApp' do
  use_frameworks!
  project 'SampleApp/SampleApp.xcodeproj'

  target 'SampleAppTests' do
    inherit! :search_paths
  end
  
  target 'SampleAppUITests' do
    inherit! :search_paths
  end
end

target 'Module 5' do
  use_frameworks!
  project '../sdk/Module 5/Module 5.xcodeproj'
end

target 'Module 4' do
  use_frameworks!
  project '../sdk/Module 4/Module 4.xcodeproj'

  target 'Module 4 Tests' do
  end
end

target 'Module 3' do
  use_frameworks!
  project '../sdk/Module 3/Module 3.xcodeproj'
end

target 'Module 2' do
  use_frameworks!
  project '../sdk/Module 2/Module 2.xcodeproj'

  target 'Module 2 Tests' do
  end
end

target 'Module 1' do
  use_frameworks!
  project '../sdk/Module 1/Module 1.xcodeproj'
end
当我在“pod安装”后打开工作区时,单个模块目标是不可构建的,因为找不到像“Alamofire”这样的依赖项。我还必须将依赖项添加到pod文件中,以使目标运行

所以我的问题是,如何以正确的方式管理这些多模块依赖关系。有什么最佳实践吗?我真的不想在每个podspec和Podfile中声明依赖项。最好的情况是每个模块都是可构建和可测试的,并且工作空间可以使用所有模块完全自动化地构建和测试。因为我主要来自Java世界,所以我正在Maven中搜索类似BOM(BOM)的东西,以进行依赖关系管理

谢谢你的帮助和建议。也许有一些很好的示例项目可以看看它是如何正确完成的。我找到了Google Firebase iOS SDK,但是这个项目有点太大了,而且是定制的。那里的示例项目非常小