CocoaPods使用. CocoaPod问题 --verbose --no-repo-update

[CocoaPods]
CocoaPods是什么?
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。

为什么建议使用CocoaPods

通常,当我引入第三方类库的时候需要

第一:复制开源库的源码文件到项目中去;

第二:添加开源库依赖的系统的framework;

第三,对于不同的开源库,配置相应的编译参数(例如-fno-objc-arc,-licucore等等);

第四:管理这些依赖包的更新。

   CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。

安装

  1. 执行命令行
$ sudo gem install cocoapods

安装结束的时候执行

$ pod setup(国内访问时间install过长,可以用2替换)

2.执行命令行

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

等有反应之后再敲入以下命令

 $ gem sources -a http://ruby.taobao.org/ 

      要想验证是否替换成功了,可以执行:

       $ gem sources -l

      正常的输出是:

   *** CURRENT SOURCES ***

    http://ruby.taobao.org/

若因为root权限问题,shift+commd+G,进入文件/usr/local/lib/,启动pod

  1. cd 你的文件夹路径的上一级目录。
  2. sudo chmod -R 777 你的文件夹名。
  3. 输入密码。
    4.成功。

https://juejin.im/post/5afa542ff265da0b863665a6 pod Specs镜像
使用
1.创建Podfile
$ cd 工程文件夹拖过来

$ touch Podfile 或者 pod init

此时工程根目录会多一个空白Podfile文件
编辑册此目录文件
platform :ios
pod ‘Reachability’, ‘~> 3.0.0’
pod ‘SBJson’, ‘~> 4.0.0’

platform :ios, ‘7.0’
pod ‘AFNetworking’, ‘~> 2.0’
写法
pod ‘AFNetworking’ //不显式指定依赖库版本,表示每次都获取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘> 2.0’ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>= 2.0’ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘< 2.0’ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<= 2.0’ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~> 0.1.2’ //使用大于等于0.1.2但小于0.2的版本
pod ‘AFNetworking’, ‘~>0.1’ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0’ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版

2.安装xcworkspace
确保工程是关闭的状态
$ cd 文件夹拖过来
$

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

当打印完成
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.1.0)
Installing JSONKit (1.5pre)
Installing Reachability (3.0.0)
Generating Pods project
Integrating client project

[!] From now on use CocoaPodsTest.xcworkspace.
说明执行成功了,需要使用.xcworkspace文件来开发

CocoaPods常用命令

1、pod install(Podfile文件写完执行pod install)
根据Podfile文件指定的内容,安装依赖库,如果有Podfile.lock文件而且对应的Podfile文件未被修改,则会根据Podfile.lock文件指定的版本安装。
每次更新了Podfile文件时,都需要重新执行该命令,以便重新安装Pods依赖库。
2、pod update(以后要是更改了Podfile文件,得重新执行一次 pod update 命令)
若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本。

查找第三方库

$ pod search json

$q UP dewn

platform :ios, ‘8.0’
target "ReactiveCocoaDemo" do 
end 

pod 'ReactiveCocoa', '2.5'
pod 'Masonry', '~> 1.0.1'

-> AnyJSON (0.0.1)
Encode / Decode JSON by any means possible.

  • Homepage: https://github.com/mattt/AnyJSON
  • Source: https://github.com/mattt/AnyJSON.git
  • Versions: 0.0.1 [master repo]

-> JSONKit (1.5pre)
A Very High Performance Objective-C JSON Library.

  • Homepage: https://github.com/johnezang/JSONKit
  • Source: git://github.com/johnezang/JSONKit.git
  • Versions: 1.5pre, 1.4 [master repo]

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

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

原因是本地的repo库太长时间没有更新了or没有找到本地的repo库or本地的repo库不是最新匹配的 需要时用

pod install、pod update

不管是否是第一次向项目中导入pod库,只要项目中添加或移除pod库,都要调用pod install,只有当你想要更新pod库的版本时才使用pod update.

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

去忽略 本地的repo库的升级操作
如果想单独update升级一个的话,podsearch找到这个库,先给他指定版本 pod ‘TwitterKit5’, ‘~> 5.2.0’

pod 操作过后异常 ,但是版本控制并未发现修改

删除本地podfile.lock
pod deintegrate
pod clean
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值