博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安装和使用cocoaPods
阅读量:7098 次
发布时间:2019-06-28

本文共 1737 字,大约阅读时间需要 5 分钟。

一、cocoaPods是什么?

在iOS开发中。我们一定会常常使用到各种各样的第三方开源库,使用这些开源库的时候,须要引入源代码、进行设置、引入其它framework,还有版本号的更新.....这些工作没有技术含量并且复杂。这个时候。你要是用了cocoaPods,仅仅须要将用到的第三方开源库放到一个名为Podfile的文件里,然后运行pod-install命令,它就会帮你搞定这些无聊的事情。

cocoaPods是一个iOS的类库管理工具,绝大多数经常使用有名的开源类库都支持用cocoaPods下载管理。

二、安装cocoaPods

1、mac下安装ruby环境

/*传送门:,一路跟着做下来,很顺畅。

另外一篇參考的,我做了一半rvm地址用不了了。你能够试试:

*/

从中得知。mac下自带ruby环境,不须要安装。以上内容凝视掉。

2、安装cocoaPods

继续在终端输入:"sudo gem install cocoaPods "

三、使用cocoaPods

1、利用cocoaPods,在项目中导入SDWebImage

(1)使用:“pod search SDWebImage”确定SDWebImage是否支持cocoaPods

(2)A.从终端cd进入你要引入SDWebImage的那个project文件夹(与project文件.xcodeproj同级文件夹)

        B.输入命令“vim Podfile”,创建Podfile文件。进入普通编辑模式。(文件名称必须为Podfile)

        C.在文件里输入:(假设一个第三方库支持cocoaPods,那它的github页面上就有类似的配置内容)

platform :ios(, '6.1')pod 'SDWebImage'(, '~>3.6')
类似地。假设要导入其它第三方
pod 'ASIHTTPRequest'
....

以上配置信息大意为,括号中的内容可有可无,支持平台iOS,最低6.1。下载SDWebImage版本号3.6。

按esc退出编辑状态,输入“:x”运行保存并退出vim的命令。

这个时候。在你的project文件.xcodeproj的同等级文件夹上会生成一个podfile文件

(3)运行“pod install”命令,将SDWebImage下载到project里,而且设置好了编译參数和依赖。

(4)从此以后,使用*.xcworkspace文件来打开project,而不是曾经的*.xcodeproj。

         每次更改了Podfile文件,都须要又一次运行一次"pod update"命令。"pod update"默认会更新到第三方的最新版本号。假设不想更新到最新版本号,使用"pod update --no-repo-update"命令。

2、利用cocoaPods下载第三方类库所须要的其它库

假设你下载了某个第三方源代码之后,编译的时候出现了缺少各种各样文件的错误,而且在project的根文件夹下发现了Podfile、Podfile.lock和Pod这些文件。那就说明那些缺少的文件你没有更新下来。

解决的方法:打开终端进入与Podfile同级的文件夹,运行"pod update"命令。

四、其它注意

Podfile.lock

当运行完pod install,除了生成Podfile,还生成一个Podfile.lock文件。Podfile.lock会锁定当前各依赖库的版本号。之后运行pod update都会对Podfile.lock做改动。

所以不能把Podfile.lock增加.gitignore文件里。

2、cocoaPods的原理

cocoaPods将全部依赖库都放着到一个名为Pods的项目中,让主项目依赖Pods项目,从而将源代码管理工作从主项目中移到了Pods项目中。

A.Pods项目终于编译成一个名为libPods.a的文件,主项目依赖这个.a文件。

B.Pods里面有一个名为Pods-resource.sh的bash脚本,每次项目编译的时候都会运行,将第三方的各种资源文件拷贝到目标文件夹中。

C.Pods中的.xcconfig文件是用来在编译时设置依赖和參数的。

转载地址:http://djhql.baihongyu.com/

你可能感兴趣的文章
Freemarker常用技巧(二)
查看>>
2.C#中通过委托Func消除重复代码
查看>>
[转] 基于PHP Stream Wrapper开发有趣应用场景
查看>>
JS获取屏幕大小
查看>>
hdu2222-Keywords Search 【AC自动机】
查看>>
Jsp使用HttpSessionBindingListener实现在线人数记录
查看>>
SQL中的等号、IN、LIKE三者的比较
查看>>
JSPatch 成长之路
查看>>
vuejs学习网站推荐
查看>>
如何在Fedora或CentOS上使用Samba共享
查看>>
乐视mysql面试题
查看>>
常用文件扩展名
查看>>
如何让Linux定时任务crond以秒为单位执行(如每隔3秒)
查看>>
二叉树的构造
查看>>
linux中线程池【转】
查看>>
php通过字符串生存hashCode
查看>>
SQL Server memory – Internals
查看>>
$.ajax和$.post的区别(前者根据key-value/后者根据形参)
查看>>
Node.js SDK与fabric链码交互开发
查看>>
vue - index.html
查看>>