在開(kāi)發(fā)的過(guò)程中,我們經(jīng)常要使用(依賴(lài))其他第三方庫(kù),而這些庫(kù)或框架還有可能依賴(lài)于其他的第三方庫(kù)和框架,這樣就會(huì)形成一個(gè)復(fù)雜的依賴(lài)關(guān)系網(wǎng),而手動(dòng)管理這些庫(kù)或框架是非常麻煩的,首先要找到并下載這些庫(kù)或框架,還要注意版本的兼容性問(wèn)題,繼而把它們添加到當(dāng)前工程中,還需要配置其相關(guān)的環(huán)境變量,這些都去手動(dòng)完成是非常耗費(fèi)精力的,所幸我們還有依賴(lài)管理工具,這將大大減少我們的工作量,CocoaPods和Carthage工具就可以幫助我們完成項(xiàng)目依賴(lài)的管理工作。
CocoaPods依賴(lài)管理工具
CocoaPods是最有影響力的OS X和IOS項(xiàng)目依賴(lài)管理工具,于2011年發(fā)布,經(jīng)過(guò)多年的發(fā)展,它已經(jīng)非常完善了,CocoaPods支持項(xiàng)目中采用Objective-C和Swift語(yǔ)言。CocoaPods會(huì)將第三方庫(kù)的源代碼編譯為靜態(tài)鏈接庫(kù).a文件或是動(dòng)態(tài)框架.framework文件的形式,并將它們添加到項(xiàng)目中,建立依賴(lài)關(guān)系。
安裝CocoaPods
由于CocoaPods工具是使用Ruby語(yǔ)言開(kāi)發(fā)的,在OS X系統(tǒng)下默認(rèn)安裝了Ruby運(yùn)行環(huán)境,所以不需要另外安裝Ruby運(yùn)行環(huán)境了。CocoaPods的下載和安裝可以使用Ruby包管理工具gem。
安裝流程:
- 1.在終端中執(zhí)行:sudo gem install cocoapods
(如果報(bào)錯(cuò)ERROR: Could not find a valid gem 'cocoapods' (>= 0) in any repository,可以嘗試執(zhí)行:sudo gem install cocoapods --source http://rubygems.org) - 2.等待安裝,當(dāng)完成時(shí)終端輸出如圖:

注:如果這個(gè)命令執(zhí)行了很長(zhǎng)時(shí)間但沒(méi)有反應(yīng)或出現(xiàn)如下錯(cuò)誤:ERROR: Could not find a valid gem 'cocoa pods' (> = 0),here is why: Unable to download data from https://rubygems.org/ - ERROR :Connection reset by peer - SSL_connect (https://rubygems.org/latest_apecs.4.8.gz)這是由于gem工具無(wú)法訪問(wèn)默認(rèn)的Ruby源(rubygems.org),此時(shí)我們可以把Ruby源換為國(guó)內(nèi)的鏡像源。在終端執(zhí)行如下命令:
sudo gem source --remove https://rubygems.org/
sudo gem sources -- a http://gems.ruby-china.org/
- 3.安裝指令成功之后還需要進(jìn)行設(shè)置,執(zhí)行:pod setup
該指令會(huì)在本地創(chuàng)建~/.cocoapods/文件夾,并將CocoaPods的GitHub庫(kù)(https://github.com/CocoaPods/Specs)下載到該文件夾中。這樣當(dāng)配置依賴(lài)關(guān)系時(shí),可以直接使用本地文件。由于下載的內(nèi)容較多(300MB左右),setup執(zhí)行的時(shí)間會(huì)表較長(zhǎng),而且容易失敗,不過(guò)百度上有應(yīng)對(duì)其下載失敗的辦法。例如這篇:(http://www.itdecent.cn/p/b561726ac3fd) 。
然后就可以搜索我們要使用的第三方庫(kù)了,可以通過(guò)網(wǎng)站https://cocoapods.org進(jìn)行搜索,一個(gè)多么樸素的界面:

當(dāng)然也可以通過(guò)pod指令進(jìn)行搜索,在終端執(zhí)行:pod search 第三方庫(kù)名,例如:pod search AFNetworking,結(jié)果如圖:

當(dāng)然并不只有這一個(gè)庫(kù)的信息,而是巨多,當(dāng)然你全名搜索的話,你需要的在第一條,我本來(lái)想數(shù)數(shù)的,結(jié)果數(shù)亂了,對(duì),我就是這么無(wú)聊,找到需要的后,按q退出,我差點(diǎn)直接關(guān)了終端你造嗎,我果然依舊菜......
接下來(lái)就是項(xiàng)目與第三庫(kù)的搭配了,使用CocoaPods工具管理第三方庫(kù)時(shí),會(huì)將第三方提供的源代碼進(jìn)行編譯,而編譯的結(jié)果有兩種形式,分別為靜態(tài)鏈接庫(kù).a文件和動(dòng)態(tài)框架.framework文件,至于如何選擇,就需要看項(xiàng)目中調(diào)用第三方庫(kù)的代碼采用何種語(yǔ)言,另外還需要看第三方庫(kù)采用何種語(yǔ)言。
示例:以動(dòng)態(tài)框架庫(kù)形式管理依賴(lài)
- 1.通過(guò)終端進(jìn)入項(xiàng)目工程目錄下,即*.xcodeproj文件所在的目錄,執(zhí)行 pod init指令。
例如:

- 2.該指令執(zhí)行成功后,會(huì)在當(dāng)前目錄下生成一個(gè)Podfile文件,該文件是一個(gè)文本文件。

這個(gè)文本文件的內(nèi)容是這樣的:

然后修改Podfile文件,例如這樣:

注:依賴(lài)庫(kù)后面的數(shù)值表示依賴(lài)版本,它有如下幾種表示方式:
=3.1.0, 表示大于等于3.1.0版本。
<=3.1.0, 表示小于等于3.1.0版本。
~>3.1.0, 表示大于等于3.1.0版本,小于下一個(gè)主版本,即小于4.0。
3.1.0, 表示大于3.1.0版本。
<3.1.0, 表示小于3.1.0版本。
3.1.0, 表示等于3.1.0版本。
Podfile文件修改完成后,執(zhí)行pod install指令,就可以安裝依賴(lài)關(guān)系了,安裝成功后,目錄是這樣的:

playPlay.xcworkspace、Podfile.lock、Pods是安裝過(guò)程中創(chuàng)建的,其中的Pods目錄是工程所依賴(lài)庫(kù)或框架源代碼工程。如果通過(guò)Xcode啟動(dòng)工程,應(yīng)該通過(guò)playPlay.xcworkspace工作空間文件啟動(dòng),依賴(lài)成功后是這樣的:

關(guān)于pod setup命令報(bào)錯(cuò)的處理辦法
今天做了個(gè)項(xiàng)目,在Podfile中新增了幾個(gè)第三方,準(zhǔn)備pod update/install的時(shí)候,發(fā)現(xiàn)下面的報(bào)錯(cuò)

然后趕緊去百度了,網(wǎng)上說(shuō)先清除下CocoaPods的緩存,于是繼續(xù)進(jìn)行

刪除緩存以后,再次pod update結(jié)果繼續(xù)是一堆的報(bào)錯(cuò)

然后繼續(xù)百度上面的報(bào)錯(cuò),說(shuō)是因?yàn)閏ocoaPods下面沒(méi)有master文件夾造成的...然后開(kāi)始使用pod setUp去clone這個(gè)文件夾回來(lái),結(jié)果多次嘗試都是失敗告終!

那么這個(gè)報(bào)錯(cuò)原因是什么呢? 怎么解決?由于網(wǎng)上的解決方案太雜太亂,方法步驟沒(méi)有截圖,導(dǎo)致很難使用,于是寫(xiě)下了此文,歡迎各位雅正!
下面,進(jìn)入今天正題,看看原因和解決方案
失敗原因:pod setup的本質(zhì)就是將https://github.com/CocoaPods/Specs 上的Specs項(xiàng)目clone到~/.cocoapods/repos目錄下。若此目錄下已有Specs項(xiàng)目,則會(huì)將項(xiàng)目更新到最新的狀態(tài)。由于Specs很大,容易導(dǎo)致pod setup失敗。這時(shí)就需要我們手動(dòng)安裝Specs。若直接從github上下載zip文件,由于缺少git文件,會(huì)導(dǎo)致cocoa pods不使用。
由于直接pod setup用時(shí)太久,很容易導(dǎo)致失敗,使用 cocoapods 的鏡像索引來(lái)提高下載速度。這里給出國(guó)內(nèi)的一個(gè)鏡像索引地址:
https://coding.net/u/hging/p/Specs/git
點(diǎn)擊打開(kāi)以后,我們獲得他的git地址,為后面的clone做準(zhǔn)備..操作方法截屏如下

好了,國(guó)內(nèi)的cocoapods 的鏡像索引有了,那么下面我們就來(lái)進(jìn)行相關(guān)操作了
1.我們先去~.cocoapods文件去看看

你會(huì)發(fā)現(xiàn)有下面的文件

如果有master的話,建議你先刪除掉master這個(gè)文件夾,因?yàn)轳R上我們下載下來(lái)的文件夾,需要該名稱(chēng)master
2.刪除master文件以后,我們打開(kāi)終端,將podspec索引文件clone到本地的~/.cocoapods/repos/master位置
我們先切到~./cocoapods文件夾處

