写在前面
Cocoapod可以管理SDK的代码进行组件化开发也可以将开发完成的SDK托管到Cocoapods,采用pod'xxxSDK'的方式自动集成SDK,本文是将开发好的SDK打包好上传到cocoapods,通过pod 'XXXSDK'的方式将SDK集成到项目中,告别手动集成,并且生成私人repo,让pod的速度向飞一样。
一、创建仓库
1.在github上或者码云(这里建议码云,因为码云是国内的速度快)上创建两个仓库,一个代码仓库用来存放打包好的SDK和SDK需要的资源文件,一个spec仓库负责存放podSDK需要的索引。
两个仓库全部设为开源,需要创建完成后去管理修改,LICENSE选择MIT 截屏2022-02-23 下午8.44.10.png
创建好如图所示 仓库截屏2022-02-23 下午8.30.17.png
2.将存放SDK的仓库clone下来
git clone https://gitee.com/allook/YLUISDK.git
YLUISDK文件中创建Lib文件夹存放SDK,Resources文件存放资源文件,如图所示。 截屏2022-02-23 下午9.04.37.png
二、开始创建并配置.podspec文件
cd到YLUISDK文件中
pod spec create YLUISDK
会生成YLUISDK.podspec文件,将文件打开方式更改为Xcode,开始编辑,关于.podspec文件的语法可自行百度查看,以下配置仅适用于开发好的SDK上传到Cocoapods。
Pod::Spec.new do |s|
# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# These will help people to find your library, and whilst it
# can feel like a chore to fill in it's definitely to your advantage. The
# summary should be tweet-length, and the description more in depth.
#
s.name = "YLUISDK"
s.version = "3.4.5"
s.summary = "yllan of YLUISDK."
s.description = " 这是一个短视频、小视频的SDK"
s.homepage = "https://gitee.com/JabneCode/YLUISDK"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "zhangbin" => "github@yilan.tv" }
s.platform = :ios, "9.0"
s.source = { :git => "https://gitee.com/JabneCode/YLUISDK.git", :tag => "3.4.5" }
// 将打包好的SDK放到对应目录,pod 'YLUISDK'执行后,SDK就乖乖到pod里面去了
s.vendored_frameworks = "Lib/YLUISDK.framework"
// 表明支持的架构模式
s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }
// 这个是SDK需要的资源文件,这样写到时候会生成一个YLUISDKResource.bundel文件放到.app的包里面,这样SDK直接就能读取了。
s.resource_bundles = {
'YLUISDKResource' => ['Resources/*']
}
三、开始验证.podspec的合法性,并上传SDK到Cocoapods。
每次编辑更新完.podspec文件和Lib、Resources以后和,需要做以下操作,需要注意的是这里可能没有权限进行push,需要编辑隐藏文件.git中的config文件,这样就有权限push了。 截屏2022-02-23 下午9.15.12.png
git add .
git commit -am "版本号之类的描述"
git push
git tag 3.4.5 // 这个版本号要和.podspec文件中的一一对应。
git push --tags
pod spec lint --skip-import-validation --allow-warnings
不出意外应该会出现以下结果,如果发生错误需要仔细检查.podspec文件的内容。
截屏2022-02-23 下午9.24.13.png注意:每次发布新版本都要进行以上几步。
一切具备,开始上传SDK到Cocoapods。
// 注册cocoapods作者
pod trunk register 自己的邮箱 "SDK的作者"
// 查看注册好的用户
pod trunk me
// cd到存放.podspec文件的YLUISDK中执行上传
pod trunk push ./YLUISDK.podspec --skip-import-validation --allow-warnings
四、开始使用
现在就可以在自己的podfile文件中添加pod 'YLUISDK'来测试成果了。
五、生成私人repo
上面发布完成后,索引默认是在这个地址https://github.com/CocoaPods/Specs。本地索引会下载到~/.cocoapods/repos/master,这也是cocoapods默认的索引地址 截屏2022-02-23 下午9.38.51.png
因为github是国外的网站,访问会很慢,所以我们需要建立一个自己的索引仓库。还记得开始建立的仓库吗。现在你需要这个仓库clone到~/.cocoapods/repos,将之前编辑好的YLUISDK.podspec文件copy到这里面。cd到这个仓库目录下然后执行
git add .
git commit -am "提交信息"
git push
// yilan-spec是你索引仓库的名字 YLUISDK.podspec是你刚才copy的文件
pod repo push yilan-spec YLUISDK.podspec --skip-import-validation --allow-warnings
截屏2022-02-24 上午9.59.56.png
执行完成后你去~/.cocoapods/repos中查看自己创建的索引库和自己码云上创建的spec仓库就已经有当前版本的信息了。
[图片上传中...(截屏2022-02-24 上午10.02.24.png-dfabee-1645668161718-0)] 截屏2022-02-24 上午10.02.24.png下面开始测试自己的仓库
// 记得添加自己的源文件
source 'https://gitee.com/allook/yilan-spec.git'
pod 'YLUISDK'
网友评论