iOS組件化—CocoaPods搭建私有倉庫

CocoaPods是啥就不多說了,為了實(shí)現(xiàn)iOS組件化,需要手動基于公司的gitlab搭建私有倉庫。

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、烏海ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的烏海網(wǎng)站制作公司

零、環(huán)境配置

1.更換gem源:

$ gem sources -r https://rubygems.org/             //刪除舊源
$ gem sources -a https://gems.ruby-china.com/      //添加新源 =>RubyGems鏡像的管理工作已經(jīng)移交給了Ruby China負(fù)責(zé)
$ get sources -l                                   //查看源列表

2.更新gem

$ sudo gem update --system

3.安裝cocoapods

OS X 10.11之前系統(tǒng)的安裝cocoapods 指令:$ sudo gem install cocoapods
OS X 10.11以后系統(tǒng)的安裝cocoapods 指令:$ sudo gem install -n /usr/local/bin cocoapods

一、概念

首先要先區(qū)分倆概念:
Code Repository:比如我開發(fā)了一個功能模塊Test,源碼文件是保存到Code Respository的,就是我們平時用的git倉庫。
Specs Repository:針對Test會有一個Test.podspec文件用來配置Test的發(fā)布的,保存podspec文件的倉庫就是Specs Repository。它保存了所有要發(fā)布的組件的podspec文件,僅用來配置,叫配置倉庫。

二、步驟

分清了上面兩個概念,搭建私有倉庫也就可以分為兩步走了。

1.創(chuàng)建代碼倉庫Code Repository。

(1) 在gitlab上創(chuàng)建項(xiàng)目Test(http://git.layne.com/Test.git ),checkout到本地~/Test中,然后往該文件夾中添加如下內(nèi)容

LICENSE
README
Classes/
Test.podspec

說明:
①其中Classes為文件夾,用來存儲組件的源碼,這里我只以SceneDelegate.swift文件為例,即Classes文件夾中只存放SceneDelegate.swift文件。最終路徑為Classes/Swift/SceneDelegate.swift.
②Test.podspect為當(dāng)前這個組件的pod描述,內(nèi)容如下:

Pod::Spec.new do |spec|
  spec.name         = "Test"       # 組件名字
  spec.version      = "0.0.1"      # 組件版本,該文件上傳的git倉庫之后需要對其進(jìn)行tag,tag的版本號要和這個一致。
  spec.summary      = "Used to Test how to use Pod."  #簡要描述
  spec.swift_versions = ['3.2', '4.0', '4.2']    #若使用swift,需要制定swift版本
  spec.description  = <<-DESC    #詳細(xì)描述
                        podCreateTest I love my country and love my family
                   DESC
  spec.homepage     = "http://git.layne.com/Test"   # git倉庫的地址,即去掉.git后綴之后前面的部分
  spec.license      = { :type => 'MIT', :file => 'LICENSE' }

  spec.author             = "layne.zhang"
  spec.platform     = :ios
  spec.ios.deployment_target = "13.0"

  #source
  spec.source       = { :git => "http://git.layne.com/Test.git", :tag => "#{spec.version}" }
  spec.source_files  = "Classes/Swift/SceneDelegate.swift"
  spec.exclude_files = "Classes/Exclude"
  # spec.public_header_files = "Classes/**/*.h"
  # spec.dependency "JSONKit", "~> 1.4"

end

注釋都已經(jīng)在上邊了,當(dāng)然你也可以使用如下命令生成一個默認(rèn)的Test.podspec,然后進(jìn)行修改:

pod spec create Test

(2) 驗(yàn)證Test.podspec
上傳到gitlab之前,要先對Test.podspec進(jìn)行驗(yàn)證。在~/Test位置打開Terminal,執(zhí)行:

pod lib lint

驗(yàn)證成功之后,將~/Test內(nèi)添加的四樣內(nèi)容推送到gitlab上。
(3) 創(chuàng)建tag。
tag名要和上面podspec文件中spec.version的值一致,即為0.0.1。

2.創(chuàng)建配置倉庫Specs Repository

(1)跟創(chuàng)建代碼倉庫一樣,在gitlab上創(chuàng)建一個倉庫命名為Specs(http://git.layne.com/Specs.git ),這個倉庫用來保存.podspec文件??諅}庫需要創(chuàng)建一個README文件,因?yàn)間itlab在空倉庫中是沒有分支的,加個README讓其自動創(chuàng)建master分支。
(2)執(zhí)行以下命令,將配置倉庫checkout到本地

pod repo add Test http://git.layne.com/Specs.git

但是,checkout下來之后是存在~/.cocoapods/repos下面的,即執(zhí)行了上面的命令之后,會生成:

~/.cocoapods/repos/Test

(3)將Test.podspec添加到配置倉庫:
在代碼倉庫checkout的路徑~/Test下面打開Terminal,執(zhí)行push命令

pod repo push Test Test.podspec

這個命令可以這樣理解:將當(dāng)前目錄(~/Test)下的Test.podspec文件推送到~/.cocoapods/repos目錄下Test文件夾對應(yīng)的遠(yuǎn)程倉庫中。

3.使用

經(jīng)過上面的兩個步驟,我們就完成了組件的分發(fā)。接下來是使用:

(1) 搜索
pod search  Test

通過搜索可以查看組件的信息。若搜索不到,可以先刪除pod的緩存:

rm ~/Library/Caches/CocoaPods/search_index.json
(2) 項(xiàng)目中引入(以MYLIB為例)

在MYLIB位置打開Terminal,執(zhí)行:

pod init

會在MYLIB文件夾中生成Podfile文件。編寫內(nèi)容如下:

source 'http://git.layne.com/Specs.git' #這里指定Specs Repository的地址,而非Code Repository的地址
platform :ios, '13.0'
target 'MYLIB' do #當(dāng)前項(xiàng)目名稱pod 'Test'
end

之后在Terminal中執(zhí)行:

pod install

執(zhí)行安裝。后續(xù)使用.xcworkspace進(jìn)行開發(fā)即可。

(3)維護(hù)好podspec,記得每提交一個版本,都要在code repository中打tag,然后更新podspec。

名稱欄目:iOS組件化—CocoaPods搭建私有倉庫
網(wǎng)頁鏈接:http://www.muchs.cn/article4/ghocoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、Google、做網(wǎng)站、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)