iOS工程中開發環境和釋出環境的切換
這篇文件主要是解決以下兩個在開發時經常遇到的問題:
1、 在開發時,有一些程式碼僅在開發時執行,發版時不能執行。比如:測試用的mock資料、自動登入以方便除錯應用、在本次上線時不上線的功能等。
2、 測試人員需要在測試伺服器和線上伺服器間來回切換,原來經常需要為連線測試伺服器和線上伺服器打不同的包,測試人員和開發人員都很麻煩。
1、.pch 檔案
在.pch檔案中增加下面的程式碼:
#warning發版時註釋。發版時只需要註釋此一處即可。
#import"TestAppConfig.h"
將和開發時相關的巨集定義都放在TestAppConfig.h檔案中,在發版時,只需註釋#import"TestAppConfig.h"
應用就切換到了發版狀態。避免了發版時需逐個關閉測試相關的巨集,不容易遺漏。
2、只用於開發時的檔案:TestAppConfig.h
此檔案中定義的巨集全部是僅用於開發的,其內容如下:
#define TEST_APP 1
//線上環境
#define NET_ENVServerTypeOnline
//測試環境
//#define NET_ENV ServerTypeTest
#defineCURRENT_LOGIN_USER_NANE @"lilaping"
#defineCURRENT_LOGIN_USER_PWD @"[email protected]"
//在測試狀態,自動登入
//#define AUTO_LOGIN1
//其它開發相關的巨集…………
其中“TEST_APP”這個巨集是必須的,用來在程式碼中判斷當前是否為開發狀態,這個巨集定義的使用如下:
#ifdef TEST_APP
//只在開發時執行的程式碼
#endif
3、AppDelegate.m檔案
在此檔案中,如果是開發環境,則在應用啟動後,首先顯示介面,供使用者選擇連線測試伺服器還是線上伺服器。如果是發版,則按正常業務進行。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.window makeKeyAndVisible];
#ifdef TEST_APP
SetServerTypeVC*setServerTypeVC = [SetServerTypeVC new];
[setServerTypeVC showSetupWithTarget:self selector:@selector(showFirstVC)];
self.window.rootViewController = setServerTypeVC;
#else
[self showFirstVC];
#endif
return YES;
}
-(void)showFirstVC{
LoginVC* vc = [[LoginVC alloc] init];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
}
4、SetServerTypeVC.m檔案。
此檔案為使用者選擇正式伺服器還是測試伺服器的介面。
5、UrlConfig.h檔案
此檔案用於配置伺服器的地址以及其它公用的引數。服務端相關的公用引數應該儘量都放到此檔案中集中管理。
具體內容如下,其它網路引數處理方式相同:
此函式的作用在於,如果是發版狀態,則直接返回網路引數,如果是開發狀態,則根據使用者的選擇,返回測試伺服器的狀態或者正式伺服器的狀態。
CG_INLINE NSString* getLoginUrl(){
#ifdef TEST_APP
if(![SetServerTypeVC isSelectOnline]){
return @"http://www.test.com/cas/";
}
#endif
return @"https://www.online.com/cas/";
}
使用時:
NSString* logingURL = [NSString stringWithFormat:@"%@login",getLoginUrl()];
此處將取服務端相關引數由原來的巨集定義改成了一個函式。原因在於,在開發環境時,連線那一個服務端是由使用者在應用執行後選擇的,不是在應用啟動前就決定的。如果用巨集解決的話,沒有找到一個好的可以集中管理網路引數的辦法。
包裝為一個方法後,雖然多了一次呼叫,但是便於集中管理網路相關的引數,方便管理。相關推薦
iOS工程中開發環境和釋出環境的切換
這篇文件主要是解決以下兩個在開發時經常遇到的問題: 1、 在開發時,有一些程式碼僅在開發時執行,發版時不能執行。比如:測試用的mock資料、自動登入以方便除錯應用、在本次上線時不上線的功能等。 2、 測試人員需要在測試伺服器和線上伺服器間來回切換
vue專案配置生產環境和釋出環境的介面地址
平常我們團隊開發時,都在公司的區域網內,呼叫介面也是區域網內部的,但是專案上線時,請求介面是線上伺服器端的,那麼就有介面之間的來回切換問題.在使用vue-cli搭建專案以後,做相關配置就可以實現,不用手動更改介面路徑,也可以請求不同環境下的介面.1.設定不同的介面地址先找到以
vue axios 給生產環境和釋出環境配置不同的介面地址
本專案是vue-cli搭建的專案框架,引入axios用於資料請求。配置不同的介面地址,(首先確保已經集成了axios,如對整合axios有疑問的道友,可參看我之間的一篇部落格vue-cli 引入axios)操作如下一、設定不同的介面地址找到如下檔案 /config/dev.e
webpack -- 關於proxyTable的配置在開發環境和生產環境中的原理解析
前言 首先,proxyTable是我們在本地開發環境中除錯介面用的,目的是為了解決本地跨域的問題,因為本地地址為localhost:xxxx/xxx 在線上的生產環境是沒用的!!! 假設我們用的是vue-cli命令列工具生成的webpack專案模板
vue開發中api介面地址區分開發環境和線上環境
相關檔案 /config/dev.env.js // 本地開發配置 /config/prod.env.js // 線上打包配置 修改/config下的dev.env.js和prod.env.js這兩個檔案 dev.env.js '
vuejs經驗交流之-開發環境和生產環境的啟動
分享 技術 cli cnpm 刪掉 經驗交流 http 開發環境 yarn vue開發環境 首先要下載必要的包 命令 cnpm install/yarn install 1 啟動後臺服務 npm run server
手把手教你用webpack3搭建react項目(開發環境和生產環境)(一)
stc reac config nod top llb cor git history 開發環境和生產環境整個配置源碼在github上,源碼地址:github-webpack-react 如果覺得有幫助,點個Star謝謝!! (一)是開發環境,(二)是生產環境。 一、首
Spring Cloud 進階之路 -- Eureka的高可用,搭建 Eureka叢集(開發環境和生產環境)
Eureka 作為註冊中心,必須保障高可用,否則會直接影響有關的整個服務體系。 以下分別進行開發環境和生產環境的多服務中心叢集配置。 目錄 一、開發環境簡易配置: 1、配置Configurations 2、在Configurations 裡
ASP.NET CORE 2.0 釋出到IIS,IIS如何設定環境變數來區分生產環境和測試環境
0.前言 因為給前端的測試環境是windows,所以要設定windows上的環境變數,如果上Linux就沒有這篇文章了,所以大家不要在意為什麼core不放在linux上。 1.網上的解決方案 a 方式:通過 setx 命令設定環境變數引數,文章地址:https://www.cnblogs.com/xishu
開發環境 測試環境 和生產環境的區別
對於一個剛進入公司的新人來說,在熟悉工作環境的時候,會聽著幾個“老人”在自己可視範圍之外或者輕鬆的討論著業務,其措辭拿捏精準,期間,涉及到一系列的概念,可能會讓你不覺明厲,暗歎:“高階,大氣,上檔次”。有些術語,它既有官方稱呼,也有通俗叫法,對於不覺明厲的我們只
iOS專案開發流程和釋出流程
專案開發流程 1.需求分析 2.功能設計 3.編寫程式碼 4.測試 5.釋出上線 釋出 1.進入developer.apple.com,點選Certificates&Identifiers,再點選Certificates 2.註冊App Id,輸入專案名稱和Bun
springboot不同環境,不同配置的實現(開發環境和生產環境的切換)
首先,是我實現的最終效果圖可以看到這裡配置了3個application,其中第一個是總的配置,第二個是開發環境,第三個是生產環境。總的配置總是會生效的,而另外兩個配置生效的條件,則要看看我們在總的配置裡配置了什麼,比如這裡,我在application.yml裡配置了開發環境s
webpack開發環境和生產環境切換原理
在package.json中有如下設定: "scripts": { "dev": "node build/dev-server.js", "build:prod": "cross-env NODE_E
SpringBoot的Profiles根據開發環境和測試環境載入不同的配置檔案
參考:https://www.cnblogs.com/bjlhx/p/8325374.html 1、需要有一個預設的配置檔案,然後一個正式的配置檔案,一個測試的配置檔案。啟用配置項,預設的配置檔案application.properties也會載入進去的。程式設計的方式指定生效的profile。 預設的配
Docker 標準化開發測試和生產環境
對於大部分企業來說,搭建 PaaS 既沒有那個精力,也沒那個必要,用 Docker 做個人的 sandbox 用處又小了點。可以用 Docker 來標準化開發、測試、生產環境。Docker 佔用資源小,在一臺 E5 128 G 記憶體的伺服器上部署 100 個容器都綽綽有餘,
Spring Cloud 進階之路 -- Eureka的高可用,搭建 Eureka叢集(開發環境和生產環境)
Eureka 作為註冊中心,必須保障高可用,否則會直接影響有關的整個服務體系。 以下分別進行開發環境和生產環境的多服務中心叢集配置。 目錄 一、開發環境簡易配置: 1、配置Configurations 在上一
vue利用axios處理開發環境和生成環境的跨域問題
1.跨域,是一個需要前後端一起解決的伺服器問題,在vue-cli的webpack有解決這個問題的功能。 例如前端向後臺伺服器(http://localhost/echoIp/index.php)傳送一個請求,然後將收到的資料列印到頁面。 那麼由於開發環境不在
react+webpack 打包,開發環境和生產環境整合一體拿來就能用
直接上程式碼: webpack.config.js import webpack from "webpack"; import path from "path"; var path = path.resolve(__dirname,"/main.j") var
CentOS中配置PHP和Nginx環境變數
一、摘要 在Linux CentOS系統上 安裝完PHP和Nginx後,一般需要執行檢視版本命令’php -v’和’nginx -v’,確認是否安裝成功,如果在沒有新增到環境變數之前,執行“php -v”命令檢視當前php版本資訊時,則會提示命令不存在的錯誤,
騰訊雲的開發環境和生產環境傻傻分不清
開發環境和生產環境 為了方便開發除錯,防止影響到線上服務,騰訊雲提供開發和生產兩套環境,兩套環境擁有以下特點: 開發環境 免費使用 自動分配測試用二級域名:xxxxxxx.qcloud.la 自動部署免費 HTTPS 僅可用於線上除錯,不可釋出