然后利用我們上面拿到的git地址clone就可以了

后面我們靜靜的等待就可以了,大概10幾分鐘可以下載完成

再去文件夾里看看,發(fā)現(xiàn)master文件夾已經(jīng)生成了,并且全部文件也已經(jīng)全部下載下來(lái)

此時(shí),我們?cè)俅?pod update下,更新下我們的第三方庫(kù)

安裝完一堆配置文件后,然后自動(dòng)為我們更新了第三方

至此,我們解決了pod setup失敗,導(dǎo)致項(xiàng)目中的cocoaPods無(wú)法使用的問(wèn)題。
此段內(nèi)容摘自D了個(gè)Y的簡(jiǎn)書(shū)。
spec資源中不包含某個(gè)庫(kù)的配置文件導(dǎo)致pod install報(bào)錯(cuò)
cocoapods安裝完成后,會(huì)在用戶(hù)根目錄下有個(gè)隱藏文件夾,里面存放了cocoapods所收錄的庫(kù)的配置信息。路徑如下(使用command + shift + . 可以顯示隱藏的文件夾):


當(dāng)執(zhí)行pod update或pod install的時(shí)候,會(huì)因?yàn)樵诒镜?cocoapods下找不到相應(yīng)的配置文件而報(bào)錯(cuò),報(bào)錯(cuò)如圖:

