优质广告供应商

广告是为了更好地支持作者创作

CocoaPods使用总结

更新:

Mac M1版本安装:

1.Finder应用程序中选中终端,command+i显示简介
2.勾选使用Rosetta打开
3.执行(安装过就下一步)

 sudo gem install cocoapods 

4.执行:

sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

Intel版

安装准备:

在终端中操作,首先通过3和4检查ruby源和版本

  1. 移除现有Ruby默认源
gem sources --remove https://rubygems.org/
  1. 使用新的源
gem sources -a  https://gems.ruby-china.com/

"https://ruby.taobao.org/" 不能用了

  1. 验证新源是否替换成功
gem sources -l
  1. 检查 gem 版本号
sudo gem -v

升级gem

sudo gem update —system

如果报错:

ERROR: While executing gem ... (OptionParser::AmbiguousOption)
ambiguous option: -system

安装RVM:

 \curl -sSL https://get.rvm.io | bash -s stable --ruby

查看Ruby版本:

ruby -v

Ruby已知版本:

 rvm list known

安装Ruby:

rvm install 2.4.1

安装CocoaPods

(1)

sudo gem install -n /usr/local/bin cocoapods

输入电脑密码, 回车等待.

ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.

current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.12.2/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20200317-4203-18pus5p.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.h

You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.

因为ruby版本低,执行:

brew upgrade ruby

(2)

pod setup

需要一段时间.

如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup.
命令如下:
pod repo remove master
pod setup
如果安装成功,~/.cocoapods下文件夹会有几百M.

(3)创建Podfile文件,在终端cd到工程文件夹内,下边(1)和(2)任选其一:
1).新建文件 “Podfile”,终端执行

vim Podfile

写入2)的内容并保存.

提示: 终端vim文件按 i 可编辑 , esc 退出编辑, : wq 可保存退出

2).终端执行:

pod init

然后在Xcode中打开podfile文件,如果用TextEdit打开修改Podfile, pod install后会报警告:

[!] Your Podfile has had smart quotes sanitised. 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.

里面的样式如下:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'  // 最低支持的系统版本

target 'targetName' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!

# Pods for sync
// pod 'AFNetworking'  
end

(4)搜索三方库:
pod search 库名

(5)导入第三方库
pod update(比较慢)
或者pod install
或者pod update --no-repo-update

如果不想在pod update的时候升级repo库 ,可以忽略掉,使用pod update --no-repo-update,比较快, 但是如果github上pods的三方库有新版本了,你本地搜索到的还是旧版本,新版本是无法装配的,所以每隔一段时间最好执行一下pod repo update
--verbose是打印详细信息.

出现Setting up CocoaPods master repo,cd 到~/.cocoapods,如果repos文件夹大小一直没有变化, 因为墙阻挡了cocoapods.org。

oschina是国内的服务器, 可以用它们CocoaPods索引库的镜像:

  • pod repo remove master
  • pod repo add master http://git.oschina.net/akuandev/Specs.git
  • pod repo update

第二条命令执行的时候会比较耗时,要去把整个specs仓库clone一下,下载到 ~/.cocoapods里, cd 到~/.cocoapods,
du -sh *命令来查看文件大小,需要等待一段时间,这个目录最终大小是几百M,每个CocoaPods版本不同。

(6)删除三方库:
在Podfile文件, 删除想要删除的三方库(或者前面加#注释掉),然后终端执行pod installpod update

删除一些三方库后编译可能会报错: library not found for -l库名,解决:
在Build Settings中搜索Other Linker Flags,去掉-l"库名"。
(有时不管用,应该是cocoapods的版本问题)

更新CocoaPods版本:

sudo gem update cocoapods 

查看版本:

pod --version

导入三方库报错:

[!] CocoaPods was not able to update the master repo. If this is an unexpected issue and persists you can inspect it running pod repo update --verbose ```

尝试解决:

尝试1: 根据提示,跑一下

pod repo update --verbose

尝试2:如果还是出现原来问题,升级CocoaPods版本

sudo gem update cocoa pods

尝试3:如果升级还是出现原来的问题,那么重装CocoaPods .

  • 首先查看本地装了关于cocoapods的哪些东西,在终端输入
gem list --local | grep cocoapods
  • 接着全部卸掉
sudo gem uninstall cocoapods
  • 再安装
sudo gem install cocoapods

尝试4:如果问题依旧,那么清除缓存,清除命令:

sudo rm -fr ~/Library/Caches/CocoaPods/
sudo rm -fr ~/.cocoapods/repos/master
pod setup

还不行的话就把当前 Pods 目录清空:

sudo rm -fr Pods/
sudo gem install -n /usr/local/bin cocoapods
pod setup 

看看还有没有报错.

CocoaPods的使用补充:

使用CocoaPods来添加第三方类库, 无论是执行pod install还是pod update, 如果都卡在了Analyzing dependencies不动, 原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库, 加一个参数可以省略这一步, 命令如下:

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

pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。 但是 pod update会更新所有的类库,获取最新版本的类库。平时一般使用pod update --no-repo-update更新,定期使用pod update更新.

Cocoapods降低版本及卸载

一. 移除pod组件
1.这条指令会告诉你Cocoapods组件装在哪里 :
which pod
2.你可以手动移除这个组件 :
sudo rm -rf 路径
二. 移除 RubyGems 中的 Cocoapods程序包
Q: RubyGems是什么?
A: RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。
1.查看gems中本地程序包
gem list
2.移除程序包
sudo gem uninstall cocoapods -v 要移除的版本号
3.安装指定版本的Cocoapods
sudo gem install cocoapods -v 要安装的版本号

终端走代理:

export http_proxy=http://proxyAddress:port
Example:export http_proxy=http://127.0.0.1:1087

Homebrew官网

https://brew.sh/index_zh-cn.html

RVM

https://rvm.io/rvm/install

唐巧博客
用CocoaPods做iOS程序的依赖管理

优质广告供应商

广告是为了更好地支持作者创作

推荐阅读更多精彩内容

  • 连续第四天写晨思是什么样的感受? 这可能是去年11月份以来第一次连续四天写晨思,当然以前也叫晨间日记等。是...
    博子阅读 67评论 0 0
  • 长相思 望京路上望故乡 朝风凉 夜风凉 落叶知秋念故乡 斜阳遍地黄 望京长 (望京路) 望街长 常梦家中米饭香 举...
    can_54b4阅读 134评论 0 0
  • 优质广告供应商

    广告是为了更好地支持作者创作

  • 我的这一周生活可真多姿多彩!不过,想起下星期三要考试,又紧张起来。但这一周我依然快乐!因为星期二,我们班本...
    星皓妈妈阅读 327评论 0 1