CocoaPods:我怎样才能拥有一个包含多个项目(包括嵌入式框架和/或静态库)的工作区?

时间:2021-04-25 11:41:19

标签: xcode cocoapods

我有以下情况:

  • 嵌入框架 A 的应用 F
  • 这个框架 F 是一个私有 pod,并嵌入了一个静态库 S
  • 这个静态库 S 也是一个私有 pod。

这是我的应用程序 A Podfile:

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 有没有办法做到这一点?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

我相信这是不可能的,对不起。您可以将多个 podfile 链接在一起,这样如果您更改其中一个,所有其他 podfile 都会更改。这是在 macOS 中通过右键单击文件并按 make alias 来完成的。

答案 1 :(得分:0)

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

假设您有以下目录结构。 (如果您的项目 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