推广

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

iseeyu2年前 (2024-02-22)推广121

WechatIMG74.png

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

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

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

WechatIMG75.png

需要执行

pod install  

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

3.新建Scheme

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

WeChat122fc3f32976a80c384415413b5dacd7.png

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

WechatIMG76.png

4. 新建User-defined Build Settings

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

WechatIMG77.png

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

WechatIMG79 1.png

5.配置和获取环境变量

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

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")

WechatIMG81.png

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/56430.html

相关文章

这些话语,有着穿越时代的能量

当我们看到好人时,会想起他;当我们做好事时,会成为他。穿越时空,雷锋精神依旧滚烫,依旧直抵人心。今年是雷锋因公殉职60周年,一起重温长沙伢子雷锋的这些话语!来源: 长沙晚报...

视频营销(短视频营销)。

视频营销(短视频营销)。

在这个短视频大行其道的时代,各大品牌纷纷寻找如何利用这种新型媒体的方法。如果你是一个品牌主,恭喜你,你找对了地方。接下来,我们将一起探索如何运用短视频进行品牌营销。而且,我们保证,这将是一场既有益又有趣的旅程! 你可能会说,短视频,那不就是把产品录个视频,然后发出去吗?哎呀,如果只是这样...

对于百度竞价预算计划该怎样做。

对于百度竞价预算计划该怎样做。

对于百度竞价的费用,每日的预算,就是控制每日的广告费。为了避免突然加大流量造成账户广告费的消耗浪费。账户的预算对于整个账户的质量提升也是有帮助的,我们要做到账户中时时都有费用,在有效的时间段内,可以最大程度的使用线下的钱做更多有用的事。 那么这就要我们思考一下了,该怎样设置每日预算的额度呢? 每...

优秀的网站必须要具备的四大特性。

优秀的网站必须要具备的四大特性。

我想在这里看文章的人,都是站长们,我们每个人都有自己的网站,我们的网站就像是自己的孩子一样,每天去照顾它,呵护它,我们就像是这个网站的父母一样。每个父母都是望子成龙,望女成凤,那么我们对于的网站也是一样,我们想让它变得越来越优秀。那么好的网站要具备哪些特性呢? 1.现实性 好的网站一定要有现实性...

傅盛:拆掉思维的栅栏,人与人的差别就出来了 | 21读书

傅盛:拆掉思维的栅栏,人与人的差别就出来了 | 21读书

每周一本书 让阅读,丰满人生 有一年年底,我独自一人,从北京开车到广州,一路近3000 公里,都在思考一个问题:人和人的差别究竟在哪?人和人之间为什么会有差别?我想到了一个词:拆掉的栅栏。 后来,我在机场看到了《拆掉思维里的...

面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来…

面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来…

image 头一次访问,有初始化连接和 SSL 开销 image 初始化连接和 SSL 开销消失了,说明使用的是同一个 TCP 连接 持久连接:既然维持 TCP 连接好处这么多,HTTP/1.1 就把 Connection 头写进标准,并且默认开启持久连接,除非请求中写明...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片