一、上传自己的库到cocoapods
1、创建公共库文件
cd到桌面,执行
pod lib create PublicDemo
其中 PublicDemo 是要创建的库名。
会让输入一些问题,依次回答即可
创建完成以后会用xcode自动打开一个文件,就是我们需要的 PublicDemo 。
2、添加要上传的代码
打开桌面上的 PublicDemo 文件夹,将我们需要添加的代码复制一份.h .m 文件,放到以下路径中,并将 ReplaceMe.m 文件删除。
然后进入项目中添加对应的文件。
3、修改podspec
这里可以修改版本号即 s.version ,如果修改完版本号在下面的步骤打tag时需要与此版本号一致,其他如果没特殊改动的话基本不用动。
4、GitHub 创建并关联对应的项目
在GitHub创建项目,这里的项目名最好和本地创建的库文件一样的名字,即PublicDemo,这里需要保证 podspec 中的 s.source 对应的地址是一致的。
cd 到 PublicDemo 中,
git init
git add .
git commit -m'创建'
git remote add origin https://github.com/****/PublicDemo.git(这里的地址换成自己刚刚创建的)
git push -u origin master
5、打tag
git tag 0.1.0
git push --tags
这里默认是0.1.0,如果需要修改需要在 podspec 文件中同步修改,然后重新提交,重新打tag,
需要注意的是,与 podspec 中的 tag 必须一致。
6、注册或验证邮箱
pod trunk me
如果出错,则需要注册或者重新验证,
pod trunk register Email 'Name'
将 Email 和 Name 替换成自己的邮箱账号即可。
7、本地验证
pod lib lint --allow-warnings
本地验证成功则可远端推送
8、远端推送
pod trunk push --allow-warnings
推送成功即可pod install 正常使用。
二、遇到的问题
1、
{"name"=>["is already taken"]}
出现重名,可以重新命名一下 podspec 文件,记得podspec文件里面也需要同步更改
s.name = 'PublicDemo1'
2、
There was an error pushing a new version to trunk: execution expired
一般是网络问题,多试两次就可以了。
3、
Remote branch not found in upstream origin
tag 没对应,修改podspec中的version值,上传以后重新打tag,两个值要对应。
4、
Unable to accept duplicate entry for:PublicDemo1 (1.0.4)
重复提交1.0.4,可增加一个版本,重新提交
5、
/Users/admin/Library/Developer/Xcode/DerivedData/App-bptokuobrrvtrpfjulabfmduwrqa/Build/Products/Release-iphonesimulator/PublicDemo1/PublicDemo1.framework/Headers/CTMediator+GSACategory.h:9:9: error: include of non-modular header inside framework module 'PublicDemo1.CTMediator_GSACategory': '/Users/admin/Library/Developer/Xcode/DerivedData/App-bptokuobrrvtrpfjulabfmduwrqa/Build/Products/Release-iphonesimulator/CTMediator/CTMediator.framework/Headers/CTMediator.h' [-Werror,-Wnon-modular-include-in-framework-module]
引用第三方库而导致提交不成功,可以在push时用以下代码
pod trunk push --allow-warnings --use-libraries
6、
这里有篇文章总结了很多错误:http://www.pianshen.com/article/2825375473/