
Cocoapods
??:CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 93 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly.
??:
CocoaPods是Swift和Objective-CCocoa项目的依赖管理器。它拥有超过 93,000 个库,用于超过 300 万个应用程序。CocoaPods可以帮助您优雅地扩展项目。
红宝石?
Ruby:一种简单快捷的面向对象(面向对象程序设计)脚本语言,macOS默认安装了Ruby,但是版本不是最新的,CocoaPods基于Ruby语言编写而成。包管理工具?
RubyGem:gem是Ruby的包管理工具,从Ruby 1.9之后, 安装Ruby则默认安装着gem,Mac默认 安装Ruby 2.6.3,可以使用gem安装CocoaPods。
Cocoapods的安装(旧系统版本可以使用,但是不建议,淘汰)
不建议使用系统自带的
ruby进行安装cocoapods,但是还是介绍一下怎么用
- 更换
ruby源
// 查看ruby源
gem sources -l
// 默认情况下的ruby源:https://rubygems.org/
// 但是这个在国内是用不了的,所以我们需要更换成可以使用的 ruby 源,可以先将查询到的默认源移除
gem sources --remove https://rubygems.org/
// 然后添加可用ruby源
gem source -a https://gems.ruby-china.com/
- 更新
gem
sudo gem updates —system
- 使用
gem安装Cocoapods
sudo gem install cocoapods
Cocoapods的安装(新系统版本macOS12以上)
MacOS预装了Ruby,但是MacOS包含不是最新版本的Ruby,并且gem保存路径有权限问题
- 运行
gem install时会尝试将gem保存到系统Ruby目录下/Library/Ruby/Gems/2.6.0 - 该目录归
root系统所有,普通用户不允许也不应该写入(这里踩了好多坑都没办法写入,包括关闭SIP或者使用超级管理员sudo)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory
- 解决方案:使用
Homebrew安装ruby、Cocoapods,跳过使用gem
Cocoapods的使用
- 创建
Podfile文件 - 在新建
Xcode项目,在终端里cd到项目的主文件夹(就是包含项目.xcodeproj的文件),执行命令 - 小技巧:可以
cd+ 拖拽当前文件夹 直接生成路径
pod init
- 编辑
Podfile文件 ,podfile文件添加语句,Podfile文件实际上是一个说明书,通过配置它,可以告诉CocoaPods应该安装哪些库。 - 在
AFNetworking的官网,也可以查询到要安装AFNetworking具体应该如何写Podfile,现在将Podfile修改为:
pod 'AFNetworking', '~> 3.1.0'
- 安装依赖库
// 正常执行这个
pod install
// M1芯片执行有问题可以尝试下面这个
arch -x86_64 pod install
- 安装完成后此时项目文件中会多出
.xcworkspace文件,以后就通过它来打开项目
Cocoapods其他操作
- 更新库依赖
// 记得 cd 到项目的主文件夹下
pod update
- 卸载
Cocoapods
sudo gem uninstall cocoapods
- 搜索框架
pod search 框架名
- 查看
pod安装地址
which pod
- 查看
pod版本,可用于验证安装是否成功
pod --version
注意事项
Cocoapods还通过一个名为Pods.xcconfig的文件在编译时设置所有的依赖和参数当执行完
pod install之后,Cocoapods会生成一个名为Podfile.lock的文件,这个文件最大的用处在于多人开发,如果没有在Podfile中指定Pods版本,那么默认为获取当前三方库的最新版本
相关引用
版权声明:本文为weixin_46926959原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。