今天研究了一下在Xcode中創建多個工程,達到模塊化的目的的同時,實現多個相似項目的協同開發,最主要的是可以實現多工程連編。項目的效果如下:
接下來創建一個這樣的項目,以及他們之間的通信
1.建一個文件夾MyProject(這是本人采用的文件夾)
2.在MyProject文件夾下創建一個工作空間MyWorkSpace
3.在工作空間MyWorkSpace創建一個項目MyApp01添加到MyWorkSpace
4.創建靜態庫MyAccountSDK添加到MyWorkSpace工作空間下,實現聯編。
1.創建一個工作空間MyWorkSpace
在Xcode里面,創建一個工作空間MyWorkSpace,並將其放下MyProject文件夾下(名字隨便命名),具體如下:File->New->Workspace
創建完工作空間MyWorkSpace后的工程如下:
這樣我們的工作空間就創建完畢了,接下來在MyWorkSpace工作空間下添加工程和靜態庫.a
2.在工作空間MyWorkSpace下添加工程MyApp01
在工作的空間的Xcode文件夾中,File->New->Project,然后注意要指定Workspace為你創建的MyWorkSpace工作空間下,這樣MyApp01工程就添加到MyWorkSpace中了
選擇Single View App,然后輸入工程名字
輸入工程名稱,本項目使用MyApp01(名稱隨意),如下圖
將工程添加到MyWorkSpace工作空間下,如下圖:
3.使用第2步可以繼續往MyWorkSpace中添加其他工程,下面不在贅述,工作空間MyWorkSpace又創建了MyApp02工程,這樣實現了Xcode同時管理了兩個工程,MyApp01和MyApp02,效果如下:
4.建立一個靜態庫.a添加到MyWorkSpace工作空間下,實現連編
項目使用多工程的目的不在於可以創建多個項目,而是在於可以實現多個工程的連編。下面我們創建一個名為MyAccountSDK的靜態.a庫,然后將其添加到工作空間MyWorkSpace中
選擇Cocoa Touch Static Library
步驟類似第2步驟,這里不在詳細贅述
創建后的項目結構如下:
接下來在MyAccountSDK中MyAccountSDK類中創了一個類方法
+ (void)sayHelloWorldFromProjectName:(NSString *)projectName;
,然后分別在MyApp01和MyApp02工程中調用該類方法。
此時在MyApp01的ViewController中導入MyAccountSDK類,並調用類方法+ (void)sayHelloWorldFromProjectName:(NSString *)projectName;編譯你會發現報錯,提示MyAccountSDK文件不存在
解決辦法:
此時在編譯,你會發現還會報錯,提示沒有找到sayHelloWorldFromProjectName方法
解決辦法如下:
選擇剛才添加到MyWorkSpace工作空間的靜態庫.a文件,即libMyAccountSDK.a
注意(在運行工程之前要先編譯一個靜態庫.a)要不會報錯,提示xxxx.a文件找不到,此時再次編譯,你回奇跡般的運行起來了,下面是見證奇跡的時刻,運行結果如下:
小結:
上述截圖中調用MyAccountSDK類中的類方法sayHelloWorldFromProjectName時,細心的你會發現忘記傳參數了,筆誤啊,這里就不該截圖了,望見諒,大家注意啊,否則會一直報錯,如果項目中使用到了Framework時,需要在工程中Build Setting->Framework Search Path中配置Framework中所在的靜態庫.a路徑,我的項目使用一個單獨的工程管理第三方庫,所以要配置Framework Search Path
排版不是很美觀,不喜勿噴啊!