最近在學(xué)習(xí)Charles姚的大作iOS內(nèi)涵段子,并打算自己學(xué)著重新寫一遍用踩。在扒代碼的過程中忙迁,要將自己的代碼與Charles姚的代碼進(jìn)行對(duì)比,但利用Mac的分屏功能無法實(shí)現(xiàn)一個(gè)程序兩個(gè)窗口并排對(duì)比姊扔,就萌生一個(gè)想法,把這兩個(gè)工程放到一個(gè)工作空間里佛南,然后再采用Assistant Editor模式進(jìn)行代碼對(duì)比嵌言。因?yàn)槲沂切“滓幻叮虚g出了不少問題绵载,折騰了半天苛白,通過萬能的百度和谷歌,最后終于搞定购裙,將正確的過程拿出來與大家分享。
一定续、目標(biāo)
1、實(shí)現(xiàn)兩個(gè)或多個(gè)工程在一個(gè)工作空間私股,可以方便的對(duì)比和修改代碼。
2供嚎、可以方便的對(duì)每個(gè)工程進(jìn)行編譯峭状,查看實(shí)時(shí)的效果。
3优床、由于每個(gè)工程都采用CocoaPods管理第三方開源類庫,想利用一個(gè)Podfile文件在一個(gè)文件夾下管理多個(gè)工程着帽。
二移层、過程
1、生成一個(gè)空的myApp工作空間
過程略观话。
2频蛔、將已經(jīng)生成的“NeiHan.xcodeproj”、“我的內(nèi)涵.xcodeproj”工程文件導(dǎo)入myApp工作空間
過程略帽驯,此時(shí)生成一個(gè)myApp文件夾,里面有"myApp.workspace"文件和“NeiHan”利凑、“我的內(nèi)涵”文件夾嫌术。
3、用終端在myApp文件夾中生成Podfile文件度气,并進(jìn)行編輯
Podfile文件內(nèi)容如下:
workspace 'myApp.xcworkspace'
target ’NeiHan’ do
platform :ios, '7.0'
xcodeproj 'NeiHan/NeiHan.xcodeproj'
pod 'AFNetworking'
pod 'Masonry'
pod 'SDWebImage'
pod 'ReactiveCocoa'
pod 'MJExtension'
pod 'MJRefresh'
pod 'UMengSocialCOM'
pod 'YYText'
pod 'YYWebImage'
pod 'MBProgressHUD'
end
target ’我的內(nèi)涵’ do
platform :ios, '7.0'
xcodeproj '我的內(nèi)涵/我的內(nèi)涵.xcodeproj'
pod 'AFNetworking'
pod 'Masonry'
pod 'SDWebImage'
end
Podfile文件中可根據(jù)工程的需要pod 不同的第三方類庫磷籍。
4现柠、利用終端在myApp文件夾中運(yùn)行pod install和pod update(兩個(gè)都不能少)弛矛,即可實(shí)現(xiàn)目標(biāo)
5、可能出現(xiàn)的問題
如果編譯某個(gè)工程文件會(huì)出現(xiàn)如下
Run custom shell script 'Copy Pods Resources'
diff: /../Podfile.lock: No such file or directory
diff: /Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock.
Run 'pod install' or update your CocoaPods installation.
Command /bin/sh failed with exit code 1
等等的error周循。
可以按照以下步驟排除:
1)退出Xcode万俗,運(yùn)行pod update。
2)不行的話闰歪,退出Xcode,刪除myApp文件夾下的myApp.xcworkspace嘉赎、Pods文件夾于樟、Podfile.lock等拇囊,以及~/Library/Developer/Xcode/DerivedData路徑下對(duì)應(yīng)工程的文件夾。
3)還不行的話打開每個(gè)工程的xcodeproj路捧,進(jìn)行修改传黄。例如右擊“我的內(nèi)涵.xcodeproj”,然后“顯示包內(nèi)容”膘掰,打開其中的“project.pbxproj”,然后搜索所有的“Pods/Target Support Files”凡伊,將其改為“../Pods/Target Support Files”窒舟,然后保存退出重新編譯,理論上講應(yīng)該可解決上述問題惠豺。
解釋一下:在Pods前加..是指定Pods文件夾的位置由當(dāng)前文件夾位置變?yōu)楦肝募A位置。由于這些工程文件以前的Pods文件夾在這些工程文件夾下一層級(jí)蛹疯,但利用工作空間把Pods文件夾放到了工程文件夾的同級(jí),所以需要對(duì)這些工程文件進(jìn)行修改固翰。