錯(cuò)誤譯文:
找不到LookinServer的規(guī)范
你可以
- 過(guò)期的源倉(cāng)庫(kù),您可以使用“pod repo update”或“pod install--repo update”更新。
- 輸入名稱(chēng)或版本錯(cuò)誤。
- 未將承載Podspec的源倉(cāng)庫(kù)添加到您的podfile。
根據(jù)提示,使用pod repo update命令進(jìn)行更新,pod repo update會(huì)更新整個(gè).cocoapods下的所有庫(kù),執(zhí)行如圖:

當(dāng)pod repo update命令執(zhí)行成功后,再次執(zhí)行pod update或pod install命令,完成庫(kù)的更新:

如果pod repo update命令執(zhí)行的時(shí)間過(guò)長(zhǎng),可以進(jìn)行選擇性的庫(kù)更新,找到對(duì)應(yīng)庫(kù)的路徑,然后執(zhí)行更新命令,例如:



pod init 報(bào)錯(cuò)error: tool ‘xcodebuild‘ requires Xcode, but active developer directory
Xcode -> Preferences -> Locations 檢查如下位置是否選擇 :

Xcode14 創(chuàng)建的新項(xiàng)目,無(wú)法進(jìn)行Pod init,報(bào)錯(cuò)如下 :


Carthage依賴(lài)管理工具
Carthage是一個(gè)輕量級(jí)的項(xiàng)目依賴(lài)管理工具,主張“去中心化”和“非侵入性”。Cocoapods搭建了一個(gè)中心庫(kù)(cocoapods.org),第三方庫(kù)被收錄到該中心庫(kù)中,沒(méi)有收錄的第三方庫(kù)是不能使用Cocoapods管理的,這就是所謂的“中心化”思想,而Carthage沒(méi)有這樣的中心庫(kù),第三方庫(kù)基本上都是從GitHub或私有Git庫(kù)中下載的,這就是“去中心化”。另外,Cocoapods在下載第三方庫(kù)后,會(huì)將其編譯成靜態(tài)鏈接庫(kù)或動(dòng)態(tài)框架文件,然后會(huì)修改Xcode項(xiàng)目屬性配置依賴(lài)關(guān)系,這就是“侵入性”。而Carthage下載成功之后,會(huì)將第三庫(kù)編譯為動(dòng)態(tài)框架,由開(kāi)發(fā)人員自己配置依賴(lài)關(guān)系,Carthage不會(huì)修改Xcode項(xiàng)目屬性,這就是非侵入性。
注:使用Carthage有兩個(gè)限制:
- 1.第三庫(kù)只能編譯為框架。
- 2.IOS項(xiàng)目的版本必須是IOS8以上的版本。
安裝Carthage
Carthage工具可以通過(guò)兩種方式安裝,一種是在https://github.com/Carthage/Carthage/releases網(wǎng)站下載已經(jīng)編譯好的安裝包Carthage.pkg進(jìn)行安裝。

