cocoapods管理以及常遇到的问题
CocoaPods使用
安装成功啦,咱们来创建Podfile文件
//咱们先滚去项目的根目录,如果不会,你就先滚去看看shell命令教程吧
$ cd /Users/JamesGu/Desktop/CocoaPodsProject
//创建Podfile文件
$ touch Podfile
这样子你的项目目录里就多了一个Podfile文件(没有后缀哦)
编辑一下Podfile文件,来点直接的(当然是在项目目录)
//打开Podfile文件
$ open Podfile
加入
platform :ios, '7.0'
pod "AFNetworking", "~> 2.6.1"
pod "MBProgressHUD", "~> 0.9.1"
上边第一句意思是我要用ios的类库,还要是支持7.0以上的,然后我要用AFNetworking的2.6.1版本和MBProgressHUD的0.9.1版本,还要加类库?继续往后添即可,在这里可以不加版本(eg:pod "MBProgressHUD" ),在没有Podfile.lock文件约束的情况下(后边会讲到),当然就会默认下载当前最新类库的给你。
保存保存保存保存保存保存保存保存保存保存
开始要导入三方库了(去项目根目录,这一步很慢很慢的,请原谅中国的特殊网络)
$ pod install
开始CocoaPods就开始根据Podfile文件为我们下载代码库,配置依赖,添加代码库用到的framework
终端是这么显示的
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.6.1)
Installing MBProgressHUD (0.9.1)
[!] From now on use `CocoaPodsProject.xcworkspace`.
最后一句英文认识吗?
是哒,以后你就要用xcworkspace文件来打开项目了,CocoaPods会帮你把你原本的项目和一个CocoaPods项目组成一个工作空间,编译时候,CocoaPods项目会预先被编译,生成一个.a的静态类库文件,供你的主项目调用,而这一切CocoaPods已经帮你做好了,你只需要打开xcworkspace写你的代码而已。
![Uploading 87B5BBF9-7FC6-4BD7-859B-79B988BD37BD_449931.png . . .]
补张图给大家
如果你仔细看过上边的应该就对CocoaPodsProject.xcworkspace和Podfile这两个文件的作用很清楚了
第四节:含有CocoaPods的项目的管理
接下来就要讲到Podfile.lock文件和Pods文件夹了。
Podfile.lock :这个文件是用来保存已经安装的Pods依赖库的版本。
Pods文件夹:不用说,这里边全是引用的三方类库。
接上上边说,如果Podfile.lock文件丢失,你再使用pod install命令,并且Podfile中含有没有指定版本的类库,那你的类库就会下载最新的版本,有些比较活跃的三方项目更新很频繁,它们一旦更新方法名或者实现方式,你调用的代码就报错了,这是灾难性的。
看过其他教程的人一定会奇怪,很多教程中用的是pod update 命令,为什么你一直在提pod install,因为pod update会更新的你Podfile.lock文件到最新版本,接下来的害处就如上段所说。
所以千万记住,无论是自己的项目,还是跑别人的源码,一定要用pod install,至于pod update,看你自己是不是要三方升级类库(我还是建议最好在Podfile中指定版本,想要升级,只需更改Podfile中的版本号,再pod install)。
曾经有一份别人的源码摆在我的面前,只有一个Podfile文件,没有Podfile.lock,还在说明里告诉大家用pod update,当时我傻傻的以为是我的问题,愣是没跑起来。
所以CocoaPods管理的项目,生成的四个文件,只用上传Podfile和Podfile.lock,其他的不要上传,毕竟每pod install一遍,如果有改动,svn就会有一大堆的提交,这种情况是谁都不想看到的,所以呢版本控制只留这两个文件就好。
cocoapods管理以及常遇到的问题的更多相关文章
- iOS 如何在一个已经存在多个project的workspace中引入cocoapods管理第三方类库
一种新的第三方库管理工具:Carthage 如何使用Carthage管理iOS依赖库 Podfile Syntax Reference v1.1.0.rc.3 https://guides.cocoa ...
- Xcode工程使用CocoaPods管理第三方库新建工程时出现错误
工程使用CocoaPods管理第三方库,在新的目录update版本的时候出现如下问题 问题1描述: diff: /../Podfile.lock: No such file or director ...
- 使用CocoaPods管理第三方开源类库
iOS开发中经常会用到许多第三方开源类库,比如AFNetworking.FMDB.JSONKit等等,使用CocoaPods这个工具就能很方便得对工程中用到的类库进行管理,包括自动下载配置以及更新. ...
- Xcode工程使用CocoaPods管理第三方库新建工程时出现异常
Xcode工程使用CocoaPods管理第三方库新建工程时出现异常 Xcode工程使用CocoaPods管理第三方库新建工程时出现错误工程使用CocoaPods管理第三方库,在新的目录update版本 ...
- 利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库)
利用cocoapods管理开源项目,支持 pod install安装整个流程记录(github公有库),完成预期的任务,大致有下面几步: 1.代码提交到github平台 2.创建.podspec 3. ...
- CocoaPods学习系列2——使自己的项目支持CocoaPods管理
该篇记录使自己的项目支持CocoaPods管理. 要达到这一目的,需要如下步骤: 1.将自己的项目提交到github,添加开源协议license 2.添加podspec文件 3.验证podspec,成 ...
- CocoaPods管理的项目移植到别人电脑后找不到头文件
CocoaPods管理的项目移植到别人电脑后找不到头文件 在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCRO ...
- 利用CocoaPods管理本地工程和发布开源框架
发布自己三方框架 发布云端库 1.创建spec pod spec create xxx 2.编辑spec s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称 ...
- iOS边练边学--cocoaPods管理第三方框架--命令行方式实现
更换源 Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/)源来查找.安装.升级和写在软件包 gem sources --remove ht ...
随机推荐
- ssh密钥登录
一.生成密钥对(两种方式)并配置 方式1:使用ssh-keygen(1)生成并配置 (1)生成密钥对 [root@iZwz9catu2mrq92b07d1d0Z ~]# ssh-keygen -t r ...
- GameObject类及相关API
GameObject.Find(String name):查找一个名为name的游戏物体,并返回这个游戏物体,找不到返回null.(不到万不得已,不要在Update()中使用,建议在Start()中使 ...
- CSS常见布局解决方案
最近要准备移动端项目,大半年没好好写过CSS了,今天恶补了一下CSS的一些布局,下面做一些分享. 水平居中布局 1.margin + 定宽 <div class="parent&quo ...
- 十一、Hadoop学习笔记————数据库与数据仓库
数据仓库是集成的面向主题的数据库的集合 面向主题主要是宏观上解决某一类问题,集合性指数据集 数据库主要处理用于事务处理,数据仓库用于分析处理,数据库适用于操作型数据,便于增删改查, 数据仓库则用于挖掘 ...
- jsp运行原理及运行过程
JSP的执行过程主要可以分为以下几点: 1)客户端发出请求. 2)Web容器将JSP转译成Servlet源代码. 3)Web容器将产生的源代码进行编译. 4)Web容器加载编译后的代码并执行. 5)把 ...
- 三种方法实现PCA算法(Python)
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目 ...
- 洛谷 P3928 Sequence
题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强.小强便打算找出这三个数列内的最长波动数列. ...
- 对于vue.js初步了解
由于本人做的是javaWeb的开发,对于前端的了解还是有限,今天对于vue.js了解了下(主要是看官方api),把自己的心得说一下,希望各位大神可以补充,谢谢 http://www.runoob. ...
- 倒水问题 (FillUVa 10603) 隐式图
题意:本题的题意是给你三个杯子,第一二个杯子是空的,第三个杯子装满水,要求是量出一定容量d升的水.若是得不到d升的水,那就让某一个杯子里面的水达到d',使得d'尽量接近d升. 解题思路:本题是给出初始 ...
- 再说Postgres中的高速缓存(cache)
表的模式信息存放在系统表中,因此要访问表,就需要首先在系统表中取得表的模式信息.对于一个PostgreSQL系统来说,对于系统表和普通表模式的访问是非常频繁的.为了提高这些访问的效率,PostgreS ...