經小夥伴提出問題,swift項目下,以下配置無效,所以博主經過研究實踐確定swift配置和oc的稍有差別,如果你是swift項目,請移步swift版本:點擊前往
不知道你是否需要經常打包。各種包,測試服,正式服,開發服等等,每次都需要注釋開啟不同的網域名稱,有時候一不小心忘記了還有可能造成不小的損失,如何規範的來管理這些環境呢。博主今天就教大家怎麼把不同的環境區分開,只需要選擇對應的target就可以切換不同的環境:
1.我們先來建一個空的工程,名字叫Hello;
2.建立好工程後,選中我們的target,右鍵:
3.我們假設需要正式環境,開發環境和測試環境三個環境,原來的target就是正式環境,所以需要建立額外兩個target,連續操作兩次後:
4.到這一步後,就建立好了,然後改名:
5.改完名後,左邊對應的plist檔案名稱字也改下,然後回到對應target上,因為plist名字改了,所以找不到了,點擊choese。。。。按鈕,選擇對應的plist檔案。
完事後,因為有三個target,建立檔案時多次勾選也不方便:
6.所以在這裡要建立一個lib檔案,統籌管理:
7.點開後拖到最下面:
8.點擊next後輸入名字,叫HelloLib吧,然後選中target:
9.把剛建立的lib加進去
10.這時候你會發現schemes裡面的target名字還沒有對應:
11.這裡把所有的項刪除,點“-”。刪除完成後,再點“+”就出來了,刪了幾次就要加幾次哦。
12.完成之後關閉,然後建立新的檔案時記得勾選lib檔案,不要再勾選target了,但是Appdelegate檔案不用動,因為這裡是起源,當然,如果勾選lib,不勾選target也可以,目前沒什麼影響
這裡注意,只有m檔案可以勾選,h檔案不可以哦。
13.到這裡還沒結束,不同的環境我們建立好了,但是選擇對應target後對應不同的網域名稱我們還沒配置,在build setting中輸入Preprocessing:
14.看到紅色框圈起來的那個了麼,因為目前選中的是正式的target,所以這裡不需要填,預設是DEBUG=1,不要碰,然後選中Dev和Text的,分別增加DEV=1,TEST=1,名字隨便寫,後面會用到,
15.操作完後,到Appdelegate中,在方法中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{#ifdef DEBUG url = @"http://bbbbbbbbbbbbbbb";#elif DEV url = @"http://cccccccccccccc";#elif TEST url = @"http://dddddddddddddd";#endif//這裡不管是設定rootViewController還是通過故事板啟動都可以哦,}
16.你可以在schemes中切換target,在哪個target下,哪個定義下的url就是有顏色的(切換完target時需要來回切換檔案才能看到對應的url顏色改變,要不然還是之前的url變色,可能是Xcode的問題吧,偶現問題,正常切換後顏色就會變化)
這時候一個不含pod的多target工程就已經完成了,切記在建立檔案時需要勾選lib檔案,引入第三方時也需要哦。
17.以上工程不包含pod,但是現在因為第三方頻繁使用,所以大量的第三方不可能放進工程中,這裡建立pod也需要注意一點,先建立好pod的workspace吧,然後博主來說明怎麼配置Podfile檔案:
如圖,每一個target下都要加入你需要的庫,一個都不能少,完成之後你的項目就可以引入AF的標頭檔了,到此,一個完整的多Target工程就建立完畢了,如果你的是已有項目,步驟不變哦,不過要改變下勾選狀態。有問題可以留言或加群討論哦。
這裡還有一個坑忘記說了,你可能在編譯的時候說報錯了,缺少pod檔案,不要慌,把你的pod檔案,lib檔案編譯一下,產生.a檔案再編譯你的工程就可以了。
最後附博主操作的Demo,大家可以對照下看看。點擊前往下載