iOS-CocoaPods原理
发布时间:2023-04-01 13:56:13 所属栏目:教程 来源:
导读:CocoaPods是IOS项目上负责管理依赖的工具,即对第三方库的依赖。
CocoaPods 的原理是将所有的依赖库都放到另一个名为Pods的项目中, 然而让主项目依赖Pods项目,
这样,源码管理工作任务从主项目移到了Pods项目中.
CocoaPods 的原理是将所有的依赖库都放到另一个名为Pods的项目中, 然而让主项目依赖Pods项目,
这样,源码管理工作任务从主项目移到了Pods项目中.
|
CocoaPods是IOS项目上负责管理依赖的工具,即对第三方库的依赖。 CocoaPods 的原理是将所有的依赖库都放到另一个名为Pods的项目中, 然而让主项目依赖Pods项目, 这样,源码管理工作任务从主项目移到了Pods项目中. 1.Pods项目最终会编译成一个名为libPods.a的文件, 主项目只要依赖这个.a文件即可. 2.对于资源文件, CocoaPods提供了一个名为Pods-resources.sh的bash脚步, 该脚本在每次项目 编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中. 3.CocoaPods通过一个名为Pods.xcconfig的文件在编译设置所有的依赖和参数 IOS工程有3种库项目,framework,static library,Meta library,我们通常只使用前两种。我们在使用static library库工程时,一般使用它编译出来的静态库libxxx.a,以及对应的头文件,在写应用时,将这些文件拷贝到项目里,然后将静态库添加到链接的的依赖库路径里,并将头文件目录添加到头文件搜索目录中。而framework库的依赖会简单很多,framework是资源的集合,将静态库和其头文件包含在framework目录里。 CocoaPods同时支持static library和framework的依赖管理,下面介绍这两种情况下CocoaPods是如何实现构建上的依赖的 static library 先看一下普通的项目的文件结构 Cardplayer ├── Cardplayer │ ├── Cardplayer │ ├── Cardplayer.xcodeproj │ ├── CardplayerTests │ └── CardplayerUITests ├── exportOptions.plist └── wehere-dev-cloud.mobileprovision 然后我们使用Pod来管理依赖,编写的PodFile如下所示: project 'Cardplayer/Cardplayer.xcodeproj' target 'Cardplayer' do pod 'AFNetworking', '~> 1.0' 文件结构的变化 然后使用pod install,添加好依赖之后,项目的文件结构如下所示: Cardplayer ├── Cardplayer │ ├── Cardplayer │ ├── Cardplayer.xcodeproj │ ├── CardplayerTests │ └── CardplayerUITests ├── Cardplayer.xcworkspace │ └── contents.xcworkspacedata ├── PodFile ├── Podfile.lock ├── Pods │ ├── AFNetworking │ ├── Headers │ ├── Manifest.lock │ ├── Pods.xcodeproj │ └── Target\ Support\ Files ├── exportOptions.plist └── wehere-dev-cloud.mobileprovision 可以看到我们添加了如下文件 PodFile 依赖描述文件 Podfile.lock 当前安装的依赖库的版本 Cardplayer.xcworkspace xcworkspace文件,使用CocoaPod管理依赖的项目,XCode只能使用workspace编译项目,如果还只打开以前的xcodeproj文件进行开发,编译会失败 xcworkspace文件实际是一个文件夹,实际Workspace信息保存在contents.xcworkspacedata里,该文件的内容非常简单,实际上只指示它所使用的工程的文件目录 如下所示: <?xml version="1.0" encoding="UTF-8"?> <Workspace version = "1.0"> <FileRef location = "group:Cardplayer/Cardplayer.xcodeproj"> </FileRef> <FileRef location = "group:Pods/Pods.xcodeproj"> </FileRef> </Workspace> (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
