点击Xcode的TARGETS,看到一些设置的配置信息,其中有一项是Build Phases,也就是Xcode的构建阶段
包括:
1、Target Dependencies 设置依赖target
2、Run Build Tool Plug-ins
3、[CP]Check Pods Manifest.lock
该脚本位于较上方,作用是比较远端Podfile.lock和本地Manifest.lock文件是否相同
4、Compile Sources 编译源文件
这个阶段编译所有的源文件;默认情况下,项目中添加任何一个源文件,也将添加到编译列表中
Complile Sources分为两步:预处理和编译(Preprocessing、Compiling)。Preprocessing阶段的目标是为每一个实现文件.m创建中间文件,中间文件比较大。在创建中间文件时,Preprocessing阶段负责处理实现文件.m和所有预处理指令。预处理指令是所有以#开头的语句,如#import
5、Link Binary With Libraries 连接二进制文件和库
在完成源文件的编译之后,链接框架(或库)
6、Copy Bundle Resources 复制绑定资源(设置需要拷贝到Main bundle里面的资源文件)
在源文件编译和链接库之后,创建一个可执行文件,并放置在应用程序的绑定中(一个文件夹)。其中资源文件和可执行文件一起添加到(bundle)中。这些资源文件是数据文件,应用程序在运行时需要使用,如XIB文件和图像文件、声音文件等等。默认情况下,添加到项目中的文件,如不是源代码文件,将添加到这个构建阶段(比如:storyboard、Images.xcassets、InfoPlist.strings、Main.storyboard)
7、[CP]Copy Pods Resources
一般在以静态库引入的三方库里面包含资源文件的话会添加该脚本,其作用是将三方库的资源文件拷贝至项目中
它的完成是通过运行类似以下脚本进行的:
"${PODS_ROOT}/Target Support Files/Pods-Demo_Example/Pods-Demo_Example-resources.sh"
***********************
当使用pod集成三方库时,执行pod install后,会生成.xcworkspace、Podfile.lock、Pods目录
1、xcworkspace
该文件下包含一个叫contents.xcworkspacedata的文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:Demo.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
xcworkspace是一个容器,当有多个project需要相互依赖时可以使用xcworkspace将它们组织起来。pod在首次安装三方库时会生成一个叫Pods.xcodeproj的project管理三方库,然后将该project和主项目的project通过workspace进行关联。这样就可以在主工程中引入三方库了,而且三方库统一由Pods.xcodeproj管理,不会对原项目产生任何干扰
2、Podfile.lock
指定具体三方库的具体版本号
3、Pods
Manifesk.lock是Podfile.lock的副本,在Pods目录下。作用:通常不把Pods文件放到版本管理里面,而把Podfile.lock放到版本管理里面,这时对于pull代码之后是否需要更新pod,就可以通过对比本地的Manifest.lock和远程Podfile.lock是否相同即可。
网友评论