中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-14 15:36:27 來源:網絡 閱讀:452 作者:zlayne 欄目:移動開發

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

零、環境配置

1.更換gem源:

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

2.更新gem

$ sudo gem update --system

3.安裝cocoapods

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

一、概念

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

二、步驟

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

1.創建代碼倉庫Code Repository。

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

LICENSE
README
Classes/
Test.podspec

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

Pod::Spec.new do |spec|
  spec.name         = "Test"       # 組件名字
  spec.version      = "0.0.1"      # 組件版本,該文件上傳的git倉庫之后需要對其進行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    #詳細描述
                        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

注釋都已經在上邊了,當然你也可以使用如下命令生成一個默認的Test.podspec,然后進行修改:

pod spec create Test

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

pod lib lint

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

2.創建配置倉庫Specs Repository

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

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

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

~/.cocoapods/repos/Test

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

pod repo push Test Test.podspec

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

3.使用

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

(1) 搜索
pod search  Test

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

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

在MYLIB位置打開Terminal,執行:

pod init

會在MYLIB文件夾中生成Podfile文件。編寫內容如下:

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

之后在Terminal中執行:

pod install

執行安裝。后續使用.xcworkspace進行開發即可。

(3)維護好podspec,記得每提交一個版本,都要在code repository中打tag,然后更新podspec。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲水县| 宜兰市| 离岛区| 定襄县| 东阿县| 南城县| 青铜峡市| 小金县| 苏尼特左旗| 崇文区| 隆安县| 宁河县| 高唐县| 施秉县| 库车县| 依兰县| 盐亭县| 甘肃省| 库伦旗| 界首市| 五大连池市| 南郑县| 博湖县| 吴堡县| 甘孜县| 绥德县| 无极县| 绥江县| 泸水县| 巴里| 宁明县| 成都市| 肇东市| 蒙自县| 彰武县| 高州市| 雷山县| 扎鲁特旗| 鹤庆县| 扶风县| 肇州县|