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 做到这一点?
谢谢您的帮助
解决方案
是的,您可以在一个工作区中添加多个项目。
假设您有以下目录结构。(如果您的项目F
是S
单独的存储库,您甚至可以将它们添加为 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
推荐阅读
- c# - 如何在 LINQ to Entities 查询中使用复制构造函数?
- amazon-lex - Amazon Lex-插槽启发在回调中不起作用
- elixir - “protocol String.Chars not implemented” 即使我使用“inspect”
- druid - 如何在 druid 中使用分页进行聚合查询(Druid 是一个面向列的分布式数据存储)。它是否支持带偏移量的查询?
- c++ - 当遇到不是来自 STL 的未捕获异常时,有什么方法可以打印其信息?
- object - 错误:无法导入名称 preprocessor_pb2 谷歌云
- reactjs - 在 React 中让孩子进入索引的最有效方法是什么
- python - 运行 python manage.py makemigrations 的问题
- java - 将 0 翻转为 1 的 Java 代码
- java - 在 web 元素中查找动态样式属性