美文网首页iOS架构设计
iOS组件化实践(基于CocoaPods

iOS组件化实践(基于CocoaPods

作者: wandou911 | 来源:发表于2017-11-22 18:41 被阅读2次

转载:http://www.cocoachina.com/ios/20171120/21234.html

image

做iOS开发的同学对这张图片再熟悉不过了,在使用第三库的时候,cocoapods确实给我们带来了极大的方便。那么,我们如何制作自己的pod呢?下面是之前的实践笔记

参考资料 https://guides.cocoapods.org/

ShareUIDemo 链接

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

相关文章

  • iOS组件化实践(基于CocoaPods)

    iOS组件化实践(基于CocoaPods) iOS组件化实践(基于CocoaPods)

  • 代码管理| 创建自己的私有Cocopods库

    前言 iOS组件化的实现基本基于cocoapods,如何使用cocoapods创建自己的组件库,是实现组件化的第一...

  • iOS组件化探究之私有库的创建

    iOS组件化实现基本基于cocoapods,如何使用cocoapods创建自己的组件库,是实现组件化的第一要素,下...

  • ios 组件化

    参考 iOS 组件化实践《二》基于现有项目拆分组件化实践 在现有工程中实施基于CTMediator的组件化方案 i...

  • iOS组件化实践(基于CocoaPods)

    做iOS开发的同学对这张图片再熟悉不过了,在使用第三库的时候,cocoapods确实给我们带来了极大的方便。那么,...

  • iOS组件化实践(基于CocoaPods

    转载:http://www.cocoachina.com/ios/20171120/21234.html 做iOS...

  • 组件化方案

    组件化方案引用 在现有工程中实施基于CTMediator的组件化方案 iOS组件化实践(一):简介 iOS组件化实...

  • 基于CocoaPods组件化实践

    1.在github创建远程私有仓库 2.关联本地repo和远程仓库 pod repo add xxx https:...

  • 组件化

    支付宝客户端架构解析:iOS 容器化框架初探基于CocoaPods的iOS项目模块化实践ios项目-利用Pod进行...

  • iOS组件化之CocoaPods

    如何创建私有 CocoaPods 仓库如何发布自己的开源框架到CocoaPods组件化架构漫谈 iOS组件化之组件...

网友评论

    本文标题:iOS组件化实践(基于CocoaPods

    本文链接:https://www.haomeiwen.com/subject/ocyovxtx.html