0

Cocoapods 工作空间中每个目标的用途是什么?

当我通过“pod lib create Foo”创建一个新的 CocoaPods 库时,我预计只有两个目标:一个用于构建我的库,一个用于构建我的示例。

但是生成的 xcworkspace 一共有四个目标:

  • 项目
    1. 目标Foo_Tests
  • 项目豆荚
    1. 目标Pod-Foo_Tests
    2. 目标Pod-Foo_Tests-Foo
    3. 目标Pod-Foo_Tests-Foo-Foo

这些目标的含义是什么?

(我没有选择演示应用程序、基于视图的测试或测试框架。)

4

1 回答 1

0

您的工作区中有 2 个项目,一个是您的,另一个是 cocoapods,cocoapods 为您在 Podfile 中添加的每个 pod 添加新目标。例如,假设这是您的 Podfile :

platform :ios, '7.0'

pod 'AFNetworking', '~> 2.5.4'
pod 'BPXLUUIDHandler'

您应该在 pod 项目的目标列表中看到如下内容:

在此处输入图像描述

但那是什么意思?

Cocoapods 管理每个 pod 的所有内容的目标。例如,如果您在 pod 项目中选择 AFNwtworking 目标,您必须看到如下内容:

在此处输入图像描述

但是例如 cocoapods 是如何知道像上面那样添加“将二进制文件与库链接”框架的?好吧,请检查AFNetworking 的 podspec 文件

 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 ”描述了那里发生的事情。

希望现在一切都清楚了。

于 2015-07-06T06:03:00.720 回答