您好,登錄后才能下訂單哦!
CocoaPods是啥就不多說了,為了實現iOS組件化,需要手動基于公司的gitlab搭建私有倉庫。
$ gem sources -r https://rubygems.org/ //刪除舊源
$ gem sources -a https://gems.ruby-china.com/ //添加新源 =>RubyGems鏡像的管理工作已經移交給了Ruby China負責
$ get sources -l //查看源列表
$ sudo gem update --system
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) 在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。
(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文件夾對應的遠程倉庫中。
經過上面的兩個步驟,我們就完成了組件的分發。接下來是使用:
pod search Test
通過搜索可以查看組件的信息。若搜索不到,可以先刪除pod的緩存:
rm ~/Library/Caches/CocoaPods/search_index.json
在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進行開發即可。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。