iOS Configuration配合网络库使环境切换更便捷

iOS Configuration配合网络库使环境切换更便捷

WechatIMG74.png

完成后可以看到项目已经有多个 Configuration了。

2.pod项目需要做如下操作

项目里面用了Pod,打开配置是会看到如下信息

iOS Configuration配合网络库使环境切换更便捷

WechatIMG75.png

需要执行

pod install  

这时候pod安装完成之后会自动生成xcconfig文件,里面有一些pod的配置

3.新建Scheme

新建的Scheme,在运行的时候可以选择我们运行的环境,如:Debug、QA、UAT、Released等

iOS Configuration配合网络库使环境切换更便捷

WeChat122fc3f32976a80c384415413b5dacd7.png

然后点击选择他的运行环境,在我们新添加的项目中改变Run模式和Archive模式,把他们都改为Debug。

iOS Configuration配合网络库使环境切换更便捷

WechatIMG76.png

4. 新建User-defined Build Settings

在Project的Build Settings中添加Add User-Defined Setting
我们知道,在plist中我们可以通过$(PRODUCT_BUNDLE_IDENTIFIER)来查找Bundle identifier,我们可以自己设置路径,然他查找Bundle identifier

iOS Configuration配合网络库使环境切换更便捷

WechatIMG77.png

在plist文件中修改value值便于匹配自定义的值

iOS Configuration配合网络库使环境切换更便捷

WechatIMG79 1.png

5.配置和获取环境变量

找到Preprocessor Macros,可以加一些环境变量的宏定义来标识符,根据不同的环境预先制定不同定义的宏用于在网络库上区分不同环境。

iOS Configuration配合网络库使环境切换更便捷

WechatIMG80.png

6.配合网路库区分不同环境

   NSString *urlString = [request requestURL];
   NSDictionary *params = [self constructRequestParams:request]; // 构造参数
   urlString = [NSString stringWithFormat:@"%@%@",BaseURLString, urlString];
   if ([CCNetworkConfig sharedInstance].isShowDebugLog)
      {
          NSLog(@"\n\n---------------request start 发起请求报文---------------------------\n\n 请求的地址为\n :%@\n 加密前请求报文是:\n %@\n----------------request end  发起请求报文------------------\n\n",urlString,params);
      }
   AFHTTPSessionManager *manager = [self sharedHttpSessionManager];
   manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/html", nil];
   manager.responseSerializer = [AFHTTPResponseSerializer serializer];
   [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
   __weak typeof(self) weakSelf = self;
   NSURLSessionDataTask *task = [manager POST:urlString
                                   parameters:params
                                     progress:^(NSProgress * _Nonnull downloadProgress){ }
                                      success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject)
   {

       [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
       NSString *resopnseString = [[NSString alloc] initWithData:responseObject
                                                        encoding:NSUTF8StringEncoding];
       NSData *jsonData = [resopnseString dataUsingEncoding:NSUTF8StringEncoding];
       NSDictionary *content = [NSJSONSerialization JSONObjectWithData:jsonData
                                                               options:NSJSONReadingMutableContainers
                                                                 error:nil];
//访问接口地址

//@"https://app.xxxxx.com/"//正式环境

//@"http://dev.xxxxx.com/"//开发环境

//@"https://qa.xxxxx.com/"//测试环境

#define CCInfoPlistPath [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"]

#define CCInfoPlistPathGetDic [NSMutableDictionary dictionaryWithContentsOfFile:CCInfoPlistPath]

#define CCInfoPlistGetValue(key) [CCInfoPlistPathGetDic objectForKey:key]

#define BaseURLString CCInfoPlistGetValue(@"App Request Base URL")

iOS Configuration配合网络库使环境切换更便捷

WechatIMG81.png

文章均来自互联网如有不妥请联系作者删除QQ:314111741 地址:http://www.mqs.net/post/13168.html

相关阅读

  • 淘宝怎么运营推广(中小卖家必学的操作思路)

    淘宝怎么运营推广(中小卖家必学的操作思路)

    淘宝在很长一段时间内,一直被认为是中国最大的电子商务平台。人们在这里购物,与在别处购物一样,会感觉到很便捷、很实惠。因此,随着电商行业的发展。如今,淘宝网站的活跃用户数已经超过了1亿人(目前该数据仅统计了部分用户)。而作为一个淘宝...

    2025.12.09 14:15:37作者:iseeyuTags:运营
  • 如何保证缓存和数据的双写一致性

    如何保证缓存和数据的双写一致性

    image 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇...

    2025.12.09 09:28:14作者:iseeyu
  • 【百度搜索引擎优化】如何快速了解百度搜索引擎优化的知识?(搜索引擎优化基本)

    【百度搜索引擎优化】如何快速了解百度搜索引擎优化的知识?(搜索引擎优化基本)

    在百度输入SEO优化,下拉框就有很多关键词,SEO优化工具,SEO查询,SEO技巧,SEO优化方案,SEO报价,SEO优化教程,SEO优化软件,SEO优化怎么做,等等,相关搜索也有很多长尾关键词。还可以加入一些群,找些大牛问下,向这些大牛学...

    2025.12.09 07:37:38作者:iseeyu

添加新评论