创建通用 Cocoapods 框架

Posted

技术标签:

【中文标题】创建通用 Cocoapods 框架【英文标题】:Creating universal Cocoapods framework 【发布时间】:2021-05-19 08:29:44 【问题描述】:

我在 Xcode 中有 10 多个目标的项目。我正在使用 cocoapods 为我提供一些框架。 但是 Pod 项目开始增长(很多文件) 有可能以某种方式配置 Pod 文件以创建一个通用配置,然后将其导入其他项目?抽象目标之类的东西? 我不需要为每个目标创建新的 pod 框架,因为我的所有目标都使用相同的 pod。

感谢您的建议。

类似这样的:

platform :ios, '11.0'

custom config 'Pods-framewrks' do
 use_frameworks!
 pod 'Alamofire'
end

project = Xcodeproj::Project.open “./MyProject.xcodeproj"

project.targets.each do |t|
 target t.name do
   import framework Pods  // ???
 end
end

【问题讨论】:

【参考方案1】:

如果您将pod 'Alamofire' 放在任何特定目标之外,那么它将包含在所有目标中。

例如:

platform :ios, '11.0'

pod 'Alamofire'

target 'FirstTarget' do
end

target 'SecondTarget' do
  pod 'SwifterSwift'
end

【讨论】:

但这会创建 Pod_FirstTarget.framework 和 Pod_SecondTarget 框架。我想避免这种情况,并且只有 Pod.framework 链接到它们。 啊,我明白了。为什么要避免使用这些框架? 我有很多应用程序(我想减少文件数量和项目大小)并且我发现 pod 的某些目标名称存在问题,这些目标名称使用了一些本地变音符号。 我最近尝试用 Carthage 替换 Pods,但是我正在使用的一些框架不支持它。 :-( 可能是github.com/leavez/cocoapods-binary(自己没试过)

以上是关于创建通用 Cocoapods 框架的主要内容,如果未能解决你的问题,请参考以下文章

自定义 CocoaPod 框架和其他 Cocoapods

3分钟让你的框架支持cocoapods

iOS_让自己的框架支持CocoaPods

发布自己的开源框架到CocoaPods

CocoaPods 不适用于框架目标

如何发布自己的开源框架到CocoaPods