另一種是通過(guò)Homebrew工具安裝,Homebrew是用來(lái)管理OS X系統(tǒng)下安裝包的工具。要確定是否安裝了Homebrew工具,可以在終端執(zhí)行brew update指令,如果沒(méi)有安裝Homebrew工具,終端會(huì)提示brew命令無(wú)法執(zhí)行,此時(shí)可以在終端中執(zhí)行如下指令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
命令執(zhí)行成功后,就可以在終端中執(zhí)行brew install carthage指令進(jìn)行安裝。
Cartfile文件
與CocoaPods的Podfile類(lèi)似,Carthage使用名為Cartfile的文件描述依賴(lài)庫(kù),該文件的內(nèi)容示例如下:

從Carthage文件的內(nèi)容可見(jiàn)依賴(lài)庫(kù)的來(lái)源有Git和GitHub,Git是私有庫(kù)。git或github是依賴(lài)庫(kù)名或git地址,第1行的Alamofire/Alamofire與第2行的AFNetworking/AFNetworking即為依賴(lài)庫(kù)名,指定依賴(lài)庫(kù)一般指定GitHub上庫(kù)的"用戶(hù)名/項(xiàng)目名",這個(gè)名字如果不能確定,需要到GitHub上查詢(xún)確定。

第4行為git地址,支持git所支持的所有協(xié)議,如:https、git和ssh等,git庫(kù)可以創(chuàng)建多個(gè)分支,所以可以在Carthage文件中指定分支名,其中第3行與第4行中的"main"都是分支名。有了分支,不需要指定版本號(hào)。
與Podfile類(lèi)似,在Cartfile文件中可以指定依賴(lài)庫(kù)版本,它主要有如下表示方式:
1 == 3.0,表示等于3.0版本。
2 >= 3.0,表示大于等于3.0版本。
3 ~> 3.0,表示大于等于3.0版本,小于下一個(gè)主版本,即小于4.0。
Carthage依賴(lài)管理示例:
- 1.首先通過(guò)終端進(jìn)入CarthagePlay工程目錄下,即*.xcodeproj文件所在目錄,并創(chuàng)建Cartfile文本:

-
2.將其內(nèi)容修改如下:屏幕快照 2019-05-29 上午12.01.11.png
3.執(zhí)行Carthage update --platform iOS指令,安裝依賴(lài)關(guān)系:

Carthage update --platform iOS指令的參數(shù)platform iOS表示只考慮IOS平臺(tái),執(zhí)行過(guò)程分為兩個(gè)階段,首先將庫(kù)下載到本地,然后再使用xcodebuild命令將庫(kù)編譯為框架。
Carthage update --platform iOS指令執(zhí)行成功后,CarthagePlay工程目錄下會(huì)多出一個(gè)Carthage目錄,該目錄中又包含了兩個(gè)目錄Build和Checkouts。Build目錄中存放編譯好的framework文件,根據(jù)不同的平臺(tái)它會(huì)包含不同的目錄,如Mac、IOS、tvOS和watchOS。

Checkouts目錄是下載的第三方庫(kù)的源代碼。

Carthage需要我們自己配置CarthagePlay工程與第三方庫(kù)的依賴(lài)關(guān)系:
- 1.在Xcode工程中打開(kāi)TARGETS ——> CarthagePlay ——> General,在Linked Frameworks and Libraries中點(diǎn)擊 + 按鈕,在彈出的對(duì)話框中單擊Add Other按鈕,找到Build目錄中的framework文件,添加依賴(lài)框架。

添加成功后的目錄結(jié)構(gòu):

- 2.第三方庫(kù)添加完成,還需要運(yùn)行腳本(Run Script)。運(yùn)行腳本,就是在編譯時(shí)執(zhí)行命令。Carthage提供的運(yùn)行腳本可以將框架復(fù)制到運(yùn)行環(huán)境目錄下。在Xcode工程中打開(kāi)TARGETS ——> CarthagePlay ——>Build Phases,如果沒(méi)有Run Script部分,可以通過(guò)菜單Editor ——> Add Build Phase ——> Add Run Script Build Phases菜單項(xiàng)添加。
在Run Script部分的腳本區(qū)域輸入:

