CocoaPods管理第三方开源库的基本使用

CocoaPod出来很久了。一个第三方库管理的工具。CocoaPods的项目源码在https://github.com/CocoaPods/Specs上管理。

2016年5月10号,CocoaPods终于在其官方博客上宣布正式发布CocoaPods 1.0。与此同时,公开了相应的Mac版App——CocoaPods App 1.0。虽然已经出来很多年了,可见CocoaPods团队的匠人精神。

安装CocoaPods 准备工作

查看ruby版本

ruby -v

查看ruby源

gem sources -l

// 更新升级gem 做技术的应该还是会翻墙的

sudo gem update —system

查看gem 版本

gem -v

安装篇

OS X 10.11 以前安装命令为:

// 安装cocoapods

sudo gem install cocoapods

Mac系统为OS X EL Capitan安装命令为:

sudo gem install -n /usr/local/bin cocoa pods

卸载CocoaPods

sudo gem uninstall cocoapods

常用操作

我们可以用CocoaPods Mac app来给自己的工程创建Podfile文件

将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下

pod setup 

如果更新太慢可以用命令查询大小确定是否在下载

cd ~/.cocoapods/repos 进入目录

du -sh *

这个是我打印自己的目录详情 551M    master

以后可以每周更新一次

初始化Podfle文件 并且格式也有

pod init 

-----------------------------各种文件------------------------------

1. Podfile文件

项目的第三方库的依赖以及项目的基本配置

2. Podfile.lock文件

最后一次更新Pods时, 保存所有第三方框架的版本号

3. pods目录

保存通过pod install或者pod update下载下来的第三方开源库的源代码

4. xxx.xcworkspace文件

重新生成一个工作空间,打开这个工程文件来进行开发


-----------------------------Podfile文件结构------------------------------

source'http://192.168.1.1/qiqi/JSONModelConfigurationFile.git'

source'https://github.com/CocoaPods/Specs.git'

platform :ios,'8.0'

use_frameworks!

inhibit_all_warnings!

target'MyProjectName'do

pod'SDWebImage','3.7.5'

pod'FMDB','2.6'

end


-----------------------------Podfile参数解释------------------------------

1. platform :iOS, '7.0'

指定了开源库应该被编译在哪个平台以及平台的最低版本

若不指定平台版本,官方文档里写明各平台默认值为iOS:4.3,OS X:10.6,tvOS:9.0,watchOS:2.0

2. inhibit_all_warnings!

屏蔽cocoapods库里面的所有警告

这个特性也能在子target里面定义,如果你想屏蔽某pod里面的警告也是可以的:

pod'MyProject', :inhibit_warnings =>true

3. xcodeproj,现在被project代替,这个变量就别使用了

允许你指定需要链接的工程

4. use_frameworks!

使用frameworks动态库替换静态库链接

(1)swift项目cocoapods 默认 use_frameworks!

(2)OC项目cocoapods 默认 #use_frameworks!

5. workspace

指定应该包含所有projects的Xcode workspace.

如果没有显示指定workspace并且在Podfile所在目录只有一个project,那么project的名称会被用作于workspace的名称

6. project

默认情况下是没有指定的,当没有指定时,会使用Podfile目录下与target同名的工程:(我们只有一个工程MyProject)

# MyProject这个Target只有在MyProject工程中才会链接

target 'MyProject' do

project 'MyProject'

...

end

5. target 'xxxx' do

end

指定特定Target的依赖库

可以嵌套子Target的依赖库

6. inherit! :search_paths

明确指定继承于父层的所有pod,默认就是继承的

7. source

指定specs的位置,自定义添加自己的podspec。公司内部使用

cocoapods 官方source是隐式的需要的,一旦你指定了其他source 你就需要也把官方的指定上

例如:

source'http://192.168.1.1/qiqi/JSONModelConfigurationFile.git'

source'https://github.com/CocoaPods/Specs.git


-----------------------------常用指令------------------------------

1. pod setup

将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下,更新本地仓库。

2. pod repo update

执行 pod repo update更新本地仓库,本地仓库完成后,即可搜索到指定的第三方库,作用类似pod setup。不过这个命令经常不单独调用。比如执行pod setup、pod search、pod install、pod update会默认执行pod repo update

3. pod search xxx

查找某一个开源库。查找开源库之前,默认会执行pod repo update指令

4. pod list

列出所有可用的第三方库.现在已经2.4W+了.还在不断地增长

5. pod install

会根据Podfile.lock文件中列举的版本号来安装第三方框架

如果一开始Podfile.lock文件不存在, 就会按照Podfile文件列举的版本号来安装第三方框架

安装开源库之前, 默认会执行pod repo update指令

6. pod update

将所有第三方框架更新到最新版本, 并且创建一个新的Podfile.lock文件

安装开源库之前, 默认会执行pod repo update指令

7. pod install --no-repo-update

8. pod update --no-repo-update

安装开源库之前, 不会执行pod repo update指令

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

推荐阅读更多精彩内容