在開發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 @""
#else
#define base_url @""
#endif
通過以上配置,那麼以後我們在切換開發和生產模式時,就不同再手動修改base_url
了,是不是感覺爽的飛起。
參考資料
ios開發多個target的使用
多個target的使用
如何在ios專案中建立多個target?
IOS開發中如何區分IOS版本
當前系統支援的最小版本 iphone os version min required 當前系統支援的最大版本 iphone os version max allowed 比如用iphone os sdk 3.1.2 編譯的程式 iphone os version min required iphon...
iOS開發中怎麼建立Plist檔案
選中xcode,使用快捷方式command n 建立plist檔案1.png 建立plist檔案2.png 手動新增屬性.png 注意 只能讀取,不能用 進行更刪改查。如果本身plist檔案在bundle中是無法修改的,需要先從bundle中移出才可以。你應該把plist檔案從bundle複製到ca...
IOS開發中emoji表情如何判斷
在ios開發中,很多時候我們要對textfield中的文字進行限制,包括有沒有空格,長度在哪個範圍裡面。不過,最近發現乙個問題,ios手機自帶的鍵盤裡面可以輸入一些emoji表情,而且這些表情在伺服器上根本不支援,這時候沒辦法只能控制使用者輸出了,那麼我們如何來判斷文字中是否含有emoji表情呢?首...