每个 Cocoapods 构建目标的含义
Meaning of each Cocoapods build target
Cocoapods 工作区中每个目标的用途是什么?
当我通过 "pod lib create Foo" 创建一个新的 CocoaPods 库时,我期望只有两个目标:一个用于构建我的库,一个用于构建我的示例。
但是生成的xcworkspace一共有四个target:
- 项目Foo
- 目标Foo_Tests
- 项目Pods
- 目标Pods-Foo_Tests
- 目标Pods-Foo_Tests-Foo
- 目标Pods-Foo_Tests-Foo-Foo
这些目标是什么意思?
(我没有选择演示应用程序、基于视图的测试或测试框架。)
您的工作区中有 2 个项目,一个是您的,另一个是 cocoapods,cocoapods 会为您在 Podfile 中添加的每个 pod 添加新目标。例如,假设这是您的 Podfile:
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.5.4'
pod 'BPXLUUIDHandler'
您应该在 pod 项目的目标列表中看到如下内容:
但这是什么意思?
目标是 cocoapods 管理每个 pod 的所有内容。例如,如果您在 pod 项目中选择 AFNwtworking 目标,您必须看到类似这样的内容:
但是例如 cocoapods 如何知道添加 "Link binary with libraries" 像上面这样的框架?好吧,请检查 AFNetworking's podspec file :
s.public_header_files = 'AFNetworking/*.h'
s.source_files = 'AFNetworking/AFNetworking.h'
s.subspec 'Serialization' do |ss|
ss.source_files = 'AFNetworking/AFURL{Request,Response}Serialization.{h,m}'
ss.ios.frameworks = 'MobileCoreServices', 'CoreGraphics'
ss.osx.frameworks = 'CoreServices'
end
s.subspec 'Security' do |ss|
ss.source_files = 'AFNetworking/AFSecurityPolicy.{h,m}'
ss.frameworks = 'Security'
end
s.subspec 'Reachability' do |ss|
ss.source_files = 'AFNetworking/AFNetworkReachabilityManager.{h,m}'
ss.frameworks = 'SystemConfiguration'
end
正如您在上面看到的,“ss.ios.frameworks”行描述了那里发生的事情。
希望现在一切都清楚了。
Cocoapods 工作区中每个目标的用途是什么?
当我通过 "pod lib create Foo" 创建一个新的 CocoaPods 库时,我期望只有两个目标:一个用于构建我的库,一个用于构建我的示例。
但是生成的xcworkspace一共有四个target:
- 项目Foo
- 目标Foo_Tests
- 项目Pods
- 目标Pods-Foo_Tests
- 目标Pods-Foo_Tests-Foo
- 目标Pods-Foo_Tests-Foo-Foo
这些目标是什么意思?
(我没有选择演示应用程序、基于视图的测试或测试框架。)
您的工作区中有 2 个项目,一个是您的,另一个是 cocoapods,cocoapods 会为您在 Podfile 中添加的每个 pod 添加新目标。例如,假设这是您的 Podfile:
platform :ios, '7.0'
pod 'AFNetworking', '~> 2.5.4'
pod 'BPXLUUIDHandler'
您应该在 pod 项目的目标列表中看到如下内容:
但这是什么意思?
目标是 cocoapods 管理每个 pod 的所有内容。例如,如果您在 pod 项目中选择 AFNwtworking 目标,您必须看到类似这样的内容:
但是例如 cocoapods 如何知道添加 "Link binary with libraries" 像上面这样的框架?好吧,请检查 AFNetworking's podspec file :
s.public_header_files = 'AFNetworking/*.h'
s.source_files = 'AFNetworking/AFNetworking.h'
s.subspec 'Serialization' do |ss|
ss.source_files = 'AFNetworking/AFURL{Request,Response}Serialization.{h,m}'
ss.ios.frameworks = 'MobileCoreServices', 'CoreGraphics'
ss.osx.frameworks = 'CoreServices'
end
s.subspec 'Security' do |ss|
ss.source_files = 'AFNetworking/AFSecurityPolicy.{h,m}'
ss.frameworks = 'Security'
end
s.subspec 'Reachability' do |ss|
ss.source_files = 'AFNetworking/AFNetworkReachabilityManager.{h,m}'
ss.frameworks = 'SystemConfiguration'
end
正如您在上面看到的,“ss.ios.frameworks”行描述了那里发生的事情。
希望现在一切都清楚了。