最近公司项目需要重构,并且进行组件化构建,所以想到了把项目的工具类和UI控件上传到git上同时用cocoapods进行管理。
1、在Github上创建存储库(前提是得有一个Github账号,如果没有就注册一个)、把你需要用cocoapods管理的代码根据操作步骤上传到git
2、cocoapods托管需要创建pod账号,发布到cocoapods上你需要有一个pod 的账号,可以使用pod trunk me 来查看自己的账号信息,如果没有账号的话需要先注册一下:
命令: pod trunk register xxxxx.com
然后会提示你去邮箱验证,打开验证地址就可以验证成功了,此时再输入命令pod trunk me 就可以看到自己的账号信息。
3、创建podspec文件,使用终端进入到工程文件的目录中,在README.md文件所在的位置创建一个podspec 文件,使用pod spec create xxxxx,然后根据代码的实际情况编辑podspec文件
只需要把以下内容改成你自己的即可
s.name :库的名字
s.version : 版本,要和github上的仓库tag对应
s.license :授权s.summary :描述
s.homepage = github仓库主页
s.authors :作者名字和联系邮箱
s.source :仓库地址
s.requires_arc : 是否ARC
s.ios.deployment_target : 最低支持的系统版本
s.source_files : 资源文件
s.source : bundle文件
s.frameworks :所需的framework,多个用英文逗号隔开
创建授权文件LICENSEvim LICENSE我用的是MIT的许可协议,内容是拷贝维基百科上MIT许可证的声明
或者你可以利用别人已经使用的spec文件也可以,但是要修改s.name ,s.homepage,s.source,s.source_files以及当前依赖的第三方库
4、把修改的文件再次更新到git上面
5、设置代码的tag值 git tag "0.0.2" 然后提交到git上 git push --tags,同时验证下podspec文件是否正确:pod spec lint xxxx.podspec。如果无问题,直接走6步骤;否则检查错误
6、发布到cocoapods上 pod trunk push xxxxxx.podspec,如果命令行中没有报错说明发布成功,我们可以 pod search xxxx 找到,如果显示未找到可能是发布到pod远程库成功了,但是本地库没更新导致的,所以用了pod repo update命令
7、发布成功后,如果pod search 不到的话, 解决方法就是Finder前往资源库去删除缓存中的search_index.json(targetcloud修改成你自己的)
/Users/targetcloud/Library/Caches/CocoaPods删除search_index.json
备注: podspec文件切记不要用记事本打开,导致内容编码格式不正确。
踩的坑:
1、版本号的问题
这是你git上的当前版本还未打tag,你需要进行下面操作 git tag 0.0.1 同时把tag推送到git上 git push --tags
2、 网络连接问题
确认网络连接良好就OK
3、依赖的库版本和制作库的版本问题
CocoaPods could not find compatible versions for pod "Realm"CocoaPods could not find compatible versions for pod "Realm": In Podfile: iOSRealm (from `/Users/ponted/Desktop/realmOrm/iOSRealm.podspec`) was resolved to 0.0.1, which depends on Rea
问题在于依赖库的版本基于iOS8.0的,但是制作库的版本并未限定版本,解决办法就是把制作库的适用版本也基于iOS8.0。
4、code文件找不到问题
podspec里面设置的source_files路经不对,找不到对应的文件,解决办法是设置正确的文件路径
暂时就只是发现这些问题,后续如果再次自制库发现问题会再次更新。