CocoaPods1.9.1和1.8+ 使用 出现CDN: tr
2020-04-28 本文已影响0人
越天高
相信很多朋友最近跟我一样用cocoapods的时候出现了问题,每次更新cocoapods都会有一定的改变,需要我们自己修改,
Cocoapods的安装
因为mac都是自带ruby的所以我们只需要根据下面的步骤来就可以了
1.先升级Gem
sudo gem update --system
如果显示
Latest version already installed. Done.
说明 更新成功
2.切换cocoapods的数据源
【先删除,再添加,查看】
gem sources --remove https://rubygems.org/
// gem sources -a https://ruby.taobao.org/(淘宝已经不更新了所以这个不可以使用了,我们可以使用,下面这个)
gem sources --add https://gems.ruby-china.com #添加国内镜像源
(最新的trunk使用的是 https://cdn.cocoapods.org/)
gem sources -l//查看数据源
3.安装cocoapods
sudo gem install cocoapods
或者使用下面的:
(如10.11系统)sudo gem install -n /usr/local/bin cocoapods
4.将Podspec文件托管地址从github切换到国内的oschina
【先删除,再添加,再更新】
pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
5.设置pod仓库
pod setup
如果出现
setup这一步会很慢或者无限卡 Setting up CocoaPods master repo,这是因为要在github下载代码,
我这一步一直有问题,查询网上都说要将specs仓库镜像换成gitcafe上的镜像
或者是 oschina 上的镜像即:
pod repo remove master
使用源安装CocoaPods库
$ pod repo add master https://git.coding.net/CocoaPods/Specs.git
//或者 pod repo add master https://git.oschina.net/akuandev/Specs.git
但是执行 pod repo remove master之后老是提示[!] repo master does not exist;然后执行 pod repo add master
https://git.coding.net/CocoaPods/Specs.git
之后又会提示[!] To setup the master specs repo, please run pod setup.
然后就无限卡死这两步,不知道是因为cocoapods版本的问题还是网络的问题,
最后直接手动将代码git到本地得以解决问题:
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
1.9.1要是使用下面的来手动添加,
git clone https://gitee.com/mirrors/CocoaPods-Specs.git ~/.cocoapods/repos/master
git完成之后如下:
添加完成.png6.测试
【如果有版本号,则说明已经安装成功】
pod --version
7.利用cocoapods来安装第三方框架
01 进入要安装框架的项目的.xcodeproj同级文件夹
02 在该文件夹中新建一个文件podfile (cd到当前工程的文件夹 在终端使用touch Podfile命令创建出一个文件,然后用文本编辑打开)
03 在文件中告诉cocoapods需要安装的框架信息
a.该框架支持的平台
b.适用的iOS版本
c.框架的名称
d.框架的版本
具体使用:
cd 项目路径
pod init #创建默认的 Podfile(可跳过)
vim Profile #编辑(没有会创建)Profile配置文件
pod install #安装或删除第三方库
pod install --no-repo-update #安装第三方库,不更新本地索引
pod update #更新到最新版本或指定版本
例如:
platform :ios, '8.0'
pod 'SDWebImage', '~> 5.0'
platform :ios, '8.0' #支持的iOS版本
target 'Demo' do #指定的项目
pod 'AFNetworking' #要添加的第三方库名称及指定版本
end
8.安装
pod install --no-repo-update下载不需要更新pod
pod update --no-repo-update
如果想搜索的话可以使用 pod search XXX
9.说明
platform :ios, '8.0' 用来设置所有第三方库所支持的iOS最低版本
pod 'SDWebImage','~>2.6' 设置框架的名称和版本号
版本号的规则:
'>1.0' 可以安装任何高于1.0的版本
'>=1.0' 可以安装任何高于或等于1.0的版本
'<1.0' 任何低于1.0的版本
'<=1.0' 任何低于或等于1.0的版本
'~>0.1' 任何高于或等于0.1的版本,但是不包含高于1.0的版本
'~>0' 任何版本,相当于不指定版本,默认采用最新版本号
10.使用pod install命令安装框架后的大致过程:
01 分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。
02 下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。
03 生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。
04 整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。
- 有一些框架是不支持pods,要在添加之前查看一下how to use有没有说明,
或者到框架文件里面查看有没有podspec后缀的文件有的话基本可以使用
在我们使用的时候 可能会出现一下错误 CDN: trunk URL couldn't be downloaded:
解决方案
- pod repo list 查看一下源列表
- podfile添加source 'xxx', 第一步中你看看到的那个source,如果使用原来的方法的话 就把第一个master的url添加到我们podfile里面
添加了之后像下图那样,就可以使用像之前那样正常使用,但是这个方法感觉不是长久之计,而且我不喜欢在podfile里面添加source这句,因为CocoaPods默认使用CDN,肯定以后会朝着使用CDN的方向发展,这个方法感觉以后还有出现问题,所以还是尽早的适应CDN的好,毕竟他是为了使我们的开发更加的方便才推出的。
添加Source的Podfile.png 成功集成.png
如果我们想使用CDN的需要修改hosts的地址
- 打开终端 执行
sudo vi /etc/hosts - 在文件里面添加
199.232.68.133 raw.githubusercontent.com
保存退回终端(1.输入i,进入insert模式编辑文本
esc退出插入模式.2. shift + :wq 保存文件并退出文本编辑模) - 执行sudo killall -HUP mDNSResponder
用这个方法,不需要在podfille文件添加source,集成有点慢,需要耐心等着。 但是以后因该都是这种方法,如果你想快点的话 就使用第一种在profile添加source的方法
CocoaPods卸载;
终端使用
sudo gem uninstall CocoaPods #卸载CocoaPods