国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS多環境配置(Debug,Release之外)

2019-11-06 09:56:46
字體:
來源:轉載
供稿:網友

談到多環境,現在經常用到2-3個環境,比如Test環境,User Acceptance Test用戶驗收測試環境,Release環境等等。當需要開發打多個包的時候,一般常見做法就是直接代碼里面修改環境變量,改完之后Archive一下就打包了。

Xcode已經提供了兩種配置:Debug和Release,想要添加一個環境則需要通過Build Configuration來配置。

1,選擇你的Xcode項目,找到info-Configuration,然后點擊+,選擇Duplication”Debug” Configuration 或Duplication”Release” Configuration ,添加一個新的配置 這里寫圖片描述

2,如果此時項目里面有cocopods的話,剛剛新建完Build Configuration之后,請立即執行一下

pod install

pod安裝完成之后會自動生成xcconfig文件,如果你手動新建這個xcconfig,然后把原來的debug和release對應的pod xcconfig文件內容復制進來,這樣做是無效的,需要pod自己去生成xcconfig文件才能被識別到。

3,設置配置構建方案 選擇項目的Manage Schemes,選擇當前的應用程序,點擊左下角的小齒輪,然后點擊Duplicate,該應用程序構建方案具有相同的名稱并且作為項目默認設置 這里寫圖片描述 《1》如果是多人開發項目,他們將不會看到你的新方案,因為你沒有分享它。如果你選擇你的方案,并且右側點擊share復選框,然后提交到你的源代碼管理系統,其他人將能夠使用這些方案了 《2》在新的對話框中,更改方案的名稱,這里可以把Run模式和Archive都改成新建Scheme。若更改方案的名稱,例如你的App名稱+AdHoc,然后選擇Archive選項并且設置Configuration為AdHoc,完成之后點擊close按鈕 這里寫圖片描述

4, 新建User-defined Build Settings 再次回到PRoject的Build Settings里面來,Add User-Defined Setting。 這里寫圖片描述

我們這里新加入2個參數,CustomAppBundleld是為了之后打包可以分開打成多個包,這里需要3個不同的Id,建議是直接在原來的Bundleld加上Scheme的名字即可。

CustomProductName是為了app安裝到手機上之后,手機上顯示的名字,這里可以按照對應的環境給予描述,比如測試服,UAT,等等。如下圖。 這里寫圖片描述

5, 修改info.plist文件和Images.xcassets 先來修改一下info.plist文件。 這里寫圖片描述 由于我們新添加了2個CustomAppBundleld 和 CustomProductName,這里我們需要把info.plist里面的Bundle display name修改成我們自定義的這個字典。編譯過程中,編譯器會根據我們設置好的Scheme去自己選擇Debug,Release,TestRelease分別對應的ProductName。 這里寫圖片描述 我們還需要在Images.xcassets里面新添加2個New iOS App Icon,名字最好和scheme的名字相同,這樣好區分。 這里寫圖片描述

新建完AppIcon之后,再在Build Setting里面找到Asset Catalog Compiler里面,然后把這幾種模式下的App Icon set Name分別設置上對應的圖標。如上圖。

既然我們已經新建了這幾個scheme,那接下來怎么把他們都打包成app呢??這里有一份官方的文檔Troubleshooting application Archiving in Xcode這里面詳細記錄了我們平時點擊了Archive之后是怎么打包的。

每個環境都要設置好Debug 和 Release!每個環境都配置Debug 和 Release,即使以后不用,也提前設置好,以防萬一。

我建議Scheme只配置環境,而進來的Run和Archive來配置Debug和Release,我建議每個Scheme都按照上圖來,Run對應的Debug,Archive對應的Release。

配置好上述之后,就可以選擇不同環境運行app了。可以在手機上生成不同的環境的app,可以同時安裝。

6, 配置和獲取環境變量

使用GCC預編譯頭參數GCC_PREPROCESSOR_DEFINITIONS 我們進入到Build Settings里面,可以找到Apple LLVM Preprocessing,這里我們可以找到Preprocessor Macros在這里,我們是可以加一些環境變量的宏定義來標識符。Preprocessor Macros可以根據不同的環境預先制定不同定義的宏。 這里寫圖片描述

如上圖,圈出來的地方其實就是一個標識符。

有了這些我們預先設置的標識符之后,我們就可以在代碼里面寫入如下的代碼了。

#ifdef DEVELOP#define searchURL @"http://www.baidu.com"#define sociaURL @"weibo.com"#elif UAT#define searchURL @"http://www.bing.com"#define sociaURL @"twitter.com"#else#define searchURL @"http://www.google.com"#define sociaURL @"facebook.com"#endif
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 徐闻县| 屯门区| 临桂县| 万宁市| 进贤县| 桐柏县| 南雄市| 渭源县| 阜新市| 望都县| 政和县| 巴林右旗| 峨山| 固始县| 格尔木市| 永仁县| 余江县| 手游| 镇平县| 泸州市| 翼城县| 潜江市| 普兰县| 正镶白旗| 庐江县| 陈巴尔虎旗| 定安县| 龙海市| 宝清县| 榆树市| 青海省| 隆回县| 汾阳市| 中山市| 辛集市| 巩义市| 阳东县| 百色市| 稻城县| 眉山市| 清流县|