如何通过 podfile 在两个目标中共享一些 pods
how to share the some pods in two target by podfile
xcodeproj 'Demo.xcodeproj'
platform :ios, "6.0"
target "Demo" do
pod 'Demo-A', '3.1.1'
pod 'Demo-B', '1.0'
pod 'Demo-C', '~> 1.9.0'
pod 'Demo-D', '~> 1.1'
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
end
target "DemoTests" do
pod 'DemoTests-X', '3.1.1'
pod 'DemoTests-Y', '0.4.0'
pod 'DemoTests-Z', '4.1.1'
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
end
target "DemoWidget" do
pod 'DemoWidget-1', '3.1.1'
pod 'DemoWidget-2', '0.4.0'
pod 'DemoWidget-3', '4.1.1'
end
这是我的播客文件。如你所见。
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
此代码出现了两次。 DemoTests 是 Demo target.while 的测试目标我编写测试文件并在 Demo target.it 中导入源文件将依赖 pods 中的某些文件,这些文件在 Demo 目标中,但不在 DemoTests 目标中。所以我为了依赖写了两次这个 Podfile 代码。
但是,它很丑!我和我的同事必须维护两套这样的 code.and 我的 Podfile 会膨胀的!
我想维护这段代码一次!怎么做~
我爱可可pods!我相信它会解决我的问题~
等你回答~~~~
您可以像这样使用它来减少您的 podfile 长度,并且还可以维护一次代码!!!
xcodeproj 'Demo.xcodeproj'
platform :ios, "6.0"
def common_pods_for_target
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
end
target "Demo" do
pod 'Demo-A', '3.1.1'
pod 'Demo-B', '1.0'
pod 'Demo-C', '~> 1.9.0'
pod 'Demo-D', '~> 1.1'
common_pods_for_target
end
target "DemoTests" do
pod 'DemoTests-X', '3.1.1'
pod 'DemoTests-Y', '0.4.0'
pod 'DemoTests-Z', '4.1.1'
common_pods_for_target
end
target "DemoWidget" do
pod 'DemoWidget-1', '3.1.1'
pod 'DemoWidget-2', '0.4.0'
pod 'DemoWidget-3', '4.1.1'
end
只需在变量中定义所有常见的 pods 并在您想要的目标中使用它。
CocoaPods 现在 recommends using an abstract_target
如果您希望多个目标共享同一个 pods。注意实际目标是如何嵌套在新的抽象目标下的。
# There are no targets called "Shows" in any Xcode projects
abstract_target 'Shows' do
pod 'ShowsKit'
pod 'Fabric'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
pod 'ShowTVAuth'
end
end
xcodeproj 'Demo.xcodeproj'
platform :ios, "6.0"
target "Demo" do
pod 'Demo-A', '3.1.1'
pod 'Demo-B', '1.0'
pod 'Demo-C', '~> 1.9.0'
pod 'Demo-D', '~> 1.1'
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
end
target "DemoTests" do
pod 'DemoTests-X', '3.1.1'
pod 'DemoTests-Y', '0.4.0'
pod 'DemoTests-Z', '4.1.1'
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
end
target "DemoWidget" do
pod 'DemoWidget-1', '3.1.1'
pod 'DemoWidget-2', '0.4.0'
pod 'DemoWidget-3', '4.1.1'
end
这是我的播客文件。如你所见。
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
此代码出现了两次。 DemoTests 是 Demo target.while 的测试目标我编写测试文件并在 Demo target.it 中导入源文件将依赖 pods 中的某些文件,这些文件在 Demo 目标中,但不在 DemoTests 目标中。所以我为了依赖写了两次这个 Podfile 代码。 但是,它很丑!我和我的同事必须维护两套这样的 code.and 我的 Podfile 会膨胀的! 我想维护这段代码一次!怎么做~ 我爱可可pods!我相信它会解决我的问题~ 等你回答~~~~
您可以像这样使用它来减少您的 podfile 长度,并且还可以维护一次代码!!!
xcodeproj 'Demo.xcodeproj'
platform :ios, "6.0"
def common_pods_for_target
pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'
end
target "Demo" do
pod 'Demo-A', '3.1.1'
pod 'Demo-B', '1.0'
pod 'Demo-C', '~> 1.9.0'
pod 'Demo-D', '~> 1.1'
common_pods_for_target
end
target "DemoTests" do
pod 'DemoTests-X', '3.1.1'
pod 'DemoTests-Y', '0.4.0'
pod 'DemoTests-Z', '4.1.1'
common_pods_for_target
end
target "DemoWidget" do
pod 'DemoWidget-1', '3.1.1'
pod 'DemoWidget-2', '0.4.0'
pod 'DemoWidget-3', '4.1.1'
end
只需在变量中定义所有常见的 pods 并在您想要的目标中使用它。
CocoaPods 现在 recommends using an abstract_target
如果您希望多个目标共享同一个 pods。注意实际目标是如何嵌套在新的抽象目标下的。
# There are no targets called "Shows" in any Xcode projects
abstract_target 'Shows' do
pod 'ShowsKit'
pod 'Fabric'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
pod 'ShowTVAuth'
end
end