转自:http://www.jianshu.com/p/129d3c315ea6git
确保你的客户端安装有Github桌面版并登陆,在网页登陆上你的Github帐号. 并准备好你须要上传的SDK文件内容.打开终端以备开始.github
1.0 SDK的建立目的,就是知足别人的需求,以帮助他人或者本身在开发项目时能够经过有效的第三方来更好更快的完善,开发项目.因此,在完成核心代码的编写后,按照比较的合理的操做方式,你有必要写一份用来展现本身SDK核心,主要做用的Demo,以帮助他人更好的认识,学习它.因此,若是此时你已经完成了这个步骤,那么,此时的Demo文件的框架结构应该是下图所示的:框架
2.0 能够暂时把文件放起,进入真正的建立Github代码仓库并关联Cocoapods的阶段.其初期的过程更是对[用github上传并管理本身的项目]的重复.进入Github我的主页,点击Repositories而后点击New进入仓库建立界面:异步
3.0 根据下图详细提示,对仓库进行编写,在这里注意一点->※为了方便,也是规范总体结构,你要保证这里的 Repository name 要和后面的 .podspec 文件里的文件名,还有你的核心文件的文件名相一致:工具
4.0 仓库建立成功的初始模样就以下图所示,而后点击右上方 Clone or download 下的Open in Desktop 将整个仓库下载到Github桌面版并打开:学习
5.0 下图所示下载到桌面并打开后的大致模样,直到目前为止,你已经有了两个文件,1️⃣你以前所放起的Demo文件;2️⃣你新建立并下载,并且将会是最终提交的文件YourSDK.接下来,你就须要将两个文件合并,实际上就是须要将Demo文件的主题部分手动拖动到新的 YourSDK 文件中就能够:3d
6.0 具体合并过程可见下图,在这里有个要点须要做出特别说明->在原Demo文件中,核心文件夹名为 YourSDKFiles ,在拖动到YourSDK文件夹时,我将其更改成同名文件 YourSDK ,那么问题来了,在Demo里面的 YourSDKFiles 仍是存在的,可是里面的东西却不能显示了,因此在这里,须要从新打开Demo文件,并从新导入一遍核心文件 YourSDK .blog
7.0 一切准备稳当,接下来,就须要将新的 YourSDK 上传并异步更新到Github上去,在未提交界面,请注意一点->必须写入 Summary 或者 Description 二者中的任意一项,点击 commit 完成后,在点击 Sync 异步更新:ip
8.0 提交完成后,回到网页界面并刷新,获取到最新的仓库模样,即以下图所示:资源
9.0 其实,以上几个步骤就是我在上一节所说的用 Github 上传并管理本身项目的步骤,那么,接下来的步骤就是真正让你的仓库与Cocoapods关联的关键所在.
首先,将一点核心的文件,那就是一个叫 .podspec 的文件,经过下图的比对,一个仓库能不能实现与Cocoapods的关联,关键之处就在于一个属于该仓库的 .podspec 文件;
因此,接下来的全部操做基本就是围绕 .podspec 文件来进行的了:
10.0 先来本身辨识下这个文件,直接点击打开别人已经完成的 .podspec 文件(我点开的是MJ大神MJRefresh框架里podspec文件),看一下里面的秘密.
注意->1️⃣直接看里面的内容便可,第一行中的东西每一个podspec文件并没有差别, 往下看, s.name ,这个就是上面我所说的要与 Repository name 保持一致的SDK名.
注意->2️⃣在接下来的操做中,我将会直接拷贝别人的podspec文件,并根据本身的内容进行合理修改.可是,经过终端,你也能够经过指令进行建立:
pod spec create YourSDK.podspec
并用一下指令对其进行修改等操做,以后将会提到:
vi YourSDK.podspec
11.0 保持podspec与总体文件和核心文件的命名一致, 在终端中 cd 该文件,找到后 进行以下操做,进入到podspec文件里:
vi YourSDK.podspec
12.0 进入到主podspec界面后,以下图,点击键盘上的 i (insert) 就能够开始对其进行删除或者输入的操做.命名,版本号,摘要,描述,网页地址,证书,平台,做者信息,源地址,资源文件,arc的选择等等.依次根据实际状况依次修改填写.
注意->若是在终端建立,会有更多的可供选项,内容更多,不少东西对咱们正在但愿获得的做用并没有太多帮助,尽可能将其简化便可.
在修改完成并确认无误后,点击 Esc 键,而后输入 :w 保存, :q 退出:
13.0 在完成保存并退出后,首先要作的就是打标签,将 tag push 到Github上.经过如下四步便可:
git tag '0.0.1'
git add *
git commit -m 'add tag'
git push origin 0.0.1
14.0 接下来,在建立完善podspec并给Github打完标签后,就能够把该仓库做为分支推送给Cocoapods.
有如下操做->1️⃣对打上的标签与podspec标记的标签进行比验证,经过如下指令进行:
pod lib lint
若是成功,会返回一句以下结构的信息:
-> YourSDK (0.0.1)
2️⃣执行下图中 pod trunk push 命令,真正执行分支的推送操做.当显示 has been pushed 时,即证实推送成功.
3️⃣返回到网页界面,刷新该仓库.点击 Brand:master ,再找到 Tags 并点击,就会发现你所打的标签号.
15.0 返回到终端,在终端里执行以下指令
pod search YourSDK
以下图,即证实,此时你已经成功关联你的SDK到Cocoapods.
在这个操做中,其实有一些坑的,并且,这些坑都比较集中的出如今执行 pod trunk push 也就是推送分支的过程当中.接下来,我将我所遇到的一些常见坑给你们填一下,有不周之处,望各位指正.
1.0 错误1️⃣:核心文件没有正确匹配
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
解决1️⃣:手动导入
2.0 错误2️⃣:因为警告,未经过认证
YourSDK did not pass validation ,due to 1 wanrings (but you can use --allow-warnings to ignore them)
解决2️⃣:从新执行下面指令
pod trunk push YourSDK.podspec --allow-warnings
整个过程其实仍是比较容易理解的,就是将Github上的东西拿一份给Cocoapods托管,重点和难点就是在创建链接的部分.不过,这个过程的顺利进行,须要你对Github上的文件结构有充分的认识,还须要较为熟练的使用Github桌面版(Github Desktop).
同时,还有一点必须说明,这个过程在Cocoapods亦或者Github,还有终端的操做上,所用到的东西其实十分有限的,须要平时的积累,观察与总结.
若是能十分有谱的使用某一管理工具对本身的工做成果或者学习成果,进行有效的管理,引导的话,这对你以后的工做和学习都是大有裨益的,不少操做中将会起到事半功倍的效果.
诸君共勉!