本文只记录相关操作的主要步骤,不处理相关异常情况,详细内容可参考相关文章。
一. 配置Cocoapods开发环境
[Cocoapods]第三方库管理工具Cocoapods安装及使用
1. 传统方式
1.1 搭建Ruby环境
查看当前 Ruby 版本信息
ruby -v
查看当前 gem
版本
gem -v
升级当前 gem
版本
sudo gem update --system
替换当前 Ruby
镜像, 替换之前尽量使用较高版本的 gem
// 移除原有的镜像
gem sources --remove https://rubygems.org/
// 添加淘宝的镜像
gem sources -a https://ruby.taobao.org/
查看当前 Ruby
镜像
gem sources -l
1.2 安装Cocoapods
安装
sudo gem install cocoapods
查看当前 Pod
版本号
pod --version
升级/安装
sudo gem install cocoapods --pre
如果报权限错误,可使用下面的指令:
sudo gem install -n /usr/local/bin cocoapods --pre
1.3 使用Cocoapods
cd
到项目根目录
新建 Podfile
文件
pod init
打开新建的 Podfile
文件, 添加需要使用的第三方库
下载第三方库
pod install
升级第三方库
pod update
如果以上指令运行比较耗时, 可使用下面的指令来跳过本地仓库的升级
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
或者
pod install --no-repo-update
pod update --no-repo-update
查看某个第三方库的可用版本
pod search LQWebView
2. 使用homebrew安装Cocoapods
以上的安装方法在 10.13.2+
的系统版本中可能会安装失败, 可用尝试使用 homebrew 来安装;
安装 homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装 Ruby
brew install ruby
安装 Cocoapods
sudo gem install cocoapods
二. Cocoapods 托管代码(开源库)
[Cocoapods]使用Cocoapods + Github托管代码
[Cocoapods]项目添加Cocoapods支持遇到的坑
新增
新建 podspec
文件
pod spec create LQWebView
// 或
touch LQWebView.podspec
验证 podspec
文件是否可用
pod lib lint LQWebView.podspec
// 或
pod lib lint LQWebView.podspec —allow-warnings
在 GitHub
新建 Release
版本
...
关联账号
// 邮箱 用户名 描述信息
pod trunk register 302934443@qq.com 'LQQ' --description='LQWebView'
然后去邮箱验证
...
查看仓库信息
pod trunk me
最后检测是否可用
pod spec lint
// 或
pod spec lint —allow-warnings
上传
pod trunk push LQWebView.podspec
// 或 (如果需要忽略警告)
pod trunk push LQWebView.podspec --allow-warnings
更新
pod trunk push LQWebView.podspec
// 或 (如果需要忽略警告)
pod trunk push LQWebView.podspec --allow-warnings
三. Cocoapods 创建私有库
- 创建代码仓库
在 GitHub
或者其他的 Git
托管平台,或者公司的 Git
服务器,新建仓库,需要注意 GitHub
不能创建免费的私有项目;
然后将仓库克隆到本地,可以使用 Sourcetree
客户端,也可使用终端命令:
// 进入需要存放文件的文件夹
$ cd /Users/LiuQiqiang/Desktop/GitTest
// clone 远程代码库
$ git clone https://github.com/LQi2009/LQBaseModule.git
然后将需要托管的文件/项目拖进该文件夹;
新建 .podspec
文件:
$ pod spec create LQBaseModule
然后,打开编辑相关的内容
Pod::Spec.new do |s|
s.name = "LQBaseModule"
s.version = "0.0.1"
s.summary = "简述/摘要"
s.description = <<-DESC
这里添加库的相关介绍,例如功能
DESC
s.homepage = "https://github.com/LQi2009/LQBaseModule"
s.license = "MIT"
s.author = { "LiuQiqiang" => "lqq200912408@163.com" }
s.platform = :ios, "10.0"
s.source = { :git => "https://github.com/LQi2009/LQBaseModule.git", :tag => "#{s.version}" }
s.source_files = "LQWebView", "LQWebView/obj/**/*.{h,m}"
end
然后使用下面的指令验证本地文件是否可用
$ pod lib lint
// 不出错的话,会输出下面这句绿色的话
// LQBaseModule passed validation.
成功之后,将所有的文件推送到代码托管平台:
// 添加文件至 Git 管理
$ git add .
// 提交文件
git commit -m "添加你的注释,一般是一些更改信息"
// 推送到远程代码仓库
$ git push origin master
然后,在托管平台新建 Release
版本,注意版本号需要和上面的 s.version
一致,然后输入下面的指令来验证远程仓库是否可用:
$ pod spec lint
// 不出错的话会输出
// LQBaseModule.podspec passed validation.
到此,代码仓库创建完毕;
- 创建 Spec 仓库
spec
仓库是配置仓库,只存放 podspec
文件,不存放任何代码;在存放私有仓库的托管平台新建项目,GitHub
,码云,自有 Git
服务器均可,这里我在码云新建了一个私有仓库,使用下面的指令,在本地Cocoapods
新建一个仓库:
$ pod repo add LQSpec https://gitee.com/liuqiqiang/LQSpec.git
pod repo add REPO_NAME SOURCE_URL
其中的REPO_NAME
是我们要添加的私有repo
的名称(例如:LQSpec
),
后面是仓库的 托管 地址。
这时,在我们本机的/.cocoapods/repo
目录下会新建一个LQSpec
文件夹,用来在本地存放我们的私有仓库的 podspec
文件;
接下来就是将我们的代码托管至我们新建的私有仓库,会同时保存至本地和远程仓库;
进入到我们的 代码仓库 根目录(即与 podspec
文件平级的目录),然后执行下面的指令:
$ pod repo push LQSpec LQBaseModule.podspec
pod repo push spec 仓库名称 podspec文件
不出错误的话,即将我们的代码托管至私有仓库了。
此时,再去码云的远程仓库地址,或者本地的 LQSpec
文件夹内,就会有 LQBaseModule
文件夹,里面存放了各个版本的 podspec
文件;
此时,使用pod search
指令,可以搜索我们刚刚托管的文件:
$ pod search LQBaseModule
正常的话会输出
-> LQBaseModule (0.0.1)
简述/摘要
pod 'LQBaseModule', '~> 0.0.1'
- Homepage: https://github.com/LQi2009/LQBaseModule
- Source: https://github.com/LQi2009/LQBaseModule.git
- Versions: 0.0.1 [LQSpec repo]
如果搜不到,可先执行 pod update
更新本地的仓库,或者直接按下面的方式使用。
PS:输入 wq 回车,可退出搜索
- 使用私有仓库
在项目的 Podfile
文件按如下方式使用私有仓库
source 'https://github.com/CocoaPods/Specs.git' #官方地址
source 'https://gitee.com/liuqiqiang/LQSpec.git' # 私有仓库地址
target 'TestWeb' do
use_frameworks!
# Pods for TestWeb
# 其他第三方库
pod 'LQAlamoUnit', '~> 1.1.0'
# 私有仓库
pod 'LQBaseModule'
target 'TestWebTests' do
inherit! :search_paths
# Pods for testing
end
target 'TestWebUITests' do
inherit! :search_paths
# Pods for testing
end
end
这里需要注意的是开头的两个 source
地址,
第一个 source
地址为 Cocoapods
托管的第三方库的官方地址,也是 Podfile
文件的默认地址,平时使用时都是加载自这个地址,所以没有显示的指定;
但是由于我们使用了私有仓库,如果不指定私有仓库的地址(第二个 source
),我们是无法使用私有仓库内的文件的,会报下面的错误:
[!] Unable to find a specification for `LQBaseModule`
如果我们指定了私有仓库地址,而没有指定 Cocoapods
的官方地址,我们就无法使用那些开源的第三方库,所以这里将这两个地址都显示的指定出来;如果还有其他的仓库,可以依次添加。
然后,就可以正常的使用 pod install 下载相关的第三方库了。
另外,我们可以将远程的私有仓库克隆至本地,方便管理,例如删除
// clone 远程私有仓库
$ git clone https://gitee.com/liuqiqiang/LQSpec.git
网友评论