Xcode环境配置和自定义设置

Xcode环境配置和自定义设置
前言:项目开发一般分为开发环境(开发人员)、测试环境(测试人员)、生产环境(正式上线),当然还可以分得更细一些

一、这三个环境的接口请求的url也是不一样的,我们来看下几种配置方式
(1)、我们有的设置宏变量来定义,这种方法就是针对不同的情况来注释对应的代码,eg
这里写图片描述
(2)、在plist中设置,然后开发人员选择获取对应的plist里的值
这里写图片描述
(3)、创建用户自定义设置
1、在Info.plist中新建一个AppSettings字典,将各个环境不同的值key写进去
这里写图片描述
2、重新定义配置环境,在项目—project—Info —configuration中,新建3个
这里写图片描述
对应3个环境的配置如下:TestFlight和Development是Debug configuration,Production是Release configuration
这里写图片描述
3、在项目—target—Build Settings,点击+ 添加用户自定义设置
这里写图片描述
4、将相关内容添加进去
这里写图片描述
5、在plist中获取我们设置的值,用 (CXDBASEURL) (CXD_ENVIROMENT)
这里写图片描述

6、下面我们从plist中读取相关数据,新建AppSettings


#import "AppSettings.h"

@interface  AppSettings()

@property(strong, nonatomic) NSString *url;

@property(assign, nonatomic) BOOL environment;

@end

@implementation AppSettings

+ (AppSettings *)shareInstance{

    static AppSettings *instane = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instane = [[AppSettings alloc] init];
    });

    return instane;
}

- (instancetype)init{

    self = [super init];
    if (self) {
        [self requestPlistData];
    }

    return self;
}

#pragma mark - 获取plst中的相关数据
- (void)requestPlistData{
    //1.获取路径
    NSString *src=[[NSBundle mainBundle]pathForResource:@"Info" ofType:@"plist"];
    //2.获取plist文件的dict
    NSMutableDictionary *allDic = [[NSMutableDictionary alloc]initWithContentsOfFile:src];
//    NSLog(@"allDic-->%@",allDic);

    NSMutableDictionary *AppSettings =  allDic[@"AppSettings"];
    self.environment=[(NSNumber*)[AppSettings objectForKey:@"Environment"]boolValue];
    NSLog(@"environment----->%d",self.environment);

    self.url = [AppSettings objectForKey:@"BaseURL"];
    NSLog(@"url----->%@",self.url);
}


#pragma mark - baseurl
- (NSString *)baseUrl{
    return self.baseUrl;
}

#pragma mark - 开发、测试/生产
- (BOOL)isEnviromentStatues{
    return self.environment;
}

@end

7、切换环境,Product—Scheme—Edit Scheme….Run—Info中Build configuration中选择
这里写图片描述
这里写图片描述

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"baseUrl-->%@",[AppSettings shareInstance].baseUrl);

    NSLog(@"enviroment-->%d",[AppSettings shareInstance].isEnviromentStatues);
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/ycf03211230/article/details/79013201