使用 CocoaPods 进行团队协作

jopen 9年前

让程序流畅稳健的运行是开发者们的理想,这个理想时而遥远,时而近在咫尺。而往往那个触手可及的时刻,却正是梦碎的边缘。

在团队协作中,修改别人的代码是一件像扫雷游戏一样的事情,你永远不知道你做的到底是 “优化” 还是 “触雷”。

使用 Cocoapods 将不同的功能进行切割,独立成模块再整合进 App,成为了一个行之有效的方法,本文就来一起研究一下如何使用 CocoaPods 来进行组件模块化。

创建自己的 Pod

RichTextView 为例,完成类库的功能后的第一件事就是创建 RichTextView 的 podspec 描述文件

进入项目的根目录

pod spec create RichTextView  

这个描述文件其实是一段 Ruby 代码,描述了和这个库相关的内容,最重要的是描述了库的授权协议,如何获取库的代码,版本号,以及编译方式

Pod::Spec.new do |s|      s.name         = "RichTextView"    s.version      = "0.3.1"    s.summary      = "RichTextView based On TextKit"      s.description  = <<-DESC                     RichTextView based On TextKit, With Mention, Hashtag Feature                     DESC      s.homepage     = "https://github.com/kevinzhow/RichTextView"    s.screenshots  = "https://raw.githubusercontent.com/onevcat/Kingfisher/master/images/logo.png"      s.license      = { :type => "MIT", :file => "LICENSE" }      s.authors            = { "kevinzhow" => "kevinchou.c@gmail.com" }    s.social_media_url   = "http://推ter.com/kevinzhow"      s.ios.deployment_target = "8.0"    # s.osx.deployment_target = "10.7"      s.source       = { :git => "https://github.com/kevinzhow/RichTextView.git", :tag => s.version }    s.source_files  = "RichTextView/Source/*.swift"    s.requires_arc = true    end

值得需要特别注意的是 s.version 正是 s.source 里想要从 git 取出来的 tag 版本。

s.version      = "0.3.1"  
s.source       = { :git => "https://github.com/kevinzhow/RichTextView.git", :tag => s.version }  

s.source_files 相对应的就是你的库是在 git 的哪个文件夹里,的哪些文件

s.source_files  = "RichTextView/Source/*.swift"  

如果是 Swift 项目,需要注意给你的类和需要暴露的方法加上 public 字段

当以上都编辑妥当之后,需要先验证一下这个文件有没有错误

pod spec lint RichTextView.podspec  

验证无误后,如果愿意开源的话,就可以推入 Pod 的仓库。

公开发布 Pod

首先需要注册一下你自己的身份,例如你想注册的邮箱是 orta@cocoapods.org,名字是 Orta Therox,那么可以用下面的命令

pod trunk register orta@cocoapods.org 'Orta Therox'  

注册完成后,就可以把上面验证通过的 Pod 发布上去

pod trunk push RichTextView.podspec  

本地测试 Pod

团队协作的项目通常并不需要暴露到外部,那么我们只需要跳过 pod trunk push 的步骤,并在 Podfile 声明一下 path 地址即可

pod 'RichTextView', :path => '../CatchLib-iOS/RichTextView/'  

Enjoy!

</div>

来自: http://tips.producter.io/shi-yong-cocoapods-jin-xing-tuan-dui-xie-zuo/