- 3.嘗試進(jìn)行編譯,如果報(bào)錯(cuò)如下,可以command+shift+k清空編譯緩存重新編譯。

- 4.在項(xiàng)目中引入第三方庫(kù)的頭文件,如果報(bào)錯(cuò)如下:

可以嘗試在TARGETS——>Build Setting——>Search Paths——>Header Search Paths中將第三方庫(kù)的頭文件文件夾拖入其中。


至此,可以導(dǎo)入第三方庫(kù)并使用

Carthage更新
因?yàn)樽罱膭?dòng)了公司封裝的工具包項(xiàng)目,而工具包是由Carthage進(jìn)行管理的,我用SourceTree拉去工具包代碼后,進(jìn)行了代碼更改,然后推送到遠(yuǎn)端并打上了標(biāo)簽,但當(dāng)我在本地項(xiàng)目執(zhí)行Carthage update --platform iOS命令之后,運(yùn)行項(xiàng)目成功的報(bào)錯(cuò)了。

譯:請(qǐng)更新到最新的迦太基版本:0.34.0。您當(dāng)前的版本是0.33.3。
所以我趕快的查看了一下Carthage的版本,果然它說(shuō)的是對(duì)的:

那就更新一下吧,畢竟報(bào)錯(cuò)了(后來(lái)我才發(fā)現(xiàn)我太天真了,報(bào)錯(cuò)的原因根本不是因?yàn)榘姹镜脑驅(qū)е碌?,但是升?jí)Carthage的過(guò)程還是值得記錄)。所以我執(zhí)行了brew upgrade carthage命令進(jìn)行更新,本想的是萬(wàn)事大吉,不曾想?yún)s是當(dāng)場(chǎng)報(bào)錯(cuò)。

譯:您的用戶(hù)無(wú)法寫(xiě)入以下目錄:
/usr/local/include
/usr/local/lib
/usr/local/lib/pkgconfig
/usr/local/sbin
您應(yīng)該將這些目錄的所有權(quán)更改為您的用戶(hù),并確保您的用戶(hù)具有寫(xiě)權(quán)限。
我自己使用的電腦,我為什么沒(méi)有權(quán)限,難道是因?yàn)殡娔X是公司配置的?所以我趕緊去找了一下解決的辦法,畢竟我是一個(gè)面向百度、谷歌、火狐、對(duì)象進(jìn)行編程的碼農(nóng)。哦,錯(cuò)了,對(duì)象沒(méi)有。一番查找,果然還是找到了解決的辦法:
- 1.點(diǎn)擊訪達(dá) -> 前往文件夾 -> 輸入/usr

- 2.查看文件夾,發(fā)現(xiàn)錯(cuò)誤中描述的文件果然都在,然后右擊local文件夾 -> 顯示簡(jiǎn)介,對(duì)權(quán)限進(jìn)行更改。


- 3.回到終端,繼續(xù)執(zhí)行命令brew upgrade carthage,開(kāi)始執(zhí)行更新。

- 4.但是它又報(bào)錯(cuò)了,執(zhí)行時(shí)失敗,但是命令并沒(méi)有立即停止執(zhí)行,還在繼續(xù),那就等等吧。

- 5.報(bào)警告了,從源安裝失敗,這也太坎坷了,但命令仍舊沒(méi)有停下,而是在繼續(xù)執(zhí)行,

譯:您處于“分離頭”狀態(tài)。您可以四處查看,進(jìn)行實(shí)驗(yàn)性更改并提交它們,并且可以放棄在此狀態(tài)下所做的任何提交,而不影響執(zhí)行另一次簽出的任何分支。
譯:如果要?jiǎng)?chuàng)建新分支以保留創(chuàng)建的提交,可以(現(xiàn)在或以后)通過(guò)再次使用-b和checkout命令來(lái)創(chuàng)建。示例:git checkout-b<new-branch-name>
- 6.命令終于結(jié)束了,哎?這咋還把啤酒端上來(lái)了?難道成功了?

- 7.趕快檢查了一下,執(zhí)行Carthage version查看版本,果然更新了。

