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

首頁 > 系統(tǒng) > iOS > 正文

iOS APP 多服務器環(huán)境分離的方法

2019-10-21 18:40:17
字體:
來源:轉載
供稿:網(wǎng)友

每個 App 項目可以有多個環(huán)境, 開發(fā)環(huán)境 、 測試環(huán)境 、 預發(fā)布環(huán)境 和 生產(chǎn)環(huán)境 ,至少有 開發(fā)環(huán)境 和 生產(chǎn)環(huán)境

研發(fā)同學和測試同學經(jīng)常需要在環(huán)境間切換,產(chǎn)品同學有時候也會心血來潮的看看各種版本,也就是說,有時候需要測試版本,有時候又需要正式版本,我之前的做法就是每次切換 url ,然后重新打包,或者重新運行,超麻煩~

那么有沒有可能在一個手機直接裝多個版本吶?

答案肯定是有滴(否則還碼這篇文章干嘛吶~)

個人覺得最好的方案就是 ------ 環(huán)境分離 ,即不同的環(huán)境對應不同的 app

每個Target代表一個編譯的產(chǎn)品。每個Target,可以有不同的編譯源文件和資源文件。那么,實現(xiàn)環(huán)境分離的方案,就是分別建立測試環(huán)境和生產(chǎn)環(huán)境的兩個Target。默認的Target作為生產(chǎn)環(huán)境的Target,在此基礎上復制多一個Target作為測試環(huán)境的Target。

一個 app 只能有一個唯一標示, iOS 使用的是 Bundle Identifier , Android 使用的是包名,因此,在一個手機上安裝多個環(huán)境的 app ,只需要每個環(huán)境的 Bundle Identifier 或者包名不同即可, 一般做法是在后面添加環(huán)境后綴 ,比如生產(chǎn)環(huán)境為 com.shenfengfeng.myapp ,那么測試環(huán)境就可以為 com.shenfengfeng.myapp.alpha , app 名字會更新,當然也可以手動改,當然也還可以改圖標,用來在同一個手機上區(qū)分版本

但是這種做法有個不好的地方就是需要,需要針對不同的環(huán)境,申請,不同的第三方的 appKey 、 appSecret

那么是來回注釋,還是申請賬號,看自己取舍吧~

多環(huán)境分離演示:

概述: iOS app 可以通過創(chuàng)建不同環(huán)境的Target來實現(xiàn)環(huán)境分離,不同Target可以設置不同的 bundle id 、名稱、圖標等。每個 target 也對應的 plist 文件

1、復制 target ,選中后右鍵,選擇 Duplicate

iOS,APP,多服務器,環(huán)境分離

2、默認的名字為 **** copy

iOS,APP,多服務器,環(huán)境分離

3、修改 target 和 bundle id ,需要注意的是,在修改 target 的名字后,需要切換到 Xcode 的其他地方(比如其他 target )后再切回來,然后 display name 會自動適配

iOS,APP,多服務器,環(huán)境分離

4、項目結構里面會多一個默認 target 名字的 ***.plist 文件

iOS,APP,多服務器,環(huán)境分離

5、 右鍵 show in finder ,將這個 plist 文件改名,并且移到項目的原本的 plist 文件的同級目錄,然后重新添加到項目中,注意選擇的 target

iOS,APP,多服務器,環(huán)境分離

6、看下圖

iOS,APP,多服務器,環(huán)境分離

7、因為移動了新的 target 的 plist 文件,所需要重新關聯(lián)到新的 plist 文件,關聯(lián)后隨意切換后會刷新

iOS,APP,多服務器,環(huán)境分離

8、按著鍵盤 option ,點擊 Xcode 運行按鈕(左上方),然后點擊 Manage Schemes

iOS,APP,多服務器,環(huán)境分離

9、重命名新創(chuàng)建 schemes

iOS,APP,多服務器,環(huán)境分離

10、如圖

iOS,APP,多服務器,環(huán)境分離

11、右鍵新建 AppIcon

iOS,APP,多服務器,環(huán)境分離

12、選擇新的 target 對應的 AppIcon

iOS,APP,多服務器,環(huán)境分離

13、關鍵步驟

設置了不同的 target 后,代碼上可以根據(jù)不同的 target 來做不同的處理,就需要知道,當前在編譯的是哪個 target

這可以通過,預編譯宏來區(qū)分,比如在 runtime alpha 的 target 的 Build Settings 中,在 Preprocessor Macros 中添加 FF_ALPHA

(也可以給 target runtime 設置 FF_ALPHA=0 ,給 runtime alpha 設置 FF_ALPHA=1 )

iOS,APP,多服務器,環(huán)境分離

14、代碼中就可以如下判斷,依據(jù)實際情況

#ifdef FF_ALPHA#define FF_URL @"****"#elif ...#define FF_URL @"****"#else#define FF_URL @"****"#endif

15、結束,非常感謝看到這里的小伙伴,筆者感覺到很開心~

遇到的問題

切換 Scheme 時候,遇到如下圖報錯

筆者將模擬器格式化后正常, Xcode 9.* ---> Hardware → Erase All Content and Settings...

iOS,APP,多服務器,環(huán)境分離

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜兰县| 宜宾县| 囊谦县| 东方市| 新沂市| 南部县| 墨竹工卡县| 苍南县| 南靖县| 浦城县| 阳谷县| 柯坪县| 曲阜市| 隆德县| 鸡泽县| 安岳县| 榆林市| 准格尔旗| 安新县| 金湖县| 综艺| 芦山县| 东莞市| 德化县| 康乐县| 雅安市| 霍城县| 灌阳县| 吉木乃县| 北安市| 宜春市| 洛浦县| 密云县| 民乐县| 白河县| 桂林市| 宁城县| 灵丘县| 平和县| 龙川县| 中超|