CocoaPods私有庫創(chuàng)建流程

前言

iOS開發(fā)者奸绷,會經(jīng)常使用CocoaPods管理第三方庫梗夸。但是,無論是組件化開發(fā)還是需要創(chuàng)建公司內(nèi)部的類庫号醉,我們都可以制作自己私有的CocoaPods庫反症。本文就是詳細說明私有庫創(chuàng)建流程。

創(chuàng)建流程

私有檢索庫的創(chuàng)建

我們創(chuàng)建CocoaPods公有庫時需要向公共的Spec庫進行注冊的扣癣。私有庫則需要我們自己來創(chuàng)建Spec倉庫惰帽。這個Spec庫存儲的是私有庫的檢索信息,版本信息等等父虑,一定要與私有庫本身區(qū)分開该酗。

1,創(chuàng)建遠程Spec倉庫

首先士嚎,我們需要創(chuàng)建一個存放Spec檢索庫的遠程倉庫

創(chuàng)建Spec遠程倉庫
2呜魄,將Spec遠程倉庫添加到本地:
$ pod repo add JiaSpecRepo https://github.com/skykywind/JiaSpecRepo.git

然后我們可以在 /Users/jiafujia/.cocoapods/repos/JiaSpecRepo找到clone的倉庫:

Spec倉庫本地路徑

私有庫的創(chuàng)建

有了檢索庫,我們就可以創(chuàng)建私有代碼庫了莱衩。

創(chuàng)建代碼庫遠程倉庫

這里我們創(chuàng)建一個新的遠程倉庫爵嗅,名字為PrivateLib

創(chuàng)建代碼庫遠程倉庫

創(chuàng)建支持CocoaPods的項目

我們可以在已經(jīng)存在的項目添加支持Cocoapods的文件,也可以新建項目笨蚁。打開終端睹晒,通過以下命令創(chuàng)建新的工程:

  1. Pod創(chuàng)建私有庫項目
$ pod lib create PrivateLib

然后會有如下幾個問題需要你自定義:

What platform do you want to use?? [ iOS / macOS ]
 > iOS

What language do you want to use?? [ Swift / ObjC ]
 > Swift

Would you like to include a demo application with your library? [ Yes / No ]
 > Yes

Which testing frameworks will you use? [ Quick / None ]
 > None

Would you like to do view based testing? [ Yes / No ]
 > Yes
  1. 編輯PrivateLib.podspec文件
    現(xiàn)根據(jù)自己項目的情況編輯版本信息,描述信息括细,以及其他內(nèi)容伪很,詳見CocoaPods官網(wǎng)文檔
#
# Be sure to run `pod lib lint PrivateLib.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'PrivateLib'
  s.version          = '0.1.0'
  s.summary          = 'Here is Summary of PrivateLib.'
  s.description      = <<-DESC
Here is a long description of your private lib. we can write details of the lib.
                       DESC

  s.homepage         = 'http://www.reibang.com/u/0d7345536bf2'
  # s.screenshots    = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'skykywind' => '824214765@qq.com' }
  s.source           = { :git => 'https://github.com/skykywind/PrivateLib.git', :tag => s.version.to_s }
  s.ios.deployment_target = '8.0'
  s.swift_version = '4.2'     // 指定Swift 版本
  s.source_files = 'PrivateLib/Classes/**/*'   // 項目代碼存放的文件路徑

end

編輯完成之后,我們來驗證一下是否能通過:

$ pod lib lint PrivateLib.podspec 

如果不能通過驗證奋单,終端會提示你哪個字段信息有問題锉试,修改之后在進行驗證就好了。

  1. 添加代碼

打開PrivateLib.xcworkspace, 我們刪除默認的ReplaceMe.swift文件, 在PrivateLib->PrivateLib->Classes文件夾下览濒,我創(chuàng)建了一個MyClass類作為示例呆盖,這里也就是添加私有代碼的地方:

import Foundation

public class MyClass {
    
    public init() {
    }
    
