在開發`iOS`應用程式的過程中,經常需要根據不同的需求,切換到不同的項目配置,或者打不同的包(測試環境、開發環境、生產環境等等),如果每次都是手動配置,一則比較麻煩,二則容易配置錯,那麼有沒有更好的方案來解決這個問題呢?答案是:有的。我們可以根據不同的需求,創建不同的`target`,在不同需求要... ...
在開發iOS
應用程式的過程中,經常需要根據不同的需求,切換到不同的項目配置,或者打不同的包(測試環境、開發環境、生產環境等等),如果每次都是手動配置,一則比較麻煩,二則容易配置錯,那麼有沒有更好的方案來解決這個問題呢?答案是:有的。我們可以根據不同的需求,創建不同的target
,在不同需求要切換配置或打包時,直接選擇對應的target
完成工作,從而提高我們的開發效率。
創建多個target
有兩種方式,一種是創建多個info.plist
的配置文件,另一種是拷貝整個工程所需的文件,如:源文件、資源文件、配置文件等等。下麵介紹這兩種方式的創建過程:
方式一
複製target
首先複製target
,然後在彈出的框中,選擇Duplicate Only
,即可複製一個target
修改名字
1.修改target的名字
雙擊複製出來的target
即可修改名字
2.修改plist名字
把複製出來的*** copy-Info.plist
文件改成其它名字,然後在General
的配置裡面,重新選擇target
的配置文件
3.修改scheme的名字
選擇Manage Schemes...
,然後在目標scheme
上門雙擊(具體是:單擊一下,等3s再單擊,如果快速雙擊,是無法進行名字的修改的),之後修改名字
經過上面的修改,一個新的target
就創建完成,之後我們可以修改Bundle Identifier
、Version
、Team
等,以及資源文件等。
方式二
方式二就簡單許多,直接複製工程所需的文件,之後我們可以看到工程的根目錄下麵,會多出一個文件夾,裡面的文件內容和工程是一樣的,所以是一個獨立的工程空間,包括:源文件、配置文件、資源文件等等。我們在新工程裡面的修改不會影響到舊工程。
根據上面的兩種方案可以看出,第一種僅僅是創建了一個工程的配置文件,來實現多target的功能;而第二種是完全創建了一個新的工程目錄,拷貝了之前的所有文件,之後的修改也不會影響到舊工程了,類似工程的備份功能。
預編譯
在同一target
下,我們也會需要不同的配置,如果都在代碼裡面進行判斷,每次都要手動修改,也是比較麻煩的問題。針對這個問題,我們可以用預編譯巨集來解決。通常,target
里會有一個Debug
模式下的預設的巨集:Debug=1
,我們可以繼續添加,或者直接使用這個巨集來進行不同的配置。
實例代碼如下:
#ifdef DEBUG
#define BASE_URL @"https://www.baidu.com"
#else
#define BASE_URL @"https://www.chaoaicai.com"
#endif
通過以上配置,那麼以後我們在切換開發和生產模式時,就不同再手動修改base_url
了,是不是感覺爽的飛起。
以上就是針對多target
配置的介紹,如有不足之處,歡迎指出,共同進步。
參考資料