一:前提
假如有一个工具,想把它打成 pod
库,提供给其他人使用。那么需要以下过程。
首先在GitHub
,GetLab
或者你们公司的仓库建立一个库。记录下https
的地址,并且将这个库clone
到本地。
二:制作Pod库
1:制作podspec
准备工作做好后,开始制作 TestPro.podspec
假设在桌面文件夹Demo
里面有个项目TestPro
。
cd
到工程的同级目录下。执行命令生成 TestPro.podspec
% cd /Users/xxx/Desktop/Demo
% pod spec create TestPro
结构是这样的
2:修改podspec
由于TestPro.podspec
文件是需要遵守一定的规则。所以还需要对他进行修改,用xcode
或者是其他工具打开该文件,进行修改
Pod::Spec.new do |spec|
spec.name = "TestPro"
spec.version = "0.0.2"
spec.summary = "TestPro. is used to appstore check. good"
spec.description = "TestPro. is used to appstore check. more click https://xxx/xxx 、"
spec.homepage = "https://igit.xxxx.com/xxxx/zcmcheckapp"
spec.license = "MIT"
spec.author = { "xxx" => "xxx.com" }
spec.source = { :git => "https://xxx/TestPro.git", :tag => "#{spec.version}" }
spec.source_files = "*"
spec.exclude_files = "Classes/Exclude"
end
3:检测podspec
修改完以后,检查一遍TestPro.podspec
这个文件格式是否正确
% pod spec lint TestPro.podspec
出现错误不要紧,按照提示进行修改。
然后修改一下 ERROR
的设置项,大概没问题后,提交一个tag
% git tag '0.0.1'
% git push --tags
4:ERROR 修复
提交tag
以后,再次检测是否出现问题
% pod spec lint TestPro.podspec
如果出现这个问题
这个库的文件路径不对, 设置spec.source_files
出现了错误,这里的路径是相对于TestPro.podspec
文件的路径, 如果是与TestPro.podspec
同级的文件夹,直接写文件夹名称,如:
spec.source_files = "TestPro"
//或者是
spec.source_files = "TestPro/*.{h,m}"
如果同级文件夹内有子文件夹,而且需要加载同级文件夹内的所有文件,包括子文件夹内的文件。可以这么写:
spec.source_files = "TestPro/**/*.{h,m}"
如果只需要加载某个子文件夹目录下的文件, 一定要逐级添加
spec.source_files = "TestPro", "TestPro/obj/*.{h,m}"
如果没有文件夹,只有文件
spec.source_files = "*"
修改完以后可以在检测一遍
% pod spec lint TestPro.podspec
如果只有警告没有ERROR
,那么可以直接忽略
% pod spec lint TestPro.podspec --allow-warnings
三:提交pod库到trunk
到这里说明TestPro.podspec
文件书写正确了,下一步可以提交到trunk了。
cd
到TestPro.podspec
文件所在的位置
1:注册trunk
如果没有注册trunk
,先注册trunk
,再push
% pod trunk register '你的邮箱'
然后你的邮箱收到邮件,去点击一下就可以完成注册
% pod trunk me
可以查看你的信息,如果能查看你的信息,说明你注册成功了。如果看不到信息,那么继续注册。
2:push pod库
这时可以将我们制作的TestPro.podspec
推送到trunk
% pod trunk push TestPro.podspec --allow-warnings
出现这个,说明推送到trunk
成功。
3:推送结果
我们可以搜索一下TestPro
这个库,
% pod search TestPro
可能会搜索不成功Unable to find a pod with name, author, summary, or description matching TestPro
没关系,我们再执行一下
% pod repo update
然后直接使用pod
。
四:安装自制的pod库
直接在项目的Podfile
中,pod TestPro
,可能需要指定一下项目的git
地址
然后直接 pod install
,测试是否能安装成功。
% pod install
记得先 pod repo update,再pod install
安装成功