在我們開發(fā)的過程中免不了會有環(huán)境不同的包材失。測試包,線上測試包改备,線上包,還有一些其他特殊需求的包下梢。
在Debug環(huán)境下,不用手動修改代碼可以任意切換不同的服務(wù)器地址塞蹭。
Go
網(wǎng)絡(luò)請求三方庫:
AFNetworking .
通過本地存儲修改AFN的 baseURL 屬性孽江。(當你使用其他的庫或者自定義的網(wǎng)絡(luò)請求類的話,也是這個思路)
1.聲明不同的服務(wù)器地址為不同的靜態(tài)字符串類型
example:
UIKIT_EXTERN NSString *const BaseUrlApp;//正式域名
NSString *const BaseUrlApp = @"https:www.baidu.com/";
UIKIT_EXTERN NSString *const BaseUrlTest;// 測試域名
NSString *const BaseUrlApp = @"https:www.baidu.com/";
UIKIT_EXTERN NSString *const BaseUrlAppTest;//線上測試域名(在.h文件中聲明)
NSString *const BaseUrlApp = @"https:www.baidu.com/";(在.m文件中指定服務(wù)器地址)
2.在登陸界面 通過生成UIButton分別代表不同的服務(wù)器地址番电,指定AFN的 baseURL岗屏,并做本地存儲(可以通過手勢操作來控制顯示或者隱藏切換的界面)辆琅。
xx.baseUrl = BaseUrlApp
>[[NSUserDefaults standardUserDefaults] setValue:BaseUrlApp forKey:@"baseUrl"];
3.點擊登陸或者注冊 都是通過指定的地址:
xx.baseUrl = BaseUrlApp
4.本地存儲了賬號可以在AppDelegate中獲取key "baseUrl"。
#ifdef DEBUG
xx.baseUrl = (NSString *)[[NSUserDefaults standardUserDefaults] valueForKey:@"baseUrl"] == nil ? BaseUrlTest:(NSString *)[[NSUserDefaults standardUserDefaults] valueForKey:@"baseUrl"];
#else
xx.baseUrl = BaseUrlApp;
#endif
- 在Debug環(huán)境下这刷,通過獲取本地存儲的baseUrl獲取上次點擊選擇的服務(wù)器地址婉烟。如果不存在此地址,指定默認地址暇屋。
- Release環(huán)境下似袁,避免出現(xiàn)問題。直接執(zhí)行服務(wù)器地址為線上地址率碾。