转载:http://www.cocoachina.com/ios/20171120/21234.html
做iOS开发的同学对这张图片再熟悉不过了,在使用第三库的时候,cocoapods确实给我们带来了极大的方便。那么,我们如何制作自己的pod呢?下面是之前的实践笔记
参考资料 https://guides.cocoapods.org/
Demo中的组件式样:
image
cocoapods文档提供了两种方法:
方法1 pod lib create YeshifuShareUI
方法2 pod spec create YeshifuShareUI
两种方法之前都尝试过,方法一会帮助你创建一大堆的文件,包括演示demo创建;方法二方便你在现有的项目中提取你需要制作pod的代码。
这里使用方法2。
详细步骤
1 整理代码
随便找一个现有的项目,把里面的一个模块放在同一个文件夹下,我这里放在ShareUI文件夹下面。
image图一 项目目录结构
2 创建 YeshifuShareUI.podspec文件
在终端cd 到ShareUIDemo (如图一所示),执行
pod spec create YeshifuShareUI
,得到文件YeshifuShareUI.podspec
3 编辑 YeshifuShareUI.podspec
Pod::Spec.new do |s|
s.name = "YeshifuShareUI"
s.version = "0.0.5"
s.summary = "CocoaPods组件化实践"
s.description = <<-DESC
CocoaPods组件化实践,一个简简单单的分享界面。
DESC
s.license = "MIT"
s.author = { "wandou" => "wandou911@gmail.com" }
s.social_media_url = "https://github.com/wandou911/TestPodSpec"
s.ios.deployment_target = '8.0' #指定平台和最低支持版本
s.source = { :git => "https://github.com/shiyeli/ShareUIDemo.git", :tag => "#{s.version}" }
#这里路径需要注意下,是以YeshifuShareUI.podspec为基准。
#如果你的YeshifuShareUI.podspec文件在其他层级处创建的,那么根据自己的情况写。
#ShareUI正是放置组件代码的文件夹
s.source_files = "ShareUIDemo/ShareUIDemo/ShareUI", "ShareUI/**/*.{h,m}"
#
s.framework = "UIKit"
s.requires_arc = true
end
对于其他配置,根据需要,删删改改依葫芦画瓢就好。
4 提交项目代码到github远程仓库
4.1 在github上创建自己的项目库
new repository
create repository
setup
4.2 自己的代码库创建成功后,克隆到本地,添加自己的文件到本地代码仓库,然后向远程仓库push代码
终端执行:git clone https://github.com/wandou911/TestPodSpec.git
把本地项目代码copy到TestPodSpec目录后执行:
cd TestPodSpec/
git add . && git commit -m'配置podspec'
git tag 0.0.5 && git push --tags
5 验证YeshifuShareUI.podspec 是否正确
pod lib lint
image
6 注册下CoocaPods ,终端执行pod trunk register ymnlwyy@sina.com wandou
,之后你会收到一份邮件,点击邮件里面链接验证。
7 提交到CocoaPods
pod trunk push YeshifuShareUI.podspec
Success !
image完毕之后在CocoaPods搜索试试看
补充
遇到的问题:
- Could not find remote branch 0.0.1 to clone
warning: Could not find remote branch 0.0.1 to clone.
fatal: Remote branch 0.0.1 not found in upstream origin
检查步骤3 YeshifuShareUI.podspec 中
s.version = "0.0.5"
和步骤4 git tag 0.0.5
是否一致,不一致的话1 修改s.version = "0.0.5"
2 执行
cd TestPodSpec/
git add . && git commit -m'配置podspec'
3 重新执行步骤7
pod trunk push YeshifuShareUI.podspec
- The spec did not pass validation, due to 4 warnings
[!] The spec did not pass validation, due to 4 warnings (but you can use `--allow-warnings` to ignore them).
CocoaPods Trunk cannot push update: “You need to register a session first.
原因:没有注册cocoa
参考步骤6 :终端执行pod trunk register ymnlwyy@sina.com wandou
参考链接1:http://www.jianshu.com/p/7e82f4f56b7e
参考链接2:https://www.jianshu.com/p/0db5d220f234
网友评论