CocoaPods 1.0 + 適配
CocoaPods 1.0 發(fā)布4個多月了匾二。之前的寫的筆記過時了,抽空更新一波。同時解決一下圖片不能看的問題。鑒于寫完之前的總結(jié)之后很多人問我怎么弄私有 Pod 诚亚,今天會寫一下闸准。
目錄
<a id="CocoaPods10"></a>
CocoaPods 1.0 安裝及適配
- 如何安裝敏释?命令行中輸入
sudo gem install cocoapods
遇到
Operation not permitted - /usr/bin/pod
可以參照這里
- 有何變化义屏?[沒用過舊版的可以忽略]
- 必須指明 target
-
:exclusive => true
和link_with
被去掉了 - 使用本地的 pod 只能使用 :path
- pod install 不再更新本地 repo
- pod install --repo-update 更新本地 repo 在安裝 pods
- ...
<a id="CocoaPodsPos"></a>
利用 CocoaPods 發(fā)布自己的三方庫
- 將自己的三方庫集成 CocoaPods 只需要三步
- 初始化項目
- 創(chuàng)建和編寫 podspec
- 將 podspec 上傳到 CocoaPods 的 repo 上
1.初始化項目
- 如何初始化可以看這里
- 原理上 Cocoapods 支持任意源代碼管理(例如 git svn)的開源倉庫澳叉。只要用戶可以根據(jù) url 下載到項目的網(wǎng)址都可以。所以不局限于GitHub。但是今天我們以 GitHub 為例泌枪。
- 項目初始化結(jié)束之后,需要給項目打
tag
以便告訴 Cocoapods 自己項目的最新版遏考。每發(fā)一版需要一個 tag
// push to remote
git add .
git commit -m "初始化項目"
git push
//add tag
git tag -m "2rd release" 0.2.0
git push --tags
2.創(chuàng)建和編寫 podspec [ 最重要的一步 ]
- 你可以創(chuàng)建一個名字叫做 XXX.podspec 空文件。
- 也可以通過
pod spec create DWCategory git@github.com:Damonvvong/DWCategory.git
創(chuàng)建一個有備注的 podspec - 編寫 podspec 文件:
Pod::Spec.new do |s|
s.name = "DWCategory" # 名稱
s.version = "0.2.0" # 版本號,git 的 tag
s.summary = "一個簡單的分類用于測試 Cocoapods 1.0 +"
s.description = <<-DESC
- 測試 pod
- Cocoapods 1.0
- description 需要比 summary 長
DESC
s.homepage = "https://github.com/Damonvvong"
s.license = { :type => "MIT", :file => "LICENSE" } # 開源協(xié)議
s.author = { "Damonwong" => "coderonevv@gmail.com" }
s.platform = :ios, "8.0" # 支持的平臺及版本
s.source = { :git => "https://github.com/Damonvvong/DWCategory.git", :tag => "#{s.version}" }
# 項目地址作為開源項目,這里不能使用 ssh
s.source_files = "DWCategory", "DWCategory/**/*.{h,m}" # 模塊文件路徑配置
s.exclude_files = "Classes/Exclude"
s.module_name = 'DWCategory' # 模塊名稱
end
- 編寫完運行
pod lib lint
刊驴,出現(xiàn)如下圖 運行無誤
3. 將 podspec 上傳到 CocoaPods 的 repo 上
利用Trunk把自己的 DWCategory.podspec 文件上傳給 Cocoapods
1.注冊
pod trunk register coderonevv@gmail.com 'Damonwong' --verbose
- coderonevv@gmail.com:自己的郵箱
- Damonwong:用戶名(最好和.podspec 文件 中一樣)
2.檢查是否注冊成功
登錄郵箱姿搜,確認(rèn)注冊
檢查注冊情況:pod trunk me(看到類似下面,就是成功了)
pod trunk me
- Name: Damonwong
- Email: coderonevv@gmail.com
3.上傳DWCategory.podspec 到 Cocoapods/repo
- 進入 文件所在文件夾
cd /Users/damon/Desktop/DWCategory
- 上傳文件
pod trunk push /Users/damon/Desktop/DWCategory
4.上傳完成捆憎,查找一下
pod search DWCategory
Done! 現(xiàn)在可以用 pod 'DWCategory'
來導(dǎo)入了
<a id="CocoaPodsPPos"></a>
CocoaPods 1.0 私有 Pods
- 創(chuàng)建一個私有 pods 需要三個東西
- 私有的代碼管理倉庫
- 私有的 repo
- 私有 pod
1. 私有的代碼管理倉庫
- 搭建在自己服務(wù)器的源代碼管理倉庫舅柜,例如 GitLab
2. 私有的 repo 【非必要】
-
repo 是什么?
- repo 其實就是一個索引表躲惰。一個管理 .podspec 文件夾的索引致份。下圖是從這里 下載的 master 的目錄結(jié)構(gòu)(在下系統(tǒng)的
~/.cocoapods/repos/master
)。Specs 下存放了Cocoapods 幾乎所有開源的項目索引础拨。例如 AFNetworking 下有每一個版本(tag)對應(yīng)的 podspec氮块。
- repo 其實就是一個索引表躲惰。一個管理 .podspec 文件夾的索引致份。下圖是從這里 下載的 master 的目錄結(jié)構(gòu)(在下系統(tǒng)的
-
所以,我們也要自己先搞一個私有的 repo
- 1.在私有源代碼管理上創(chuàng)建一個空倉庫诡宗。
- 2.到本地 在命令行中輸入
pod repo add REPO_NAME SOURCE_URL
期中REPO_NAME 是你的 repo 名字 例如 DWRepo , SOURCE_URL 是你的 空倉庫的 地址滔蝉。【這一步在本地的~/.cocoapods/repo
下初始化了一個 DWRepo,同時 git push 到了 SOURCE_URL】
3. 私有 pod
這一步這里步驟類似塔沃。只需要把代碼倉庫改為私有的就行蝠引。
-
創(chuàng)建和編寫 podspec。
- 這一步大致與 **CocoaPods 1.0 安裝及適配 ** 的一致。只需要把
s.source = { :git => "改成私有地址" }
即可立肘。記得用pod lib lint
是否有問題
- 這一步大致與 **CocoaPods 1.0 安裝及適配 ** 的一致。只需要把
- 創(chuàng)建完 podspec 不再是用 trunk 上傳自己的 podspec 了边坤。你需要用
pod repo push DWRepo DWCategory.podspec
將.podspec 上傳到自己的 repo 中×履辏【這一步茧痒,先將 DWCategory.podspec 拷貝到了 自己的 repo 中,再將 repo 同步到服務(wù)器上】
ok融蹂!Done旺订。
關(guān)于私有 pod
- 你可以按照上面步驟搭建一個 類似 Cocoapods 的 方案
- 其實你可以省略 repo 直接在 pod 的時候添加 code 源 例如 :
platform :ios, "8.0"
source 'https://github.com/CocoaPods/Specs.git'
target 'CocoaPods2' do
pod 'DWCategory', :git => '這里寫上私有庫的源'
end
- 當(dāng)然上面的 :git 可以改為 :path 來導(dǎo)入本地的 庫
<a id="GitHubInit"></a>1.在 GitHub 初始化一個分類倉庫(DWCategory)
2.clone 到本地,配置文件超燃,再上傳
- 把 GitHub 上的項目克隆到本地区拳。(打開終端,cd 到桌面)
git clone git@github.com:Damonvvong/DWCategory.git
這里是利用 SSH 方式 clone,配置 SSH教程傳送門
- 把自己的分類放入桌面的DWCategory文件夾中,如下意乓。
本文編輯于 2016年9月20日
更多
工作之余樱调,寫了點筆記,如果需要可以在我的 GitHub 看届良。