Ruby的更新
检查Ruby的版本
Mac系统自带的安装的了ruby,ruby --version
可以查看系统版本。
更新Ruby的版本
因为Mac自带安装了ruby,但是有时候版本太低,无法满足需求,所以需要升级ruby的版本。
gem、rvm都是两种来更新ruby的方式,但是如果公司的网络设置了代理,那么上面两种方式来更新ruby会失败,需要用到下面的指令来设置代理。(关闭终端窗口之后,代理设置就会失效,需要重新设置。)
废弃的镜像
淘宝的镜像https://ruby.taobao.org/
已经不可用了。现在用最新支持的ruby镜像https://gems.ruby-china.org/
。当然随着时间流逝,该镜像也可能会失效。最新ruby镜像查询
镜像安装命令
gem sources -r https://rubygems.org/
(移除旧版本的镜像,如果你不知道你电脑上目前用的是什么镜像,可用 gem sources -l
来查看)
gem sources -a https://gems.ruby-china.org/
(增加可用的镜像)
gem sources --add https://gems.ruby-china.org/
(如果上面的语句不起作用,参考这里)
gem sources -l
(用来检查使用替换镜像位置成功)
2.1 下载CocoaPods文件
2.2、下载repo,输入pod setup
sudo gem install cocoapods
这个命令在MacOS10.13之前的系统上使用没有问题是可以安装CocoaPods的,但是想要在MacOS10.13的系统上装CocoaPods是行不通的。一直会提示time out。参考了这篇文章之后,尝试了一下居然可以下载了。
终端会提示 Setting up CocoaPods master repo 表示正在下载了。如果是一次是下载慢的话可能需要半个小时左右。
新开一个终端窗口,输入"cd ~/.cocoapods/"命令行跳到cocoapods文件夹内,
然后输入" du -sh * " 可以查看已经下载的内容大小
随着MacOS系统的提高,有时候会出现之前的环境太老的情况,比如ruby版本太低,需要更新ruby,参考这里更新或者安装ruby
网络限制,一些大的公司可能对网络有限制,连接外网需要走专门的代理,这个时候更新会遇到各种各样的坑。
2017年08月09日14:12:042
zhouzewen:~ civet$ gem install cocoapods
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://gems.ruby-china.org/ - no such name (https://gems.ruby-china.org/specs.4.8.gz)
安装cocoapods遇到这个报错,解决的办法是用手机分享了一个热点给电脑,利用这个网络才装好cocoapods。
使用pod 下载第三方库
2017年08月09日15:43:37
[!] Unable to find a pod with name, author, summary, or description matching
SDWebImage
pod search 第三方库的时候提示这个错误,参考cocoapods找不到第三方库、od search 搜索类库失败的解决办法两篇文章,删除了seach_index.json文档之后就重新 pod search 第三方库经过漫长的等待(重新下载seach_index.json),就可以了。
当你需要用pod导入一个第三方库的时候,首先要搜索下改库的一些信息。
pod search 库名 例如 pod search SDWebImage (search的时候,库的名字可以小写)
可以看到最新的4.0 还在测试中,下面有个3.7的是可以用的。
知道了这些之后,就需要来新建Podfile了。
新建一个Xcode项目,比如名字叫做Demo,然后在终端中cd到该目录下。
touch Podfile 这个时候会在该目录下新建这个文件。需要在这个文件中输入一些设置内容。(注意:Podfile要和Test.xcodeproj在同一目录下,而不能是Test目录下。否则配置pod的依赖路径会一直有问题。)
两种方式可以输入内容
1.直接打开Podfile 输入文本
2.终端vim 命令
两者内容都是一样的。
platform : ios '7.0' (平台是iOS 系统 版本最低是7.0 , OS 不要大写)
pod 'SDWebImage','~>3.7' (pod导入第三方库SDWebImage 分好不要省略,箭头是~>不是->)
target 'Test' do (如果项目中有多个taget,那么就Test就替换成需要的那个,不要写成Test.xcodeproj ,后面的 do 不能少)
end (表示内容结束,也是不能省略的)
如果需要添加多个第三方库,那么可以在end 之前继续pod ,如 pod 'AFNetworking' , '~>3.0'
注意:Podfile中的库名是区分大小写的,要写的和库的原名一样,不要大小写混乱了。
2017年08月09日16:24:36
[!] Pods written in Swift can only be integrated as frameworks; add
use_frameworks!
to your Podfile or target to opt into using it. The Swift Pod being used is: KissXML
在安装XMPPFramework的时候遇到这个问题,原因是不允许建立包含swift的静态库,可能xmppframework中包含有swift文件,所以需要另外建立Podfile。可以参考这里
2017年08月09日16:31:22
[!] Smart quotes were detected and ignored in your Podfile. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
这个问题是由于Podfile中的单引号用的是中文的,所以最好还是用vim命令去修改Podfile,全程用英文输入,确保不会有中文标点之类的。
安装好了之后需要配置 user header search path
Build Settings 中一共有三项来配合 头文件的搜索路径
Header Search Paths #import <> 一般是系统的头文件
User Header Search Paths #import "" 非系统的头文件,一般是第三方的或者自己的
Always Search User Paths YES/NO
当 Always Search User Paths 设置为YES的时候,表示User Header Search Paths 的优先级会高于系统的。
#import <UIImageView+WebCache.h> 这样有点不习惯,
如果你想要用#import "UIImageView+WebCache.h"的方式导入,可以在User Header Search Paths添加搜索路径。
$(PODS_ROOT) 并选择递归
常用cocoapods命令
pod install --verbose --no-repo-update 插入第三方库
pod install --verbose --no-repo-update 更新第三方库
单独更新或插入某个第三方库 两种写法
pod update 库名
pod update 库名 --verbose --no-repo-update
pod install 更新所有第三方库
2017年10月16日11:24:32
创建私有的库,通过Pod 引入到自己的项目中。可以参考使用Cocoapods创建私有podspec来创建。
2018年03月07
两个target其中一个是framework,所以默认的项目配置和Project的不同,所以需要配置一些东西。
根据提示的第一条,Target是 CivetRTCkit,配置项OTHER_LDFLAGS
,要使用$(inherited)
。
后面的一个是release的,目前是开发版本所有无需修改。这样再次执行pod install 之后项目就可以运行了。
2018年04月15日
pod install命令无法正确的执行
看到有新版本的Xcode,所以在本机拥有Xcode9.2的情况下下载9.3,然后运行pod install的时候发现错误。鉴于之前的经验,安装了和9.3匹配的commandline工具之后,就没有问题了。但是本地的cocoapods库比较老旧了,所以需要更新了一下本地的repo。
2018年05月30日
podfile文件中只pod 'SDWebImage', '~> 4.0.0'
但是终端提示导入了两个版本,回顾之前的操作,发现是pod 'NIMKit/Full'
,网易云信的这个库会添加一些依赖的库,其中就包括了SDWebImage.
解决办法是注释掉podfile文件中SDWebImage的库
用pod --version
查了一下当前的版本是1.3.1,但执行sudo gem update --system
,猜测可能是Xcode版本过低导致的原因,本地是9.2,去官网下载了一个9.3的,最新的XCode是9.4。然后安装了对应的commandlineTool之后, 执行sudo gem update --system
就成功了,然后安装一下cocoadpods就可以了.
pod search不到需要的库
新电脑安装完cocoapods之后例行测试一下,发现无法搜索到库。
参考CocoaPods: pod search 搜索类库失败的解决办法就解决了。
按照步骤就可以完成了,值得一提的是卡在Creating search index for spec repo 'master'..
这句话这里很久。
2018年10月11日
用Xcode10创建了一个项目之后,安装cocoapods遇到警告,而且项目中无法饮用第三方库的头文件。
警告内容说的很清楚了,就是需要添加在HEADER_SEARCH_PATHS
中添加$(inherited)
这个路径就好了。另外这篇博客的错误13还提到了一些其他的解法。
参考资料
关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
2016 cocoapods的安装和使用以及版本升级遇到的问题
Setting up CocoaPods master repo 卡着不动
iOS项目中安装和使用 Cocoapods
细聊 Cocoapods 与 Xcode 工程配置
iOS 库依赖管理工具CocoaPods「安装+问题解决+活用」
单独更新某一个库
安装Cocoapod遇到的问题
卸载Cocoapod