一、iOS和OSX中添加第三方依賴(lài)庫(kù)
- CocoaPods 和 Carthage 作為 iOS 和 OS X 下的第三方庫(kù)管理工具缸榄,通過(guò) CocoaPods 和 Carthage 可以方便的為項(xiàng)目添加第三方依賴(lài)庫(kù)渤弛。方便管理其版本的同時(shí),也大大的提高了開(kāi)發(fā)效率甚带。下文中僅以 Cocoapods 為主介紹其環(huán)境集成和使用她肯。
1.1 CocoaPods介紹
- CocoaPods 作為一個(gè)提供中心倉(cāng)庫(kù)的第三方庫(kù)管理工具,可以方便的添加第三方庫(kù)的依賴(lài)并自動(dòng)完成對(duì)第三方庫(kù)的配置鹰贵。利用 CocoaPods 還可以集成自己發(fā)布的開(kāi)源庫(kù)和創(chuàng)建的私有庫(kù)晴氨。
- CocoaPods 添加第三方依賴(lài)庫(kù)時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)新的workspace,主項(xiàng)目添加的所有依賴(lài)庫(kù)都放在自動(dòng)創(chuàng)建的Pods項(xiàng)目中碉输,讓主項(xiàng)目依賴(lài)Pods項(xiàng)目籽前。
1.2 Carthage介紹
- Carthage 是一個(gè)去中心化的第三方庫(kù)管理工具。相對(duì)于 CocoaPods 來(lái)說(shuō)敷钾,Carthage 使用更加簡(jiǎn)單聚假。
- Carthage 管理第三方依賴(lài)庫(kù)時(shí),不會(huì)過(guò)多的入侵主項(xiàng)目的項(xiàng)目結(jié)構(gòu)闰非,添加依賴(lài)完成的項(xiàng)目相對(duì) CocoaPods 比較干凈膘格。添加的依賴(lài)庫(kù)會(huì)自動(dòng)編譯為Dynamic framework。
- 可以與通過(guò) CocoaPods 添加依賴(lài)的項(xiàng)目無(wú)縫對(duì)接财松。
- Carthage iOS8+瘪贱。
1.3 CocoaPods 和 Carthage 優(yōu)缺點(diǎn)
- CocoaPods
- 優(yōu)點(diǎn):
- 第三方庫(kù)豐富
- 工具功能豐富、完善
- 缺點(diǎn):
- 需要更新中心倉(cāng)庫(kù)(這里說(shuō)的倉(cāng)庫(kù)辆毡,不是github上所有托管庫(kù)的代碼庫(kù)的集合菜秦,而是github上托管的所有開(kāi)源倉(cāng)庫(kù)的索引集合),并且每次更新需要連接中心倉(cāng)庫(kù)比較耗時(shí)
- 發(fā)布第三方庫(kù)到 CocoaPods 操作繁瑣
- 對(duì)主工程項(xiàng)目結(jié)構(gòu)入侵較多
- 優(yōu)點(diǎn):
- Carthage
- 優(yōu)點(diǎn):
- 去中心化舶掖,使用時(shí)只需要更新具體的庫(kù)
- 直接加載 framework 編譯耗時(shí)短
- 不改變主工程項(xiàng)目結(jié)構(gòu)
- 缺點(diǎn):
- 第三方庫(kù)有限
- 僅支持iOS8+
- 工具功能不完善
- 無(wú)法再主工程中直接查看第三方庫(kù)源碼
- 優(yōu)點(diǎn):
二球昨、CocoaPods環(huán)境集成和使用
2.1 配置 ruby 環(huán)境
- 通常ruby源默認(rèn)為https://rubygems.org/,由于眾所周知的原因眨攘,我們需要將ruby源改為國(guó)內(nèi)的源站主慰。
-
gem sources –l
// 查看ruby源 -
gem sources --remove https://rubygems.org/
// 刪除ruby源 -
gem sources -a https://gems.ruby-china.org/
// 添加ruby源
-
- 注:國(guó)內(nèi)ruby源由于淘寶源(https://ruby.taobao.org/)已經(jīng)不再維護(hù)嚣州,推薦使用
https://gems.ruby-china.org/https://gems.ruby-china.com
2.2 安裝 CocoaPods
-
安裝 CocoaPods 之前,如果 gem 版本太老共螺,需要升級(jí)gem:
- 更新gem
sudo gem update --system
- 查看gem版本
gem -v
- 更新gem
-
安裝 CocoaPods
sudo gem install cocoapods
// 安裝或更新pod setup
// 在~/.cocoapods/repos中創(chuàng)建一個(gè)目錄用來(lái)保存spec-repos,并從https://github.com/CocoaPods/Specs拉取Specs到本地该肴,如果~/.cocoapods/repos目錄已經(jīng)存在,則會(huì)將當(dāng)前目錄下的倉(cāng)庫(kù)更新到最新版本藐不。-
報(bào)錯(cuò)1:
- 對(duì)于執(zhí)行安裝過(guò)程中的報(bào)錯(cuò)匀哄,這里如果報(bào)Operation not permitted - /usr/bin/xcodeproj。
- 解決方案:
sudo gem install -n /usr/local/bin cocoapods
pod setup
-
報(bào)錯(cuò)2:
- pod setup 失敗
- 解決方案1:刪除master重新下載
pod repo remove master
pod setup
- 解決方案2:
- 直接從github上clone或者下載一個(gè)Specs到本地雏蛮,重命名為master涎嚼,拷貝到~/.cocoapods/repos目錄下
- 再次執(zhí)行
pod setup
驗(yàn)證
-
更新 CocoaPods
sudo gem install cocoapods
-
安裝指定版本
sudo gem install cocoapods -v 1.5.2
-
安裝預(yù)發(fā)布版本(beta)
sudo gem install cocoapods --pre
-
卸載或者版本回退 CocoaPods
sudo gem uninstall cocoapods
-
版本查看
pod --version
備注:近期升級(jí)系統(tǒng) MacOs High Sierra,遇到cocoapods無(wú)法更新repo的問(wèn)題,提示各種權(quán)限和無(wú)法更新的問(wèn)題挑秉,初步確認(rèn)問(wèn)題在ruby環(huán)境法梯,故需升級(jí)ruby,但通過(guò)
sudo gem update --system
無(wú)法更新ruby衷模,最終的解決辦法鹊汛,安裝rvm,通過(guò)rvm安裝新版本ruby,再安裝cocoapods即可蒲赂。
2.3 給項(xiàng)目添加 CocoaPods 庫(kù)依賴(lài)
方式1:執(zhí)行
$ pod init
方式2:直接創(chuàng)建文件
1.在主項(xiàng)目根目錄創(chuàng)建一個(gè)Podfile文件(命名注意:Podfile)
-
2.編輯Podfile文件格式和內(nèi)容:<Podfile文件的編輯可以選擇CocoaPods App>
platform:ios, '8.0' // 指定要添加依賴(lài)的主工程的運(yùn)行平臺(tái)阱冶,適配的最低版本 target 'YourApp' do // 指定要添加依賴(lài)的target pod 'AFNetworking', '3.0.1' // 添加需要依賴(lài)的庫(kù),可以通過(guò)pod search來(lái)搜索github上托管的第三方庫(kù) end
注:編輯完成注意保存
-
說(shuō)明:關(guān)于指定pod versions
-
pod 'AFNetworking'
// 省略版本號(hào)滥嘴,即總是希望使用最新的版本作為依賴(lài) -
pod 'AFNetworking', '3.0.1'
// 指定特定版本號(hào)木蹬,即總是使用指定的特定版本作為依賴(lài) -
pod 'AFNetworking', '> 3.0.0'
// 指定高于3.0.0的任意版本,即總是使用高于3.0.0的任意版本作為依賴(lài) -
pod 'AFNetworking', '>= 3.0.0'
// 指定3.0.0或者高于3.0.0的任意版本若皱,即總是使用3.0.0或者高于3.0.0的任意版本作為依賴(lài) -
pod 'AFNetworking', '< 3.0.0'
// 指定任意低于3.0.0的版本镊叁,即總是使用低于3.0.0的版本作為依賴(lài) -
pod 'AFNetworking', '<= 3.0.0'
// 指定3.0.0版本和任意低于3.0.0的版本,即總是使用3.0.0版本或者低于3.0.0的版本作為依賴(lài) -
pod 'AFNetworking', '~> 3.0.1'
// 指定版本3.0.1及其之后版本中低于3.1.0(不包括3.1.0)的版本 -
pod 'AFNetworking', '~> 3.1'
// 指定版本3.1及其之后版本中低于4.0(不包括4.0)的版本 -
pod 'AFNetworking', '~> 0'
// 指定版本0及其之后版本中低于1.0的版本
以上關(guān)于版本指定走触,除了指定特定版本這種方式外晦譬,其他指定版本的方式都是在滿(mǎn)足當(dāng)前約束條件下默認(rèn)使用的約束條件下的最大版本作為依賴(lài)
-
-
除了以上指定版本之外,還可以指定pod的master分支作為依賴(lài)版本(指定具體版本的方式好處是指定的版本一般都是tag版本互广,是第三方庫(kù)作者測(cè)試通過(guò)的可發(fā)布的版本敛腌,而指定master作為依賴(lài)時(shí),有可能其中的部分代碼還在測(cè)試和完善階段的作者沒(méi)有發(fā)布的源代碼惫皱,即tag之外的代碼像樊,選擇master作為依賴(lài)版本要慎重。選擇master作為依賴(lài)一般用在團(tuán)隊(duì)開(kāi)發(fā)的私有庫(kù)的 開(kāi)發(fā)模式 中旅敷,或者自己維護(hù)的開(kāi)源庫(kù) 開(kāi)發(fā)模式 中生棍,開(kāi)發(fā)完成后切換到tag版。)
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git'
-
3.通過(guò)
pod search
來(lái)搜索需要依賴(lài)的庫(kù)pod search AFNetworking
4.從本地加載依賴(lài)庫(kù)
-
5.添加依賴(lài)到主工程
-
pod install
// 下載Podfile中的所有依賴(lài)庫(kù)媳谁,并在./Pods路徑下創(chuàng)建一個(gè)Pods庫(kù)工程 -
pod update
// 更新依賴(lài)庫(kù)涂滴,如果指定依賴(lài)庫(kù)可以更新具體的第三方依賴(lài)庫(kù)友酱,否則更新所有需要更新的依賴(lài)庫(kù)。 - 注:二選一
-
-
補(bǔ)充
pod update 在執(zhí)行的時(shí)候每次都會(huì)先執(zhí)行pod repo update氢妈,比較耗時(shí)粹污,所以一般選擇不更新本地倉(cāng)庫(kù)使用
pod update --no-repo-update
-
當(dāng)github上托管的第三方庫(kù)有更新版本時(shí),需要更新本地倉(cāng)庫(kù):
-
pod repo update
// 不指定具體倉(cāng)庫(kù)首量,會(huì)自動(dòng)更新所有倉(cāng)庫(kù)
或者
-
pod repo update master
// 指定更新master
-
同時(shí)給多個(gè)target添加依賴(lài)庫(kù)的壮吩,例如TestTarget / AppExtensionTarget,只需要在Podfile文件中添加多個(gè)target.
platform:ios, '8.0' target 'YourApp' do // add lib end target 'YourTestTarget' do // add lib end
2.4 解除項(xiàng)目 CocoaPods 依賴(lài)
- 刪除本地文件:
- podfile
- podfile.lock
- pods文件夾
- 刪除工程文件:
- xcworkspace
- 刪除項(xiàng)目中的frameworks文件夾下面,pods.xcconfig和libpods.a文件
- 進(jìn)入target,在build phases中加缘,刪除copy pods resources/Embed pods frameworks/check pods manifest.lock三項(xiàng)
- 刪除工程中對(duì)第三方庫(kù)的引用
三鸭叙、發(fā)布項(xiàng)目到CocoaPods
- 很多時(shí)候,我們會(huì)自己造輪子拣宏,如果想托管到github作為第三方庫(kù)在 CocoaPods 中使用沈贝,就需要發(fā)布項(xiàng)目到 CocoaPods
- 在組件化等項(xiàng)目架構(gòu)的使用方式中,會(huì)需要用到不方便開(kāi)源的私有庫(kù)勋乾,如果想通過(guò) CocoaPods 方便的集成和管理宋下,就需要通過(guò) CocoaPods 創(chuàng)建私有庫(kù)
3.1 發(fā)布開(kāi)源庫(kù)到 CocoaPods
- 發(fā)布開(kāi)源庫(kù)到 CocoaPods 不止一種方式,這里通過(guò)Pod trunk的方式發(fā)布開(kāi)源庫(kù)到 CocoaPods
說(shuō)明:使用pod trunk 發(fā)布項(xiàng)目到cocoapods需要cocoapods版本高于0.33
1.第三方庫(kù)代碼
- 編寫(xiě)要開(kāi)源的第三方庫(kù)的代碼辑莫,完成測(cè)試和bug修復(fù)学歧。
2.github創(chuàng)建倉(cāng)庫(kù)
- 創(chuàng)建一個(gè)和項(xiàng)目名同名的github倉(cāng)庫(kù)。
3.clone github上的倉(cāng)庫(kù)到本地
- clone 新創(chuàng)建的倉(cāng)庫(kù)到本地各吨。clone的項(xiàng)目一般會(huì)包含LICENSE和README.md文件
4.Xcode創(chuàng)建項(xiàng)目
- 將編寫(xiě)完成的開(kāi)源庫(kù)代碼文件以文件夾的形式(文件夾一般以開(kāi)源庫(kù)命名)放在clone路徑中枝笨。
- 開(kāi)源庫(kù)一般提供一個(gè)示例工程,在colne路徑中揭蜒,創(chuàng)建一個(gè)新的xcode項(xiàng)目横浑,一般以demo或者example的方式。并在demo或者example項(xiàng)目的根目錄中引用編寫(xiě)完成的第三方開(kāi)源庫(kù)文件(注:由于開(kāi)源庫(kù)已經(jīng)在當(dāng)前路徑中了屉更,所以xcode項(xiàng)目引用的時(shí)候不要勾選copy it if need)徙融。
- 編寫(xiě)README.md
5.創(chuàng)建podspec 文件
$ cd clone根目錄
$ pod spec create hellohud
- 打開(kāi)生成的podspec文件,此處為hellohud.podspec文件
- podspec編輯參考
- 注:不要用系統(tǒng)的編輯器打開(kāi)瑰谜,因?yàn)槿绻苯佑孟到y(tǒng)的編輯器打開(kāi)的話(huà)編輯過(guò)程中會(huì)對(duì)符號(hào)自動(dòng)轉(zhuǎn)換編碼欺冀,而導(dǎo)致podspec文件驗(yàn)證通不過(guò)。
Pod::Spec.new do |s|
s.name = "hellohud"
s.version = "0.0.1"
s.summary = "A state bar hud for iOS on window"
s.homepage = "https://github.com/username/HelloWindowHud"
s.license = "MIT"
s.author = { "username" => "username@163.com" }
s.source = { :git => "https://github.com/username/HelloWindowHud.git", :tag => s.version }
s.source_files = "HelloWindowHud/"
s.requires_arc = true
s.platform = :ios, "7.0"
end
使用#注釋掉不需要的選項(xiàng)
-
注:podspec中的內(nèi)容填寫(xiě)有比較嚴(yán)格審查制度似舵,如果規(guī)則錯(cuò)誤會(huì)導(dǎo)致podspec文件無(wú)法使用脚猾。
- name 第三方庫(kù)的名稱(chēng)
- version 第三方庫(kù)的版本(tag)
- summary 第三方庫(kù)的摘要
- homepage 第三方庫(kù)的首頁(yè)
- license 第三方庫(kù)使用的license
- author 第三方庫(kù)的作者
- source 第三方庫(kù)的git版本庫(kù)
- source__files 第三方庫(kù)的的source_file文件位置
- requires_arc 是否要求arc
- platform 第三方庫(kù)支持的平臺(tái)
- 除了上述基本信息外,還可以指定當(dāng)前庫(kù)需要依賴(lài)的其他庫(kù)砚哗,如果當(dāng)前庫(kù)依賴(lài)的庫(kù)為第三方庫(kù)龙助,需要是已經(jīng)發(fā)布的第三方庫(kù)
-
注:
- 1.每個(gè)第三方庫(kù)支持的平臺(tái)不同,所以如果不是支持全平臺(tái)的第三方庫(kù),在platform部分需要做platform說(shuō)明提鸟。
- 2.source_files 要找對(duì)位置军援,這個(gè)極為重要。一般情況下称勋,clone路徑下面會(huì)包含如下文件:
- LICENSE
- README.md
- DEMO/EXAMPLE
- 第三方庫(kù)
這種情況胸哥,source_files就是 'github上的倉(cāng)庫(kù)名/'
注:以上操作可用命令完成
$ pod lib create Proj_name
6.commit項(xiàng)目到github
- 將已經(jīng)添加了.podspec文件的項(xiàng)目commit。
7.給項(xiàng)目打一個(gè)tag
$ cd clone路徑
$ git tag -a '0.0.1' -m 'tag release 0.01'
$ git push --tags
$ git tag // 查看所有的tag
$ git tag -d 0.0.1 // 刪除對(duì)應(yīng)的tag
$ git push origin :0.0.1 //遠(yuǎn)程倉(cāng)庫(kù)刪除tag
8.驗(yàn)證podspec文件是否符合要求
$ pod spec lint HelloWindowHud.podspec // 聯(lián)網(wǎng)
$ pod lib lint // 不聯(lián)網(wǎng)
- 報(bào)錯(cuò):
-
echo "2.3" > .swift-version
.- 解決:直接運(yùn)行
$ echo "2.3" > .swift-version
- 解決:直接運(yùn)行
-
9.注冊(cè)pod trunk
/**
* @param email 用戶(hù)郵箱
* @param username 用戶(hù)名
* @param description 設(shè)備描述
*/
$ pod trunk register email 'username' --description='device description'
// pod trunk register emailemail@163.com hellohud
查看賬戶(hù)信息
$ pod trunk me
10.podspec驗(yàn)證沒(méi)有報(bào)錯(cuò)赡鲜,則發(fā)布
$ pod trunk push HelloWindowHud.podspec
- 報(bào)錯(cuò):
- 對(duì)于1.2.0版本的 CocoaPods 會(huì)導(dǎo)致無(wú)法發(fā)布podspec而報(bào)錯(cuò)
- 解決:升級(jí) CocoaPods 1.2.1
參考CocoaPods issue6697
- 解決:升級(jí) CocoaPods 1.2.1
- 對(duì)于1.2.0版本的 CocoaPods 會(huì)導(dǎo)致無(wú)法發(fā)布podspec而報(bào)錯(cuò)
11.第一次發(fā)布需要去認(rèn)領(lǐng)podspec
- 新項(xiàng)目第一發(fā)布需要認(rèn)領(lǐng)空厌。
- 認(rèn)領(lǐng)時(shí),輸入cocoapods的username 银酬、 email 以及認(rèn)領(lǐng)的第三方庫(kù)名字即可嘲更。
- 認(rèn)領(lǐng)成功的同時(shí),即表示發(fā)布成功揩瞪。
更新pod 搜索自己的第三方庫(kù)即可
$ pod repo update
$ pod search CodePush
- 注:在做搜索之前最好清一下cocoapods的緩存赋朦,否則會(huì)搜不到最新發(fā)布的庫(kù)
$ rm ~/Library/Caches/CocoaPods/search_index.json
- 最后執(zhí)行
pod search
- [挖坑填坑:上述操作中5、6李破、7順序不能換]
3.2 利用 CocoaPods 創(chuàng)建私有庫(kù)
1.創(chuàng)建私有庫(kù)git倉(cāng)庫(kù)(托管私有庫(kù)源碼) & 創(chuàng)建私有spec倉(cāng)庫(kù)(和CocoaPods的podspec倉(cāng)庫(kù)相同)
2.將私有 spec 倉(cāng)庫(kù)添加到 CocoaPods
$ pod repo add [spec倉(cāng)庫(kù)名] [私有spec倉(cāng)庫(kù)地址]
- 查看clone到本地的私有spec倉(cāng)庫(kù)
~/.cocoapods/repos
3.創(chuàng)建私有庫(kù)及編輯podspec文件和校驗(yàn)宠哄,參考 CocoaPods 發(fā)布開(kāi)源庫(kù)中的操作 1 - 9 完全相同
-
注意:
- 做spec文件校驗(yàn)的時(shí)候,由于我們要?jiǎng)?chuàng)建的是私有庫(kù)嗤攻,除了開(kāi)啟訪問(wèn)權(quán)限的成員外毛嫉,任何人無(wú)法直接訪問(wèn),這種情況會(huì)有警告
- WARN | url: The URL () is not reachable.
,避免警告的操作 pod spec lint CodeLog.podspec --private
或者
pod spec lint CodeLog.podspec --allow-warnings
- 做spec文件校驗(yàn)的時(shí)候,由于我們要?jiǎng)?chuàng)建的是私有庫(kù)嗤攻,除了開(kāi)啟訪問(wèn)權(quán)限的成員外毛嫉,任何人無(wú)法直接訪問(wèn),這種情況會(huì)有警告
4.將私有庫(kù)的pospec文件提交到私有 spec 倉(cāng)庫(kù)
cd 私有代碼庫(kù)clone路徑
// 目的是可以拿到其中的.podspec文件$ pod repo push [spec倉(cāng)庫(kù)名] [私有庫(kù).podspec文件]
// 將.podspec文件提交到私有spec倉(cāng)庫(kù), 當(dāng)遇到有警告而導(dǎo)致的驗(yàn)證失敗時(shí)屯曹,可以后面加--allow-warnings參數(shù)避免警告提交完成狱庇,執(zhí)行pod search驗(yàn)證即可惊畏。
5.集成私有庫(kù)
- 如果 Podfile 中不指定 source 的地址恶耽,則默認(rèn)github的specs地址,但私有庫(kù)的spec地址為自己創(chuàng)建的私有 spec 地址颜启,所以包含私有庫(kù)的 Podfile 文件要指定私有庫(kù)podspec文件的私有 spec 倉(cāng)庫(kù)地址偷俭。如果指定 source 的地址并且主工程同時(shí)包含開(kāi)源庫(kù)和私有庫(kù),則需要同時(shí)指定私有spec地址和CocoaPods的spec地址缰盏,這樣在添加依賴(lài)庫(kù)的時(shí)候會(huì)同時(shí)從私有 specs 地址和 CocoaPods 的 specs 地址添加涌萤。
source 'https://github.com/CocoaPods/Specs.git'
source 'http://git.oschina.net/username/CodeSpec.git'
source 'https://github.com/CocoaPods/Specs.git'
source 'http://git.oschina.net/username/CodeSpec.git'
platform:ios, '8.0'
target 'demo' do
// 私有庫(kù)
// github托管的開(kāi)源庫(kù)
end
備注:
- 私有庫(kù)引用私有庫(kù),驗(yàn)證podspec口猜,需加上私有庫(kù)的spec地址
pod lib lint --sources='https://github.com/CocoaPods/Specs.git,私有spec倉(cāng)庫(kù)地址' // 本地驗(yàn)證
pod spec lint --sources='https://github.com/CocoaPods/Specs.git,私有spec倉(cāng)庫(kù)地址' // 遠(yuǎn)程驗(yàn)證负溪,也可以加上--allow-warnings去掉警告
- 利用podSpec文件將庫(kù)文件分為不同的虛擬文件夾,方便對(duì)功能或者類(lèi)文件進(jìn)行針對(duì)性的分類(lèi)
s.subspec 'ClassA' do |classa|
classa.source_files = 'tt/Classes/ClassA/*'
end
分類(lèi)后的虛擬文件夾為ClassA,其文件來(lái)源在路徑tt/Classes/ClassA/*中
-
私有庫(kù)更新:
- 對(duì)于不需要新增tag的情況济炎,需刪除原git倉(cāng)庫(kù)中的tag川抡,然后創(chuàng)建相同的tag上傳,這種方式须尚,在私有庫(kù)更新完使用時(shí)崖堤,需要清空cocoapods緩存
pod repo update 私有spec倉(cāng)庫(kù)名
// 更新私有倉(cāng)庫(kù)spec
pod cache list
// 查看cocoapods 緩存
pod cache clean 私有庫(kù)名字
// 清除對(duì)應(yīng)私有庫(kù)的緩存
Podfile中侍咱,去掉對(duì)私有庫(kù)的依賴(lài),然后pod update
Podfile中密幔,添加對(duì)私有庫(kù)的依賴(lài)楔脯,然后pod update
- 對(duì)于新增tag的情況,直接新增tag即可
pod repo push [spec倉(cāng)庫(kù)名] [私有庫(kù).spec]
- 對(duì)于不需要新增tag的情況济炎,需刪除原git倉(cāng)庫(kù)中的tag川抡,然后創(chuàng)建相同的tag上傳,這種方式须尚,在私有庫(kù)更新完使用時(shí)崖堤,需要清空cocoapods緩存
-
【報(bào)錯(cuò)】[!] An unexpected version directory
Classes
was encountered for the/Users/name/.cocoapods/repos/gitee-yourname-test/test
Pod in thegitee-yourname-test
repository.- 解決方式:進(jìn)入/Users/name/.cocoapods/repos/gitee-yourname-test胯甩,刪除gitee-yourname-test文件夾就可以了