CocoaPods的工作过程

CocoaPods实现过程

  • 解析 Podfile 中的依赖,解决依赖关系,核心部分

  • 下载依赖

  • 创建 Pods.xcodeproj 工程

    生成 Pods.xcodeproj 工程
    将依赖中的文件加入工程
    将依赖中的 Library 加入工程
    设置目标依赖(Target Dependencies)

  • 集成 workspace

生成pods.xcodeproj的详细过程:

CocoaPods的工作主要是通过ProjectName.xcworkspace来组织的,在打开ProjectName.xcworkspace文件后,发现Xcode会多出一个Pods工程。

1.库文件引入及配置:
库文件的引入主要由Pods工程中的Pods-ProjectName-frameworks.sh脚本负责,在每次编译的时候,该脚本会帮你把预引入的所有三方库文件打包的成ProjectName.a静态库文件,放在我们原Xcode工程中Framework文件夹下,供工程使用。
如果Podfile使用了use_frameworks!,这是生成的是.framework的动态库文件。引入方式也略有不同。

2.Resource文件:
Resource资源文件主要由Pods工程中的Pods-ProjectName-resources.sh脚本负责,在每次编译的时候,该脚本会帮你将所有三方库的Resource文件copy到目标目录中。

3.依赖参数设置:
在Pods工程中的的每个库文件都有一个相应的SDKName.xcconfig,在编译时,CocoaPods就是通过这些文件来设置所有的依赖参数的,编译后,在主工程的Pods文件夹下会生成两个配置文件,Pods-ProjectName.debug.xcconfig、Pods-ProjectName.release.xcconfig。

✨波浪线**~ > ** 含义:从指定版本到倒数第二位版本号升1为止,比如 ‘~> 0.3.7’所指的版本区间为[0.3.7, 0.4.0),即>=版本0.3.7,<版本0.4.0

Pod install 和 Pod update的区别

这里面会从配置类的实例 config 中获取一个 Installer 的实例,然后执行 install! 方法,这里的 installer 有一个 update 属性,而这也就是 pod install 和 update 之间最大的区别,其中pod update会无视已有的 Podfile.lock 文件,重新对依赖进行分析。

pod install 和 pod update 区别还是比较大的,每次在执行 pod install 或者 update 时最后都会生成或者修改 Podfile.lock 文件,其中install并不会修改 Podfile.lock 中显示指定的版本,而update会会无视该文件的内容,尝试将所有的 pod 更新到最新版。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 22,259评论 0 39
  • 项目上线,终于又有时间研究些三方的东西了,在自己钻牛角的时候,不觉间陷入了误区。在项目实践过程中,跟老大也学到了很...
    仁伯阅读 25,764评论 32 112
  • 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库...
    辉712阅读 3,994评论 0 7
  • 他姓薛,有着大俗的名字,却是个大雅的少年。 第一次遇见,不,不是遇见,是看见,他,是在电视上,都说...
    6ff0a33765aa阅读 381评论 0 0
  • 桥看起来很老,旁边的石碑上写着关于这座桥的历史,但从头读到尾也没说清楚到底是什么年代的,所以就姑且算做百年...
    angeloyang阅读 164评论 0 0