Podspec 制作
- Podspec创建
打开终端,cd到指定位置,执行以下命令
pod lib create MyTest
- Podspec修改
Pod::Spec.new do |s|
s.name = 'MyTest'
s.version = '1.0.0'
s.summary = 'My Pod Test'
s.homepage = 'https://github.com/xxx/MyTest'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '姓名' => '邮箱' }
s.source = { :git => 'https://github.com/xxx/MyTest.git', :tag => s.version.to_s }
s.ios.deployment_target = '9.0'
s.source_files = 'MyTest/*.{h,m}'
end
注意s.source_files
选项,为根目录下MyTest
文件下的所有.h
和.m
文件。
- Podspec验证
pod lib lint
正常情况下,验证是通过的 MyTest passed validation.
如果验证出错,需根据错误提示进行处理。
对于警告,可添加--allow-warnings
进行忽略
pod lib lint --allow-warnings
- 代码上传
添加仓库地址
以上操作后,我们需要将我们的代码上传到远程仓库。
若是新建仓库,个人建议建立一个空的仓库
,即使是README.md也不需要
。然后在整个工程的根目录下,执行操作
git remote add origin xxx.xxx.git
如果报错,可先
git remote rm origin
git push -u origin master
也就是把远程仓库地址添加到工程里,这样我们就可以进行代码的提交。
若是已有仓库,或者是仓库有文件。个人建议先将此仓库克隆下来,然后把我们用pod创建的工程整个拖进去,这样我们就可以进行代码提交了。
添加tag
git add -A && git commit -m "Release 1.0.0"
git tag 1.0.0
git push --tags
需要注意的是,这个tag需要与podspec里的version号一致
,否则在提交podspec到pod远程仓库的时候会出错。
推送到远程
git push origin master
至此,所有的文件都应该是上传到远程代码仓库了,我们可以查看自己的远程仓库,看是否有提交记录。
Podspec提交公有仓库
公有仓库说明
此处的公有仓库,指的是cocoapods官方的仓库。用于存放用户提交的podspec文件,以便于所有用户使用pod拉取第三方代码。
- 注册设备
在向cocoapods远程仓库提交自己的podspec,需要进行设备注册(认证)。
pod trunk register xxx@xxx.com 'my name' --description='my macbook air'
然后查看自己的邮件,复制邮件中的链接,用浏览器打开即可。(此操作可能出现失败,需良好的网络环境)
- 提交.podspec
pod trunk push MyTest.podspec
注意命令执行的目录,需要项目根目录执行。
正常情况下,会提示你提交成功,然后就可以用pod搜索自己的库了。例如 $ pod search MyTest
,就可以搜索到我刚才提交的MyTest的pod资源了。
对于警告,可添加--allow-warnings
进行忽略
如果搜索不到,可能需要删除索引文件了。
rm ~/Library/Caches/CocoaPods/search_index.json
然后再次执行 pod search
。
Podspec提交私有仓库
私有仓库说明
此处的私有仓库,指的是个人或者公司使用而不让其他人使用的仓库。与公有仓库类似,用于存放用户提交的podspec文件,以便于私有用户使用pod拉取自己的代码。
- 私有仓库创建
此创建与普通git仓库创建类似,最好使用README.md初始化,顺便补充README.md文件信息。
- 私有仓库本地安装
pod repo add MyRepo xxx.xxx.git
在本地安装一个名叫 MyRepo
的私有仓库, xxx.xxx.git
为私有仓库地址。
- 查看本地私有仓库
cd ~/.cocoapods/repos
ls
- 验证.podspec
pod lib lint --private
私有库的验证,需要添加--private
。
如果有警告,可添加--allow-warnings
进行忽略
pod lib lint --private --allow-warnings
需要注意的是,在提交 .podspec
前,同样需要修改 .podspec
文件,验证、打tag、源码提交
- 提交.podspec
pod repo push MyRepo MyTest.podspec
向私有库 MyRepo
提交 MyTest.podspec
文件。
如果有警告,添加--allow-warnings
进行忽略。
- 私有库引用
source ‘xxx.xxx.com/MyRepo.git’
source ‘https://github.com/CocoaPods/Specs.git’
- 私有库卸载
pod repo remove MyRepo
其它用法
- 指定git使用
pod 'MyTest', :git => 'https://github.com/xxx/MyTest.git', :tag => '1.0.0'
制作的pod无需上传到公共或私有库,只需上传到git,即可使用。
- 指定path使用
pod 'MyTest', :path => './MyTest'
制作的pod放在本地,即可使用。路径可拖动制作好的私有库到终端
,或显示简介
拷贝位置。
信息补充
关于私有仓库:
私有仓库只是用来存放私有的podspec,不存放代码。可为外网git,也可为内网git。总而言之,只是podspec的仓库。
关于代码仓库:
代码仓库用来存放自己的源代码的git,可为外网git,也可为内网git。总而言之,只是代码的仓库。
一个私有库,可以存放n多个podspec文件,管理着n多个私有pod。
私有仓库可以随意删除,但不会影响到代码仓库。私有仓库不要加入代码,因为加了也没有任何作用。
私有库与公有库基本一样,只是一个是官方的git,一个是自己的git。私有库需安装,podspec验证需加上说明,使用的时候需引入。