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 ...
随机推荐
- LKD: Chapter 6 Kernel Data Structures
这一章我们研究四种主要的数据结构: linked lists, queues, maps, binary trees. Linked Lists:(<linux/list.h>) 在lin ...
- 单节点下使用docker部署consul
部署consul 目前Consul使用的版本是: v1.0.1 本教程适用于刚刚开始学习consul并简单使用consul的同学,可以在短时间内了解conusl,配合官方文档https://www.c ...
- Numpy入门 - 行列式转置
本章实例讲解如何将一个数组对象进行转置,我们可以使用.T将行列数据颠倒过来,看下面的代码: import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6 ...
- (四):C++分布式框架——状态中心模块
(四):C++分布式框架--状态中心模块 上篇:(三):C++分布式实时应用框架--系统管理模块 技术交流合作QQ群:436466587 欢迎讨论交流 版权声明:本文版权及所用技术归属smartguy ...
- npm install 时报错 Unexpected end of input at 1:15930
从github上clone代码后npm install,结果解决办法: npm config set registry https://registry.npm.taobao.org之后出现自动生成了 ...
- gitup问题的处理
在使用本地建立git仓库后,准备使用 因为之前已经登录了,所以没有给登录的命令行 1.git init 命令初始化仓库 2.git add . 命令将所有的文件传输到git仓库 ...
- PHP生成xml 无法识别或是无法读取或是浏览器不识别等问题
PHP 数组转XML函数如下 [PHP] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- 文件夹的创建(cmd利用)
在windows本地上创建文件夹是无法用..结束的,我们要创建的话,需要在cmd里面进行创建输入 mkdir abc..\ 那么我们从本地看出abc..文件夹建成了怎么删除呢? 需要手动在里面建个文件 ...
- PHP 获取ip地址
public function getIP() { if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP& ...
- Pythonh中的zip()与*zip()函数详解
前言 实验环境: Python 3.6: 示例代码地址:下载示例: 本文中元素是指列表.元组.字典等集合类数据类型中的下一级项目(可能是单个元素或嵌套列表). zip(*iterables)函数详解 ...