cocoa gitee私庫搭建

其他文章其實(shí)已經(jīng)有介紹私庫搭建的,但是在參照搭建過程中發(fā)現(xiàn)一些不匹配的問題點(diǎn)(照著做走不通),特寫文章記錄。

<1>創(chuàng)建 repo 私有庫的索引庫 spec

在git上創(chuàng)建索引庫? spec,我這兒用碼云舉例,方法和創(chuàng)建項(xiàng)目是一樣的。

截屏2022-05-12 下午1.48.44.png

然后就有了索引庫的地址:https://gitee.com/*******/test-module-specs.git

截屏2022-05-12 下午1.53.59.png

將索引庫添加到本地倉庫

// pod repo add specs庫名 specs庫地址pod repoaddTestModuleSpecshttps://gitee.com/******/test-module-specs.git

查看是否添加成功

pod repo list//可以看到已經(jīng)添加成功TestModuleSpecs-Type:git(master)-URL:https://gitee.com/*********/test-module-specs.git-Path:/Users/*******/.cocoapods/repos/TestModuleSpecs

<2>創(chuàng)建私有庫并發(fā)布到索引庫

第一步:先在git上創(chuàng)建私有庫,還是以碼云舉例。

然后就有了私有庫地址:

https://gitee.com/*************/test-module-one.git

第二步:創(chuàng)建私有庫模板

//創(chuàng)建私有庫模板pod lib create TestModuleOne//下面是私有庫的簡(jiǎn)單配置//選擇平臺(tái)What platformdoyou want to use??[iOS/macOS]>ios//選擇編程語言What languagedoyou want to use??[Swift/ObjC]>objc//選擇是否創(chuàng)建測(cè)試demoWould you like to include a demo applicationwithyourlibrary?[Yes/No]>yes//選擇測(cè)試框架Which testing frameworks will you use?[Specta/Kiwi/None]>none//是否視圖測(cè)試Would you like todoview based testing?[Yes/No]>no//類前綴Whatisyourclassprefix?>LU

這就得到了庫模板:

這就創(chuàng)建好了私有庫模塊了

編輯私有庫索引 TestModuleOne.podspec

version? ? ? ? ? ? 功能版本,建議和tag保持一致,版本從0.1.0開始。summary? ? ? ? ? ? 功能概要,需要填寫更新,否則lint檢測(cè)無法通過。description? ? ? ? 功能描述,可以選擇性刪除,否則lint檢測(cè)無法通過。homepage? ? ? ? ? ? 資源首頁,私有庫對(duì)應(yīng)的瀏覽器地址。resource? ? ? ? ? ? 資源地址,git克隆地址。建議使用http/https,git類型有權(quán)限控制。source_file? ? ? ? 類資源文件,默認(rèn)Classes下的所有文件,放置私有庫核心文件。resourcesBundle資源文件(不推薦使用),會(huì)合并至MainBundle中,訪問便利,但會(huì)存在命名沖突問題。個(gè)別SDK必須放在MainBundle中才能使用,比如微博SDK?。?!。resource_filesBundle資源文件(推薦使用),單獨(dú)的Bundle文件,不與MainBundle合并,使用內(nèi)部資源時(shí)和MainBundle路徑有區(qū)別?。。?。exclude_files? ? ? 指定不被包含的文件、目錄vendored_libraries? 內(nèi)部包含的.a靜態(tài)庫 例如'ModuleName/Classes/Lib/*.{a}'vendored_framework? 內(nèi)部包含的.framework靜態(tài)庫 例如'ModuleName/Classes/Framework/***.framework'static_framework? ? 指定pod加靜態(tài)庫標(biāo)簽true/false指定支持的架構(gòu),如果因?yàn)閕386等架構(gòu)問題lint檢測(cè)不通過,可以在檢測(cè)時(shí)添加--skip-import-validation參數(shù)s.xcconfig={'VALID_ARCHS'=>'armv7 arm64e armv7s arm64 x86_64',}如果支持單文件目錄下的文件引用,可以設(shè)置subspecs.default_subspec='Core's.subspec'Core'do|core|core.dependency'MBProgressHUD'core.source_files="DYFoundationFramework/Classes/**/*.{h,m}"ends.subspec'OldCommonTools'do|oct|oct.dependency'SAMKeychain'oct.source_files="DY****Framework/Classes/Object-C/DY****Tools/**/*.{h,m}"end

截屏2022-05-12 下午2.35.28.png

驗(yàn)證.podspec文件的格式是否正確

pod lib lint//本地驗(yàn)證pod能否通過驗(yàn)證,如果失敗使用下面命令: pod lib lint --verbose查看原因,或者使用pod lib lint --allow-warnings忽略警告錯(cuò)誤

將私有庫代碼提交到git

git remoteaddorigin https://gitee.com/********/test-module-one.gitgitadd.git commit-a-m"第一次提交 版本為0.1.0"git pull origin master--allow-unrelated-historiesgit push-f origin mastergit tag0.1.0git push origin0.1.0

podspec文件中的地址要和遠(yuǎn)程倉庫保持一致

git push -f origin master,本地強(qiáng)制上傳到遠(yuǎn)程,把遠(yuǎn)程的覆蓋,這兒是第一次上傳,所有就用本地代碼覆蓋掉遠(yuǎn)端代碼了。

這兒就已經(jīng)吧私有庫代碼提交到git上了

第三步:將私有庫發(fā)布

//pod repo push 索引庫名 私有庫.podspecpod repo pushTestModuleSpecsTestModuleOne.podspec--allow-warnings//檢查一下是否成功pod search TestModuleOne->TestModuleOne(0.1.0)Ashortdescription of TestModuleOne.pod'TestModuleOne','~> 0.1.0'-Homepage:https://gitee.com/********/test-module-one-Source:https://gitee.com/******/test-module-one.git-Versions:0.1.0[TestModuleSpecsrepo]

這就算是搭建完成了

作者:LUJQ

鏈接:http://www.itdecent.cn/p/156cff56a91d

來源:簡(jiǎn)書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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