objective-c - iOS工程中开发环境和发布环境的切换以方便测试

查看:291
本文介绍了objective-c - iOS工程中开发环境和发布环境的切换以方便测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

目前需求是:在APP中设置列表中加一行针对特殊账号专门用于切换服务器环境的cell,可以自由的切换开发、测试,以及正式环境。

目前全局的宏定义都写在了PCH文件中,想用NSUserDefault或者Singleton去维护环境变量集合,但是没有实现效果。但是利用Build Configuration来配置多环境、利用xcconfig文件来配置多环境,以及利用Targets来配置多环境,这些方法都会打包多个APP并且配置过程并不简单。其实就是实现一个多环境切换的小功能应该有更简单的方法来实现。希望感兴趣的同学解答一下。

解决方案

//用NSUserDefault来实现

//1.提前在PCH文件中写好宏定义

//服务器
#define serverIP [[NSUserDefaults standardUserDefaults] objectForKey:@"server"]

//网页服务器
#define webServerIP [[NSUserDefaults standardUserDefaults] objectForKey:@"webServer"]

//2.此处点击切换服务器


- (void)switchServerWith:(NSInteger )index{


    //开发环境
    if (index == 0) {

        [[NSUserDefaults standardUserDefaults] setObject:@"http://xxx/" forKey:@"server"];
        [[NSUserDefaults standardUserDefaults] setObject:@"http://xxx/" forKey:@"webServer"];
        
        
        //测试环境
    } else if (index == 1) {
        
        [[NSUserDefaults standardUserDefaults] setObject:@"http://test.xxx/" forKey:@"server"];
        [[NSUserDefaults standardUserDefaults] setObject:@"http://test.xxx/" forKey:@"webServer"];
        
        //正式环境
    } else if (index == 2) {
        
        [[NSUserDefaults standardUserDefaults] setObject:@"http://api.xxx/" forKey:@"server"];
        [[NSUserDefaults standardUserDefaults] setObject:@"http://www.xxx/" forKey:@"webServer"];
        
    }
    


}

借鉴了前一位同学的回答,整理了一个方法,注意当第一次安装应用时需要初始化一个默认的服务器地址,然后跟后台约定并设置某些账号拥有开发者权限的才会出现可选的开发者选项,完美解决。要记得每次切换环境都要调一下退出登录的方法。

这篇关于objective-c - iOS工程中开发环境和发布环境的切换以方便测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