Dependency "xxx" has no shared framework schemes 錯(cuò)誤
那么問(wèn)題來(lái)了,究竟是什么導(dǎo)致報(bào)錯(cuò)的,查看了一下執(zhí)行Carthage update --platform iOS命令的輸出,原來(lái)早已報(bào)錯(cuò)了,只是當(dāng)時(shí)沒(méi)有留意,急著運(yùn)行項(xiàng)目了,但framework已經(jīng)編譯失敗了。報(bào)錯(cuò)如圖:

后來(lái)通過(guò)版本對(duì)比,發(fā)現(xiàn)我編譯的項(xiàng)目的在打開(kāi).xcodeproj包內(nèi)容時(shí),是這樣的:

而編譯沒(méi)有問(wèn)題的項(xiàng)目,在打開(kāi).xcodeproj包內(nèi)容時(shí),是這樣的:

處理辦法,使用Xcode打開(kāi)該項(xiàng)目,點(diǎn)擊Product -> Scheme -> Manage Schemes...,打開(kāi)如圖所示:

上面操作完成后,會(huì)彈出下面的界面,直接關(guān)閉即可,然后查看文件是否已經(jīng)生成,然后推送代碼到遠(yuǎn)端,重新執(zhí)行Carthage update --platform iOS命令。

xcuserdata文件夾的簡(jiǎn)要介紹
此文件夾是項(xiàng)目創(chuàng)建時(shí)跟隨創(chuàng)建的,里面路徑類(lèi)似位:
/Users/shawn/Desktop/iOS-Common/Common.xcodeproj/xcuserdata/shawn.xcuserdatad/xcschemes/xcschememanagement.plist
執(zhí)行上面的操作后,則會(huì)把該目錄下的" shawn.xcuserdatad -> xcschemes -> ***.xcscheme "文件移動(dòng)到" xcshareddata->xcschemes "文件夾下;
刪除此文件夾的話," xcschememanagement.plist "會(huì)在啟動(dòng)該項(xiàng)目時(shí)重建的,但是" ***.xcscheme "文件是不會(huì)重建的,就會(huì)丟失" xcscheme "文件。
此目錄下會(huì)有多個(gè)文件夾,這根據(jù)不同的用戶(hù)來(lái)命名的,當(dāng)使用版本管理器時(shí),而且沒(méi)有忽略該文件夾,就會(huì)發(fā)現(xiàn)此目錄下就可能會(huì)有多個(gè)人的目錄。
一般來(lái)說(shuō),此目錄不太建議放到svn里面,因?yàn)檫@個(gè)目錄放的是一些個(gè)人設(shè)置,還有斷點(diǎn)設(shè)置一類(lèi)的,即使你放到svn里面,別人也不會(huì)加載,因?yàn)閄code只會(huì)加載對(duì)應(yīng)用戶(hù)名的文件夾。
需要和別人共享的xcschemes,應(yīng)該放到下面的 " xcshareddata "文件夾,然后使用svn來(lái)同步 " xcshareddata "文件夾
xcshareddata 文件夾的簡(jiǎn)要介紹
項(xiàng)目一開(kāi)始時(shí),是沒(méi)有" xcshareddata "文件夾的。當(dāng)如上面的操作中 " shared "復(fù)選框被選中,則會(huì)把 "xcuserdata "里相應(yīng)的xcscheme文件移動(dòng)到本目錄的xcschemes文件夾下,這時(shí)才會(huì)創(chuàng)建此文件夾。
多人開(kāi)發(fā)時(shí),為了支持共享xcscheme,一般會(huì)勾選" shared ",這樣,相應(yīng)的" ***.xcscheme "就會(huì)被移動(dòng)到該目錄下。所以在多人開(kāi)發(fā)時(shí),應(yīng)該把此目錄放到svn里去同步,同時(shí)注意,被共享的" ***.xcscheme "也會(huì)影響到隊(duì)友,要慎重修改。
注:刪除此目錄后,重新打開(kāi)項(xiàng)目也不會(huì)重建的,刪之要慎重。如果刪除此目錄,而" xcuserdata "文件夾下也沒(méi)有xcscheme文件,那么你打開(kāi)項(xiàng)目,j就可能會(huì)無(wú)法編譯了。如果出現(xiàn)了這種情況,那么你把" xcuserdata "文件夾給刪除掉,重啟項(xiàng)目,Xcode會(huì)重新創(chuàng)建xcuserdata文件夾和默認(rèn)的xcscheme文件。
