首页 > 解决方案 > CocoaPods:如何拥有一个包含多个项目(包括嵌入式框架和/或静态库)的工作区?

问题描述

我有以下情况:

这是我的应用程序APodfile:

platform :ios, '12.0'
use_frameworks!

source '{my_private_pod_repo}.git'

target `A` do
    pod 'F', :source => '{my_private_pod_repo}.git'
end

这是有效的,因为它创建了一个A.xcworkspace包含我的应用程序A和一个嵌入的Pods_A.framework.

但相反,我想做的是拥有一个包含这三个项目的工作区。这个想法是能够访问每个应用程序/框架/库的源代码,在同一个工作区中打开 - 但是,我仍然希望应用程序只引用Pods_A.framework而不是本地的每个库/框架。有没有办法用 CocoaPods 做到这一点?

谢谢您的帮助

标签: xcodecocoapods

解决方案


是的,您可以在一个工作区中添加多个项目。

假设您有以下目录结构。(如果您的项目FS单独的存储库,您甚至可以将它们添加为 git 子模块)

|-- A
|   |-- A.xcodeproj
|   |-- A.xcworkspace
|   |-- F
|   |   |-- F.xcodeproj
|   |   `-- ...
|   `-- S
|   |   |-- S.xcodeproj
|   |   `-- ...
  • 打开A.xcworkspace

  • A/F/F.xcodeproj在工作区中拖放

  • A/S/S.xcodeproj在工作区中拖放

  • 现在打开 PodFile(在根文件夹 A 中)并进行类似的更改。

      workspace 'A.xcworkspace'
    
      target 'A' do
        use_frameworks!
    
        # Pods for A
        pod 'F', :source => './F'
      end
    
      target 'F' do
        use_frameworks!
    
        project 'F/F' # project local path
        # Pods for F
        pod 'S', :source => './S'
    
      end
    
      target 'S' do
        use_frameworks!
    
        project 'S/S' # project local path
        # Pods for S
    
      end
    
    

推荐阅读