在我们开发的过程中免不了会有环境不同的包。测试包,线上测试包,线上包,还有一些其他特殊需求的包。
在Debug环境下,不用手动修改代码可以任意切换不同的服务器地址。
Go
网络请求三方库:
AFNetworking .
通过本地存储修改AFN的 baseURL 属性。(当你使用其他的库或者自定义的网络请求类的话,也是这个思路)
1.声明不同的服务器地址为不同的静态字符串类型
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文件中指定服务器地址)
2.在登陆界面 通过生成UIButton分别代表不同的服务器地址,指定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环境下,通过获取本地存储的baseUrl获取上次点击选择的服务器地址。如果不存在此地址,指定默认地址。
- Release环境下,避免出现问题。直接执行服务器地址为线上地址。