工程目錄
如上圖所示的目錄結(jié)構(gòu),Example.xcworkspace所在的目錄才顿,比工程文件Example.xcodeproj要高一個級別晒衩。
調(diào)整方式
Podfile要比工程文件Example.xcodeproj高一個級別
直接pod install 會報以下錯誤
[!] Could not automatically select an Xcode project. Specify one in your Podfile like so:
project 'path/to/Project.xcodeproj'
- 修改Podfile可以解決這個問題
project 'Example/Example.xcodeproj'
這句就是解決相對路徑問題的
use_frameworks!
project 'Example/Example.xcodeproj'
target 'Example' do
pod 'JSPatch'
end
工作空間workspace
不管一開始有沒有workspace文件,用了Pod之后椿访,會自動生成一個和工程同名的workspace文件漓拾。
workspace文件生成后阁最,可以改名,不會有什么影響骇两。這里改成ZAPatch.xcworkspace
然后加入其他三個工程速种,其他三個是framework。
要將project加入workspace低千,就不能選中任何工程配阵。要取消選中任何工程,可以點一下工程窗口右下角的過濾按鈕栋操。=== 真的很蛋疼
- 只要將工程文件xxx.xcodeproj加入到xxx.xcworkspace文件中就可以了,不會出現(xiàn)任何文件copy饱亮。本質(zhì)上是一些路徑引用而已
最后的樣子
這樣就實現(xiàn)了用一個workspace來管理一個應用和3個framework矾芙,一共4個工程。
這里是因為這些工程都實現(xiàn)創(chuàng)建好了近上,再執(zhí)行pod install剔宪,導致自動生成的workspace文件丟失信息,要補上,又懶得新建葱绒,所以找了這個往workspace中加入project的方法感帅。正確的實現(xiàn)步驟如下:
實現(xiàn)步驟
創(chuàng)建文件夾ZAPatch1.0.0。這是最外層的目錄地淀,用來版本控制失球。
創(chuàng)建工程Example,按正常流程走帮毁,放在ZAPatch1.0.0文件夾下实苞。
創(chuàng)建Podfile,放在ZAPatch1.0.0文件夾下
執(zhí)行pod install命令烈疚,自動生成Example.xcworkspace文件
將文件改名ZAPatch.xcworkspace
新建另外三個工程黔牵,加入ZAPatch.xcworkspace
備注
這個過程有點別扭,原因是CocoaPods侵入性太強爷肝,自動生成workspace猾浦,不能隨心所欲
如果用Carthage,就沒有這種問題了灯抛〗鹕猓可以按照正常思維,將創(chuàng)建workspace文件的步驟提前牧愁。
創(chuàng)建文件夾ZAPatch1.0.0素邪,馬上創(chuàng)建workspace文件,然后新建應用和framework工程猪半,兩者完全平等兔朦,沒有先后。
Swift和iOS8以上磨确,推薦用Carthage來管理第三方庫