我在日常开发中用到了CocoaPods,但大多用的都是别人的库,寻思着自己也要尝试发布一个pod到公共代码中去,这次发文的同时也发布了个简单的代码(DHFixCllocation2DHelper .h/.m)到CocoaPods。当我们日常调用iOS的CoreLocation的SDK获取到的位置是WGS-84坐标系,然而反向地理位置解析用的是GCJ-02坐标系,所谓的火星坐标偏移。最直观的就是iOS系统的CLLocation的坐标体系和Mapkit的坐标体系的差异,若将CLLocation的经纬度直接绘制在你Map上面会出现的偏移。
下面就让我们跟着以下这张图来走完整个流程:
a.注册trunk
pod trunk register EMAIL [NAME]
pod trunk register duanhai@outlook.com ‘TonyDuan’ –verbose
注册成功后会在你的邮箱收到一份确认邮件
pod trunk me
注册成功后可以看到相应的信息
b,创建podspec文件
用pod的命令创建podspec文件
pod spec create DHFixCLLocation
会生成一个DHFixCLLocation.podspec文件我们只需要简单修改下相应的信息即可。
①s.summary 即pod search ‘name’的时候显示的说明
②s.homepage git的仓库地址
③s.license Pods依赖库使用的license类型,填上对应的即可
④s.source_files 源文件路径,相对于podspec文件而言,本文中是DHCLLocation的文件夹下面的文件
⑤s.frameworks 需要用到的frameworks,上图我截图时候截掉了,这里补充下
*1 s.frameworks=”CoreLocation”,”Foundation”
p.s.从github上面创建仓库并且clone这步我没有给出,需要说明的是创建仓库的时候应该把license加上,并且加上说明,方便开发者调用。
c.通过trunk推送podspec文件以及验证pod文件
在做这个步骤之前需要你确认两点
①.确保你的源码已经push到Github上。如果还没push源代码,可以用Terminal cd到本地源代码的根目录,执行
git add -A
git commit -m”first commit for version 1.0.0″
git push origin master
②.确保你所push的代码已经打上”version tag”,也就是给源代码打上版本号标签:
git tag’1.0.0′
git push –tags
确认上面的两点后,为了让推送能够顺利进行,我们可以对我们的pod文件进行一个验证。
参考:http://blog.csdn.net/wzzvictory/article/details/20067595中的 第四点。
pod lib lint的时候遇到了一个错误
在pod lib lint 后面加上–verbose后可以得出更详细的信息,根据我的文件我的警告是description文件太短了,另外的一个错误是我把framework的依赖写成了CLLocation,应该是CoreLocation见上文中*1的地方。
验证通过后就来到了最后一步
pod trunk push DHFixCLLocation.podspec 执行过程如图4的过程
我的上传过程还比较顺利,审核很快就过了。但是当我pod search 自己库名的时候,这个时候始终没有出现。其实这个时候你需要重新配置下你本地的pod库索引 pod setup,等待同步、合并的过程,完成后再来pod search ‘DHFixCLLocation’就出来了。上传一个pod到Cocoapods到此结束。想想是不是很激动呢,此刻有千千万万人的正在壮大、丰富这个库。Cocoapods让越来越多的开发者接受,并且出力。常用到的三方框架AFNetworking,VLCKit,FFMpeg等都在上面能够找到,同时许多SDK发布也采用了这种pod的模式,让你将更多的时间花在更有意义的事情上。方便你使用的同时,请你认清楚该pod采用的哪种协议(MIT or Others),综合考虑后选择你最钟意的一个pod来提升效率吧。
参考:
https://blog.cocoapods.org/CocoaPods-Trunk/
https://guides.cocoapods.org/making/getting-setup-with-trunk.html
http://objccn.io/issue-6-4/