做的项目多了,通过CocoaPods使用第三方库的次数就越多。例如AFNetworking,SDAutoLayout,MJRefresh,SDWebImage等等。于是很好奇这些代码是怎么上传到CocoaPods的呢?
网上的教程很多,说得也很详细。但是时间久远,有些步骤不适用了,在尝试的过程中遇到了很多问题,花了不少时间去解决并成功实现了。于是我重新整理了这个过程并挑选出比较详细的教程,只需花10分钟左右的时间就能实现,今天就跟大家分享一下这份乐趣。
一、在Github上面新建一个项目
关于这个,有篇博客写得很详细,这步也不困难,大家可以点击参考链接,跟着里面的第一第二步实现,其他内容有兴趣的可以看看。
二、新建一个项目的podspec文件
这步是最容易出问题的,也是最核心的地方。我采用的是最笨的方法。
首先使用终端cd到步骤一的仓库文件夹,例如下图是我通过步骤一生成的文件夹
然后通过vim DFTextStyle来生成一个文本(名字改成你们的项目名),然后修改文件的后缀为podspec。
如下图所示,其中的LICENSE和README.md文件是通过步骤一生成的,DFTextStyle.h和.m文件是我放进去想让别人pod得到的
然后使用SublimeText软件打开你的podspec文件来进行修改,这里需要注意!!!如果使用自带的文本编辑器去修改,检验的时候会报以下的格式错误,这里花了我不少时间去解决。
我的pod spec文件内容如下
Pod::Spec.new do |s|
s.name = 'DFTextStyle'
s.version = '1.0.2'
s.license = 'MIT'
s.summary = 'A Text in iOS.'
s.homepage = 'https://github.com/954788/DFTextStyle'
s.authors = { '954788' => '569676974@qq.com' }
s.source = { :git => "https://github.com/954788/DFTextStyle.git", :tag => "1.0.2"}
s.requires_arc = true
s.ios.deployment_target = '8.0'
s.source_files = "DFTextStyle", "*.{h,m}"
end
大家可以把这部分内容拷贝进去,然后根据实际情况去作修改。
s.name 是你的项目名
s.version 是你项目的版本号
s.summary 是简单的描述
s.homepage 是你这个项目的Github地址
s.authors 是作者和邮箱
s.source 是下面这个HTTPS地址
注意!!!如果后面的tag描述不对,会出现以下警告,只需把tag对上你在podspec文件里面填的版本号就可以了。
s.requires_arc 是否要求arc
s.ios.deployment_target 最低要求的系统版本
s.source_files 你项目文件名和里面的内容
注意!!!这里描述不当会出现以下报错
我尝试过多种写法,最后只有这种写法没有报错,当然也归功于这个demo项目里面文件不多。当你的项目文件复杂时,需要用另一种表述方式,这里告诉大家一个小tips,你pod到本地的第三方库都会有podspec文件的,打开看看参考学习吧。
当然还有更多的描述方式,大家可以通过pod spec create DFTextStyle这个命令生成官方的pod spec文件查看(文件名换成你们的项目名),也可以上官网查看。
三、上传代码到CocoaPods
来到这一步,意味着所需的文件都有了:LICENSE、README.md、你的项目代码、podspec文件,就可以执行这步了。
这里使用Trunk的方式,详细教程点击参考链接,里面说的很详细,需要注意的是,教程里面的2.1我们在上一步已经实现了。
还有这个教程中的git tag '1.0.0'需填写你在podspec文件里面的项目版本号
然后跟着教程去检验和提交代码就可以了,中途会遇到的问题已在上面列出,大家操作过程中遇到新的问题可以在下方留言
四、通过Pod下载代码到项目中
来到这步,就是检验我们努力成果的时候了。
cd到需要引入这个代码的项目,通过vim生成Podfile文件,填写你的项目名,这里以我的demo为例
然后使用pod install就可以了。
最后在项目中使用那些方法就大功告成了!
同样的,这篇文章是为了满足我好奇心和起到抛砖引玉的作用,对这方面感兴趣的可以去查阅更多的资料,尝试不同的玩法,实在是乐趣多多。
感兴趣的朋友可以在下方留言分享你的经验或想法。