CocoaPods是什么?

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。

如何下载和安装CocoaPods?

在安装CocoaPods之前,首先要在本地安装好Ruby环境

参考如何快速正确的安装 Ruby, Rails 运行环境

http://ruby-china.org/wiki/install_ruby_guide

下面提供一个快捷方法安装CocoaPods:

.访问 https://github.com/CocoaPods/Specs,然后将Specs项目fork到自己的github账户上

. 下载GitHub Desktop, 然后clone Specs项目。

. 将clone的Specs项目的文件夹改名为master,然后拖到/Users/用户名/.cocoapods/repos目录下。

. 运行pod setup

解释:pod setup的本质就是将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。若直接从github上下载zip文件,由于缺少git文件,会导致cocoa pods不使用。若用git clone,由于文件过大,容易导致失败。但是使用GitHub Desktop软件,则会提高clone的成功率,并且会给出clone的进度。

使用cocoapods:

利用CocoaPods,在项目中导入AFNetworking类库

.AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking

为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search AFNetworking

过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。

.使用Xcode 创建一个项目

打开终端,输入cd /Users/paladinfeng/Desktop/shareSDKDemo/demo

(注:cd后边有个空格,然后接你刚创建的项目的路径就可以了,别告诉我你不会直接拖进去)

创建这个PodFile后在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

vim Podfile

.写入以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)

platform :ios, '8.0'

target “target名称” do

pod 'AFNetworking', '~> 3.1.0'

end

CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target

请点击进去参考:

报错误[!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfil请点进去参考:

可能是要添加的这个库 不支持swift导致

解决办法:在podfile里面添加 use_frameworks!

platform:ios,'8.0'

#use_frameworks!个别需要用到它,比如reactiveCocoa MyApp为你的项目的名字

defpods

pod'AFNetworking','~>2.6'

pod'ORStackView','~>3.0'

pod'SwiftyJSON','~>2.3'

use_frameworks! //在这里添加,设置支持swift,如果不引进swift相关的类则可以不用写

end

target'MyApp'do

pods

end

就是在加入你需要的那些库之后最后再加一句use_frameworks!

.导入第三方库

$pod install

pod installpod update区别:

1.使用pod install来安装新的库,即使你的工程里面已经有了Podfile,并且已经执行过pod install命令了;所以即使你是添加或移除库,都应该使用pod install。

2.使用pod update [PODNAME] 只有在你需要更新库到更新的版本时候用。

ps

 当使用pod update遇到 ld: library not found for -ljcore-ios-1.1.1 可以这样解决

小技巧:

最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动

原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install --verbose --no-repo-update

pod update --verbose --no-repo-update

至此,添加已经完成。可以看到项目目录里面多了4个文件,以后运行工程都使用.xcworkspace文件,而不再用.xcodeproj了。

查看 pod 版本

$ pod --version

0.39.0

移除CocoaPods项目中已经配置的类库

.打开终端,输入cd /Users/paladinfeng/Desktop/shareSDKDemo/demo

(注:cd后边有个空格,然后接你创建的项目的路径就可以了,别告诉我你不会直接拖进去)

创建这个PodFile后在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

vim Podfile

.看到以下内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)

platform :ios, '8.0'

target “target名称” do

pod 'AFNetworking', '~> 3.1.0'(把这一行删掉)

end

.$pod install

编译运行没有错误完成

备注:

解决MAC系统升级(10.15)导致COCOAPODS失效问题

pod install 报错       sudo gem update --system 也不行  
dunkhomedeMacBook-Pro:get dunkhome$ pod install
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
dunkhomedeMacBook-Pro:get dunkhome$ sudo gem update --system
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)

居然是404,于是我用浏览器打开https://gems.ruby-china.org,发现其服务域名更换了:

然后删除gem源:

gem sources --remove https://gems.ruby-china.org/

修改gem源:

gem sources -a https://gems.ruby-china.com

查看gem源是否是最新的:

gem sources -l

升级cocoapods:

sudo gem install -n /usr/local/bin cocoapods --pre

查看升级后的cocoapods版本:

pod --version  

现在最新的是

MacBook-Pro:get dunkhome$ pod --version

1.8.3

Cocoapods - pod install 成功后找不到头文件解决

问题描述:使用Cocoapods时,import 找不到头文件。

问题原因:这是因为还没设置头文件的目录。

解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT}   ,后边选择recursive 。就可以了。

注意:是在 User Header Search Paths 里添加,不是上面的 Header Search Paths.

cocoapods移除某一个框架以后,会遇到ld: library not found for -lxxxx-ios-x.x.x

