iOS 如何发布自己的CocoaPods框架到GitHub
在ios中使用cocoapad是必不可少的,方便管理第三方只需pod install,也可用于组件化开发,那么如何发布属于我们自己的pod呢?废话不多说,撸起袖子就是干........
1.创建我们的Xcode工程,然后开发自己想要发布的pod库
2.去GitHub官网创建我们的项目的仓库
3.使用终端的Git命令生成本地仓库
a. cd [你的项目]
b. git init
c. git add .
d. git commit -m "你要添加的注释"
4. 生成框架的描述文件 .spec
终端命令: pod spec create [你的框架名]
5. 用Xcode打开刚才生成的.spec描述文件,编辑框架的信息
修改的内容:
s.name = "TestLib"
s.version = "0.0.1"
s.summary = "TestLib 测试框架."
s.description = "作为一个测试框架使用" (description一定要比summary字数多,不然会出现警告)
s.homepage = "https://github.com/FengZzi/TestGit"
s.license = "MIT" s.author = { "FengZzi" => "894515766@qq.com" }
s.platform = :ios, "5.0"
s.source = { :git => "https://github.com/FengZzi/TestGit.git", :tag => "#{s.version}" }
s.source_files = "TestLib", "TestLib/**/*.{h,m}"
s.requires_arc = true
然后保存即可
6. 把本地的Git仓库上传到我们之前已经创建好的GitHub远程仓库
a. git remote add origin [仓库的远程地址]
b. git remote -v 可以查看是否设置成功
c. git push -u origin master 把本地代码提交到服务器
不出意外的话会出现错误信息 "hint: See the 'Note about fast-forwards' in 'git push --help' for details." 然后我们先拉取使用 git pull origin master,又出现了错误 "fatal: refusing to merge unrelated histories", 我也很绝望啊! GitHub上面的代码我们本地一个也没有,我们并没有做过任何成功的push,就不会有任何的push记录,相应的我们也就拉取不到GitHub的代码,这个就比较尴尬了! 我们可以使用 git pull --rebase origin master 来拉取GitHub的代码,然后再执行 git push -u origin master 即可!
7.项目发布完成之后需要打tag
a. git tag
b. git tag "0.0.1" 和之前的.spec描述文件保持一致
c. git push --tags
8. 验证我们的之前生成的.spec描述文件注册并发布
a. pod lib lint --allow-warnings 本地验证 (如果项目有警告可以使用--allow-warnings)
b. pod spec lint xxxx.podspec --allow-warnings 验证
c. pod trunk register 894515766@qq.com 'FengZzi' --verbose 注册 会受到一份邮件,必须单击电子邮件中的链接,通过pod trunk me查看验证
d. pod trunk push xxxx.podspec 发布
此处框架名被占用,否则就会发布成功,很尴尬!
9.你发布成功之后执行 pod search xxxx 会出现找不到的问题
a. 重新执行 pod setup
b. rm ~/Library/Caches/CocoaPods/search_index.json ,或者手动删除~/Library/Caches/CocoaPods目录下的search_index.json文件
c. pod search xxxx
10. CocoaPods的执行机制,可以很好理解9出现的问题
另外这个是已经上传成功的一些常用的类目
https://github.com/FengZzi/CommonExtensions