官网地址:https://guides.cocoapods.org/
pod导入的库默认地址:~/.cocoapods/repos
1.如果电脑还未注册到cocoapods,则先注册:
pod trunk register 376811578@qq.com 'chenzhe' --description='xyz'
注册成功后会在你的邮箱收到一份确认邮件,
注册完之后可以通过pod trunk me 查看基本信息。
2.在已有的现成项目里面创建PodSpec文件。
pod spec create HHZConfig
供参考podspec文件:
https://github.com/chenzhe555/iOS-HHZUniversal/blob/master/iOS-HHZUniversal.podspec
3.修改必要信息之后检测podspec文件是否合格:
检测之前一定要打Tag:
git tag '0.0.1'
git push --tags
然后检测文件:verbose是为了显示详细信息,allow-warnings忽略项目中的警告
pod spec lint HHZConfig.podspec --verbose --allow-warnings
4.注册到Pods库的master库:
pod trunk push HHZConfig.podspec --allow-warnings
PS:
1.如果遇到trunk push成功了,但是pod search 还是搜索不到,提示[!] Unable to find a pod with name, author, summary, or description matching `xxx`则是因为搜索到缓存文件导致,删除~/Library/Caches/CocoaPods目录下的search_index.json文件即可,然后再pod search就能搜索到新提交到Pods项目。
2.去掉三方的警告:inhibit_all_warnings!
3.依赖本地项目的podspec:有时候podspec检测成功后不想直接push到cocoapods上,可以考虑直接依赖本地项目,在Podfile文件中加入:
pod 'HHZUtils', :podspec => '/Users/GoodBoy/Desktop/Github/HHZUtils/HHZUtils.podspec'
4.xcodebuild: Returned an unsuccessful exit code.
又是这个恶心的错误,以前的忘了,现在开始写它各种可能,网上有很多原因,但是我的跟他们不一样,因为是新项目加入到pod,所以找不到头脑,看了错误信息,在Build的时候失败了:7 duplicate symbols for architecture x86_64 。这尼玛怎么可能,然后找了项目里面这些,没有一个是duplicate,试了两遍还是不行。于是准备试试是不是tag的原因,因为一直pod的0.0.1版本的Tag,现在把Tag改为0.0.2,可以了。。。
5.Encountered an unknown error (The 'Pods-App' target has transitive dependencies that include static binaries: (/private/var/folders/38/j_n07_sx2lzdfq51rvnmt18w0000gn/T/CocoaPods-Lint-20170725-5018-an7p8j-HHZUmengTool/Pods/UMengUShare/UShareSDK/UMSocialSDKPlugin/libUMSocialLog.a
当时是封装友盟的工具类的时候,上传到cocoapod报错。大致很明显了,没有依赖.a静态库
或者framework动态库。
在podspec加入
s.frameworks = ...
s.libraries = ...
然后还需要加入--use-libraries命令,可通过pod spec lint --help查看到相关命令
pod spec lint HHZUmengTool.podspec --verbose --allow-warnings --use-libraries