避免使用 Cocoapods 在 Podfile 中明确声明每个目标 1.x

Avoid explicitly stating every target in Podfile with Cocoapods 1.x

我的 XCode 项目中有 20 多个目标,我经常添加或删除一个。

Cocoapods v0.x 创建了 libPods.a,它 link 我的所有目标。

现在,使用 Cocoapods v1.x,我似乎必须在 Podfile 中指定每个目标。它创建了 20 多个相同的库文件,如果我更改目标,我必须更新 Podfile 并再次 运行 pod install。

我找不到只制作 "libPods.a" 或 "libPods-common.a" 的方法。使用 abstract_target,它只是抱怨没有具体的目标,除非我指定真实的目标(我试图避免的事情)。

我可以用它来使 libPods-first_target_name.a 和 link 成为其他目标,但库名称在其他目标中会不正确且令人困惑。

我想我会在项目中创建一个虚拟 'common' 目标并在 Podfile 中使用该目标来构建我的库,但肯定有更好的方法吗?

我不确定它是否能完全解决您的问题,但我在我的播客文件中使用了它。

project 'MyProject'
platform :ios, '9.0'

pod 'MagicalRecord', '~> 2.3'
# etc..

for t in Xcodeproj::Project.open("MyProject.xcodeproj").targets.select { |t| t.is_a?(Xcodeproj::Project::Object::PBXNativeTarget) } do
    target t.name
end

您不必显式定义所有目标名称,这个简短的 ruby 代码将所有 Pods 添加到所有项目目标。

希望至少能有所帮助!