    public func sayHello() {
        print("Hello world")
    }
    
}

  1. 測試代碼
    添加完我們的代碼后,可以在Example項目中進行測試贷笛。在Example目錄下应又,使用下面命令(每次修改私有庫代碼都需要重新pod install):
$ pod install

然后在Example的中調(diào)用:

import UIKit
import PrivateLib

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let myClass = MyClass()
        myClass.sayHello()
    }
}

如果運行成功我們就可以繼續(xù)進行了。

  1. 提交本地代碼
    打開終端乏苦,使用git指令提交代碼
# 關(guān)聯(lián)遠程倉庫
$ git remote add origin https://github.com/skykywind/PrivateLib.git
# 添加全部修改
$ git add .
# 提交修改
$ git commit -a -m "0.1.0"
# 拉取遠程倉庫代碼(先拉取一下遠程的代碼丁频,避免沖突)
$ git pull origin master
# 推送到遠程倉庫
$ git push origin master
# 制作Tag
$ git tag 0.1.0
# 發(fā)布Tag
$ git push origin 0.0.1
  1. 向私有Spec檢索庫注冊自己的spec,并驗證是否成功:
# JiaSpecRepo是我們最開始創(chuàng)建的檢索庫名稱
$ pod repo push JiaSpecRepo PrivateLib.podspec
//驗證遠程
$ pod spec lint PrivateLib.podspec

成功之后我們會在JiaSpecRepo文件夾看到我們發(fā)布的版本Users/username/.cocoapods/目錄內(nèi):

同時,也可以在遠程倉庫去查看是否發(fā)布成功席里。

私有庫的使用

創(chuàng)建一個新的iOS項目 TestDemo,在項目目錄下:

$ pod init

然后通過Xcode或者其他編輯器拢驾,編輯Podfile文件奖磁,參考如下:

source 'https://github.com/skykywind/JiaSpecRepo.git'
# 如果需要引入公共資源的庫,也要添加下面的公共檢索庫地址
# source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'

target 'TestDemo' do
    pod 'PrivateLib', '~> 0.1.0'

end

私有庫的更新

如果是更新自己的私有庫繁疤,比如修改了代碼咖为,添加了新的依賴庫,我們需要重新更新.spec的版本稠腊,創(chuàng)建新的Tag號并push到檢索庫(重復發(fā)布步驟)躁染。

如果是更新自己本地檢索庫,可以執(zhí)行以下命令:

//更新所有repo
$ pod repo update

// 更新某個spec
$ pod repo [spec庫名]

// 添加新的檢索庫到本地
pod repo add [Specs Name] [Specs git倉庫地址]
參考文章

如何制作一個CocoaPods私有庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末架忌,一起剝皮案震驚了整個濱河市吞彤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叹放,老刑警劉巖饰恕,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異井仰,居然都是意外死亡埋嵌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門俱恶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雹嗦,“玉大人,你說我怎么就攤上這事合是×俗铮” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵端仰,是天一觀的道長捶惜。 經(jīng)常有香客問我,道長荔烧,這世上最難降的妖魔是什么吱七? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮鹤竭,結(jié)果婚禮上踊餐,老公的妹妹穿的比我還像新娘。我一直安慰自己臀稚,他們只是感情好吝岭,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般窜管。 火紅的嫁衣襯著肌膚如雪散劫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天幕帆,我揣著相機與錄音获搏,去河邊找鬼。 笑死失乾,一個胖子當著我的面吹牛常熙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碱茁,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼裸卫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纽竣?” 一聲冷哼從身側(cè)響起墓贿,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎退个,沒想到半個月后募壕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡语盈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年舱馅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刀荒。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡代嗤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缠借,到底是詐尸還是另有隱情干毅,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布泼返,位于F島的核電站硝逢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绅喉。R本人自食惡果不足惜渠鸽,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柴罐。 院中可真熱鬧徽缚,春花似錦、人聲如沸革屠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至那婉,卻和暖如春板甘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背详炬。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工虾啦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人痕寓。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像蝇闭,于是被迫代替她去往敵國和親呻率。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容