[TOC]
CocoaPods 不仅可以将开源代码添加到项目中,而且还可以跨项目共享组件。 您可以使用私人规格回购来执行此操作。
有几个步骤可以为您的项目获取专用 pod 设置; 为他们创建一个私有存储库,让 CocoaPods 知道在哪里找到它并将 podspecs 添加到存储库。
# 1. 创建流程
## 1.1 创建一个私人 Spec Repo
要处理您的私人 pod 集合,我们建议您创建自己的 Spec 仓库。 这应该放在所有使用仓库的人都可以访问的位置。
你不需要分叉CocoaPods / Specs Master 仓库。 确保团队中的每个人都可以访问此仓库,但不需要公开。
## 1.2 将您的私人仓库添加到您的 CocoaPods 安装中
~~~
$ pod repo add REPO_NAME SOURCE_URL
~~~
注意:如果您打算在本地创建 pod,则应该有权访问 SOURCE_URL
要检查您的安装是否成功并准备就绪:
~~~
$ cd ~/.cocoapods/repos/REPO_NAME
$ pod repo lint .
~~~
## 1.3 将 Podspec 添加到您的仓库
确保你已经正确标记和版本化你的源代码,然后运行:
~~~
$ pod repo push REPO_NAME SPEC_NAME.podspec
~~~
这将运行 `pid spec lint`,并在您的私人仓库中关注设置规范的所有小细节。你的仓库结构应该反映这一点:
~~~
.
├── Specs
└── [SPEC_NAME]
└── [VERSION]
└── [SPEC_NAME].podspec
~~~
## 1.4 就是这样!
您的私有 Pod 已准备好在 Podfile 中使用。 您可以在 Podfile 中使用带有[ source 指令](https://guides.cocoapods.org/syntax/podfile.html#source)的 Specs 仓库,如以下示例所示:
~~~
source 'URL_TO_REPOSITORY'
~~~
# 2. 示例
## 2.1 创建一个私有 Spec 仓库
~~~
$ cd /opt/git
$ mkdir Specs.git
$ cd Specs.git
$ git init --bare
~~~
> 本示例的其余部分使用 https://github.com/artsy/Specs 上的仓库
>
## 2.2 将您的私人仓库添加到您的 CocoaPods 安装中
在你的服务器上使用你的仓库的 URL,添加你的仓库通过:
~~~
$ pod repo add artsy-specs git@github:artsy/Specs.git
~~~
检查您的安装是否成功并准备好:
~~~
$ cd ~/.cocoapods/repos/artsy-specs
$ pod repo lint .
~~~
## 2.3 将 Podspec 添加到您的仓库
创建 Podspec
~~~
cd ~/Desktop
touch Artsy+OSSUIFonts.podspec
~~~
Artsy + OSSUIFonts.podspec 应该在您选择的文本编辑器中打开。 典型的内容是
~~~
Pod::Spec.new do |s|
s.name = "Artsy+OSSUIFonts"
s.version = "1.1.1"
s.summary = "The open source fonts for Artsy apps + UIFont categories."
s.homepage = "https://github.com/artsy/Artsy-OSSUIFonts"
s.license = 'Code is MIT, then custom font licenses.'
s.author = { "Orta" => "orta.therox@gmail.com" }
s.source = { :git => "https://github.com/artsy/Artsy-OSSUIFonts.git", :tag => s.version }
s.social_media_url = 'https://twitter.com/artsy'
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Pod/Classes'
s.resources = 'Pod/Assets/*'
s.frameworks = 'UIKit', 'CoreText'
s.module_name = 'Artsy_UIFonts'
end
~~~
保存您的 Podspec 并添加到仓库:
~~~
pod repo push artsy-specs ~/Desktop/Artsy+OSSUIFonts.podspec
~~~
假设您的 Podspec 有效,它将被添加到仓库。 仓库现在看起来像这样
~~~
.
├── Specs
└── Artsy+OSSUIFonts
└── 1.1.1
└── Artsy+OSSUIFonts.podspec
~~~
有关如何包含 repo URL 的示例,请参阅此 [Podfile](https://github.com/artsy/eigen/blob/master/Podfile)。
# 3. 如何删除私人仓库
~~~
pod repo remove [name]
~~~
# 4. 外部资源
* [Using CocoaPods to Modularise a Big iOS App by @aroldan](http://dev.hubspot.com/blog/architecting-a-large-ios-app-with-cocoapods)