cocoaPods構(gòu)建私有庫

以前在有道云整理的筆記,分享出來,有問題望大家指正,來從零開始構(gòu)建一個私有庫,分解為四步:

1. 創(chuàng)建遠程私有索引庫(基于碼云)

  • 在碼云上創(chuàng)建私有庫倉庫

// 私有庫地址
https://gitee.com/enlake/library
// git地址
https://gitee.com/enlake/library.git
// ssh
git@gitee.com:enlake/library.git

  • 初始化,將遠程私有庫關(guān)聯(lián)到本地
cd /Users/liqun/.cocoapods/repos
liqun@liqundeMacBook-Pro repos % pod repo add MyLib https://gitee.com/enlake/library.git
  • 查詢之前創(chuàng)建好的私有庫
liqun@liqundeMacBook-Pro LQCommon % pod repo list
MyLib
- Type: git (unknown)
- URL:  https://gitee.com/enlake/library.git
- Path: /Users/liqun/.cocoapods/repos/MyLib
  • 下載克隆到本地
/Users/liqun/Desktop/gitee項目/Library

2. 創(chuàng)建私有庫demo倉庫(碼云)

  • 再創(chuàng)建一個demo倉庫

// 私有庫demo地址
https://gitee.com/enlake/lib-demo
// git地址
https://gitee.com/enlake/lib-demo.git
// ssh
git@gitee.com:enlake/lib-demo.git

  • 初始化,下載克隆到本地
liqun@liqundeMacBook-Pro ~ % cd /Users/liqun/Desktop/gitee項目/Lib-Demo

接下來創(chuàng)建私有庫

//Cloning https://github.com/CocoaPods/pod-template.git into ProjectName.
//創(chuàng)建一個和指定的項目名相同的文件夾,然后將pod-template克隆下拉
//Configuring TemplateDemo template
//對當(dāng)前項目進行配置
//pod-template是cocoapods官方提供的一個模板,主要模板是否下載成功,報錯看文末備注1,報錯就多試幾次。
//這段指令的解讀可以看文末備注2
liqun@liqundeMacBook-Pro Lib-Demo % pod lib create LQCommon

創(chuàng)建成功后,會得到一個空項目,
使用完整的庫代碼替換

/Users/liqun/Desktop/gitee項目/Lib-Demo/LQCommon/LQCommon/Classes/ReplaceMe.m

在/Users/liqun/Desktop/gitee項目/Lib-Demo/LQCommon/Example,執(zhí)行pod install,podfile內(nèi)容見備注2。

liqun@liqundeMacBook-Pro LQCommon % cd Example
liqun@liqundeMacBook-Pro Example % pod install

3. 上傳至遠程庫

  • 私有庫拉一個的標(biāo)號為0.1.0的版本。
liqun@liqundeMacBook-Pro LQCommon % cd /Users/liqun/Desktop/gitee項目/Lib-Demo/LQCommon
liqun@liqundeMacBook-Pro LQCommon % git remote add origin https://gitee.com/enlake/lqcommon.git
liqun@liqundeMacBook-Pro LQCommon % git status
// 無有改動跳過添加、提交
liqun@liqundeMacBook-Pro LQCommon % git add .
liqun@liqundeMacBook-Pro LQCommon % git commit -m 'common-lib'

// 如果有沖突,將沖突改掉,標(biāo)記解決,再次提交
liqun@liqundeMacBook-Pro LQCommon % git pull --rebase origin master

liqun@liqundeMacBook-Pro LQCommon % git rebase --continue

liqun@liqundeMacBook-Pro LQCommon % git tag 0.1.0
liqun@liqundeMacBook-Pro LQCommon % git push --tags

// 如果原來存在標(biāo)簽,需要刪除標(biāo)簽,再添加推送。
// 刪除本地tag
liqun@liqundeMacBook-Pro LQCommon % git tag -d 0.1.0
// 刪除遠端tag
liqun@liqundeMacBook-Pro LQCommon % git push origin :refs/tags/0.1.0
  • 修改文件LQCommon.podspec
  // 私有庫對外公開的頭文件,沒有這行的話默認(rèn)所有文件都是公開的
  # s.public_header_files = 'Pod/Classes/**/*.h'
  • s.public_header_files與s.source_files說明
s.source_files 配置三方庫的源文件(.h或.m文件),swift是配置.swift文件
寫法:
OC:s.source_files = "Classes/**/*.{h,m}"#Classes路徑下的所有匹配文件
       s.source_files = "Classes/*.{h,m}"#Classes文件夾下的所有匹配文件
       s.source_files = “Classes/PageController.{h,m}"#直接指定文件名
Swift:s.source_files = "Classes/**/*.{swift}"#Classes路徑下的所有匹配文件
           s.source_files = "Classes/*.{swift}"#Classes文件夾下的所有匹配文件
           s.source_files = “Classes/PageController.{swift}"#直接指定文件名
public_header_files頭文件
s.public_header_files = "Classes/**/*.h"#Classes路徑下所匹配的.h文件
s.public_header_files = "Classes/*.h"
s.public_header_files = "Classes/Public.h"

// 從本地和遠程驗證pod能否驗證通過

liqun@liqundeMacBook-Pro LQCommon % pod spec lint --allow-warnings

// 允許警告,用來解決由于代碼中存在警告導(dǎo)致不能通過校驗的問題

liqun@liqundeMacBook-Pro LQCommon % pod lib lint --allow-warnings

4. 關(guān)聯(lián)LQCommon.podspec和MyLib

liqun@liqundeMacBook-Pro LQCommon % pod repo push MyLib LQCommon.podspec --verbose --allow-warnings
-> LQCommon (0.1.0)
   包含創(chuàng)建App基礎(chǔ)代碼,包括了常用宏定義,還包含了公共方法:顏色、日期、圖片、對象、字符串、系統(tǒng)等。
   liqun@liqundeMacBook-Pro LQCommon % pod search LQCommon
   pod 'LQCommon', '~> 0.1.0'
   - Homepage: https://gitee.com/enlake/lqcommon
   - Source:   https://gitee.com/enlake/lqcommon.git
   - Versions: 0.1.0 [MyLib repo]

如果提示:[!] The EQXActivityView.podspec specification does not validate.

pod repo push MyLib LQCommon.podspec --verbose --allow-warnings --use-libraries  --skip-import-validation

備注1:

備注2:
我們需要先知道下邊代碼的含義:(失敗盡量多試幾次,或者過段時間使用,GitHub經(jīng)常訪問失敗)

pod lib create ObjcName

實際上等同于:

pod lib create ProjectName --template-url=https://github.com/CocoaPods/pod-template.git

備注3:

//注意平臺版本
use_frameworks!
platform :ios, '10.0'
target 'LQCommon_Tests' do
  pod 'LQCommon', :path => '../'
end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容