Cocoa pods的安装和使用详解

原理

  • CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后 让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中

    • 1、Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a 文件即可。

    • 2、对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本, 该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目 标目录中。

    • 3、CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和 参数。

  • 注意

    • 关于.gitignore

当你执行pod install之后,除了Podfile外,CocoaPods还会生成一个名为 Podfile.lock的文件,你不应该把这个文件加入到.gitignore中。因为Podfile.lock 会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要 pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升 级时造成大家各自的第三方库版本不一致 。

常用指令


1.podinstall--no-repo-update(禁止索引更新操作)podupdate--no-repo-update

2.pod serach:'pod search AFNetworking'

3.pod outdated:'检查各第三方库是否有更新'

4.pod init:自动生成一个podfile文件并初始化

5.vim 编辑模式,输入i进入编辑,按ESC退出编辑,按:,输入wq回到控制台

可能遇到的问题

(1)使用cocoapods导入第三方类库后头文件没有代码提示?

解决办法: 选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项,新增一个值"${SRCROOT}",并且选择\”Recursive\”

(2)出现如下警告

[!] Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.

解决办法:不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。

(3) 执行pod install 或pod update 命令后,updating local specsrepositories 卡住不动

解决办法:pod install 被墙了,换成新的命令pod install --verbose --no-repo-update

(4) 项目运行时报错:Thefile “Pods.xcconfig” couldn’t be opened because there is no such file.

解决办法:pod update就可以了


1.先升级Gem    sudo gemupdate--system

2.切换cocoapods的数据源    【先删除,再添加,查看】    gem sources--remove https://rubygems.org/gem sources -a https://ruby.taobao.org/    gem sources -l

3.安装cocoapods    sudo geminstallcocoapods    或者(如10.11系统)sudo geminstall-n/usr/local/bincocoapods

4.将Podspec文件托管地址从github切换到国内的oschina    【先删除,再添加,再更新】    pod repo removemasterpod repoaddmasterhttps://gitcafe.com/akuandev/Specs.git    pod repoupdate

5.设置pod仓库    pod setup

6.测试    【如果有版本号,则说明已经安装成功】    pod--version

7.利用cocoapods来安装第三方框架01进入要安装框架的项目的.xcodeproj同级文件夹02在该文件夹中新建一个文件podfile03在文件中告诉cocoapods需要安装的框架信息        a.该框架支持的平台        b.适用的iOS版本c.框架的名称d.框架的版本

8.安装podinstall--no-repo-updatepodupdate--no-repo-update

9.说明platform :ios,'8.0'用来设置所有第三方库所支持的iOS最低版本pod'SDWebImage','~>2.6'设置框架的名称和版本号格式参照最新版本,------------pod init中标准格式版本号的规则:'>1.0'可以安装任何高于1.0的版本'>=1.0'可以安装任何高于或等于1.0的版本'<1.0'任何低于1.0的版本'<=1.0'任何低于或等于1.0的版本'~>0.1'任何高于或等于0.1的版本,但是不包含高于1.0的版本'~>0'任何版本,相当于不指定版本,默认采用最新版本号

10.使用podinstall命令安装框架后的大致过程:01分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。02下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。03生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。04整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。

11. 注意苹果系统升级OS X EL Capitan后改为$sudo geminstall-n/usr/local/bincocoapods, 要在指令前面加上sudo,会提醒输入密码,然后安装

Cocoapods指令


Usage:    

$ pod COMMAND      

CocoaPods, the Cocoa library package manager.

Commands:    

+cacheManipulate the CocoaPodscache

+ deintegrate  Deintegrate CocoaPodsfromyourproject.    

+ env          Display pod environment    

+ init          Generate a Podfileforthecurrentdirectory.    

+installInstallprojectdependenciestoPodfile.lockversions+ ipc          Inter-process communication    

+ lib          Develop pods    

+listListpods    

+ outdatedShowoutdatedprojectdependencies    

+ pluginsShowavailable CocoaPods plugins    

+ repo          Manage spec-repositories    

+searchSearchforpods.    

+ setup        Setup the CocoaPods environment    

+ spec          Manage pod specs    

+ trunk        Interactwiththe CocoaPods API (e.g. publishingnewspecs)    

+ try          Try a Pod!    

+updateUpdateoutdatedprojectdependenciesandcreatenewPodfile.lock

Options:

--silent        Show nothing

--version      Show the version of the tool

--verbose      Show more debugging information

--no-ansi      Show output without ANSI codes

--help          Show help banner of specified command

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容