这种情况下是因为将框架移除之后,并没有移除build setting->other linker flag中的引用,找到移除之后的框架,删除引用即可。

iOS 快捷下载和安装并使用CocoaPods的更多相关文章

  1. 如何下载和安装CocoaPods

    朋友自己学习了一段时间就去公司实习了去了之后公司用的是CocoaPods,他一脸茫然的向我求助,我这才想起来写着一遍为了帮助更多的朋友 CocoaPods是什么? 当你开发iOS应用时,会经常使用到很 ...

  2. ios项目中安装和使用CocoaPods

    CocoaPods是什么? http://code4app.com/article/cocoapods-install-usage http://blog.csdn.net/jjmm2009/arti ...

  3. CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?

    CocoaPods介绍? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...

  4. CocoaPods -- ios项目中安装和使用CocoaPods

    CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而 ...

  5. 安装和使用cocoapods

    第一步:查看自己电脑的Ruby环境:gem sources -l 1.如果已经是taobao镜像了[https://ruby.taobao.org/],此时不需要环境的修改了,直接进入第二步 2.(1 ...

  6. Qt Creator下载和安装(详细教程)

    简介 Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址: http://www.qt.io/ 也可以访问Qt项目域名:http://qt-project. ...

  7. Qt开发环境下载和安装

    Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址: http://www.qt.io/ 也可以访问Qt项目域名:http://qt-project.org ...

  8. 如何搭建Java开发环境(包括下载、安装和配置JDK)和Eclipse的安装

    JDK的下载 1.打开网址https://www.oracle.com/index.html 2.下载JDK JDK的安装 设置环境变量(以windows 7 为例) 1. 在“计算机”图标上单击鼠标 ...

  9. App Store上下载和安装Xcode

    App Store上下载和安装Xcode Xcode的下载和安装 要编写一个Sprite Kit程序,需要使用到Xcode开发工具.本节将主要讲解此工具的两种下载和安装方式:一种是在App Store ...

随机推荐

  1. UEditor单图上传跨域问题解决方案

    UEditor UEditor是百度团队提供的富文本编辑器 git地址为:https://github.com/fex-team/ueditor 在最近的项目中使用了该插件作为项目的富文本编辑器 由于 ...

  2. Java转PHP的心路历程

    首先,我要批评一下自己,已经好久没发博客了.总是拿奇奇怪怪的理由来妨碍自己写博客. emmmm,现在心里舒服一点了. 前提 在2018年的11月7号,我从广州跳槽到一个三线的小城市工作.跳槽原因比较羞 ...

  3. Java数据结构和算法 - 简单排序

    Q: 冒泡排序? A: 1) 比较相邻的元素.如果第一个比第二个大,就交换它们两个; 2) 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数; 3) 针 ...

  4. mysql的学习笔记(七)

    1.自定义函数,函数可以返回任意类型的值,同样可接说这些类型的参数. CREATE FUNCTION function_name RETURNS {STRING|INTER|REAL|DECIMAL} ...

  5. IntentActionUtil【Intent的常见作用的工具类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 主要用于通过Intent调用手机本地软件打开文件(doc.xsl.pdf.ppt.mp3.mp4等格式).安装apk.发送邮件.拨打 ...

  6. EF Core利用Scaffold从根据数据库生成代码

    在EF6 之前的时代,如果需要从数据库中生成代码,是可以直接在界面上操作的,而到了EF Core的时代,操作方式又有更简便的方式了,我们只需要记住以下这条指令. Scaffold-DbContext ...

  7. Scrum Mastery:有效利用组织的5个步骤

    组织以什么样的方式能最大限度的发挥Scrum的优势?组织在哪些方面阻碍了个人的发展?Scrum是一种能使业务变得敏捷的框架.而组织恰恰需要变得敏捷.只是,组织本身有时候并没有足够的能力来帮助Scrum ...

  8. Do you have an English name? 你有英文名吗?

    文中提到的所有人名都是虚构的,如有雷同,纯属巧合. 当然,你的洋名儿也可能是德文.法文.意大利文,等々々々. 全球化时代,和老外的交流也多了."高端"的程序员想要进欧美系外企,想要 ...

  9. 高可用实现KeepAlived原理简介

    一.简介 目前主流实现web网站及数据库服务高可用软件包括:keepalived.heartbeat.corosync,cman;高可用简称HA: 官方站点:https://www.keepalive ...

  10. 为 Eureka 服务注册中心实现安全控制

    上一篇Eureka 实现微服务注册发现讲了用 Eureka 实现单体版的服务注册与发现.因为本篇是在上一篇的基础上的一点扩充,所以读此篇之前要保证看了上一篇. Eureka 如果不加安全控制,会存在下 ...