IOS开发笔记(Swift):Cocoapods安装与使用

Stella981
• 阅读 750

    最近在学习ios开发,下载了github上面很多优秀的源码,发现很多项目都包含Pods这个东西,在本地编译的时候总是编译不通过,于是搜索了一下Cocoapods,根据网络上的一些文章做了了解,并进行了安装使用,本篇来简单的整理一下。  

    首先,我们需要搞定楚Cocoapods是什么?来看一下官网的解释:

CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over eighteen thousand libraries and can help you scale your projects elegantly.

    意思就是说CocoaPods是针对Swift和OC Cocoa项目的一个依赖管理工具。它包含有一万八千个类库,可以帮助你优雅的扩展你的项目。其实就是一堆类库的集合。

    做过Java或Android开发的,可以简单的把它理解为maven或gradle中央仓库,你只需要配置一下类库的坐标,下载编译通过就可以使用这些类库提供的功能。

    CocoaPods的编译和安装需要Ruby环境的支持,OS X系统默认集成了Ruby环境,其他的老系统请自行google安装。

    Ruby环境正常后,要下载和安装Cocoapods很简单,打开终端,输入以下命令:

sudo gem install cocoapods

    它需要你输入下密码,并等待一段时间安装,所请耐心等待,安装成功后,会有如下的提示信息:

IOS开发笔记(Swift):Cocoapods安装与使用

    不过这只是最理想的情况,你可能会碰到网络问题,因为天朝的墙阻挡了cocoapods.org的访问,这时候你就需要手动的切换下Ruby源,通过淘宝提供的Ruby镜像来访问cocoapods。在终端中依次输入以下命令,先删除默认的ruby源:

gem sources --remove https://rubygems.org/

    等待一会儿会提示你删除成功,然后再添加taobao的源:

gem sources -a https://ruby.taobao.org/

    添加成功后,你可以通过gem sources -l命令查看,如下:

IOS开发笔记(Swift):Cocoapods安装与使用

    接下来,输入第一步的命令,就可以了,不需要进行其它额外的设置。

    安装完CocoPods之后,我们来学习一下如何使用它,首先我们随便找一个工程,或者新建一个,以之前的一篇文章IOS开发笔记(Swift):UITableView表格视图的静态使用中,创建的UITableViewDemo为例,通过命令行进行到工程目录,如下:

IOS开发笔记(Swift):Cocoapods安装与使用

    然后输入pod init命令,这个命令的作用是初始化pod,它会在你的工程下面创建一个Podfile的文件,我们需要在Podfile文件里面引入我们的类库,效果如下:

IOS开发笔记(Swift):Cocoapods安装与使用

    然后,我们需要编辑这个文件,可以通过vim,也可以通过Xcode打开,这里通过Xcode打开,命令如下open -a Xcode Podfile,效果是这个样子:

IOS开发笔记(Swift):Cocoapods安装与使用

    我们随便引入一个类库Alamofire,这是一个swift编写的http网络库,Github地址,根据地址上面的说明,进行配置,效果如下:

source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' use_frameworks!

target '' do pod 'Alamofire', '~> 3.4' end

IOS开发笔记(Swift):Cocoapods安装与使用

    编辑完之后保存,然后回到命令行,执行pod install命令,相应的还有pod update命令,感兴趣的朋友可以看一下使用 pod install 还是 pod update ?,这里不再解释。

    这里需要注意一点:在你初次执行pod install命令时,系统会自动执行pod setup,从**https://github.com/CocoaPods/Specs上**下载索引文件更新到本地,目前大概有756M,你可以通过如下图所示的命令随时查看下载了,一定要有耐心:

IOS开发笔记(Swift):Cocoapods安装与使用

    不过由于网络原因,CocoaPods很可能会无限卡在Setting up CocoaPods master repo,这时候你可能需要切换一下镜像,使用oschina的镜像,地址是:https://git.oschina.net/akuandev/Specs.git,你需要依次执行如下几条命令:

pod repo remove master

pod repo add master https://git.oschina.net/akuandev/Specs.git

pod repo update

    然后再执行pod install命令,正常执行完的效果如下:

IOS开发笔记(Swift):Cocoapods安装与使用

    在pod install的过程中,你可能和还会遇到一个奇葩问题,Unable to add a source with url,原因是由于你的系统上可能安装了多个版本的xcode导致,以下是两个解决方案:

    CocoaPods解决Unable to add a source with url

    Unable to add a source with url 

   安装成功后,我们会发现我们的工程目录里面多了一些文件,如下:

IOS开发笔记(Swift):Cocoapods安装与使用

    通过Xcode我们打开xcworkspace文件,看一下效果:

IOS开发笔记(Swift):Cocoapods安装与使用

    可以看到多了一个Pods的工程,通过其中的Podfile文件,我们可以配置一些类库的引用,不过每次在添加、编辑、删除类库时,我们都需要重新通过命令行执行一次pod install命令,以便把所需的类库安装进你的工程,有点麻烦。

    不过cocoapods是我们学习ios开发必不可少的一个工具,我们开发过程中可能遇到的所有问题,它都有相应的类库提供解决方案,如果你想更深入的了解它,请点击这里CocoaPods Wiki

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这