美文网首页
通过多个scheme解决多环境问题

通过多个scheme解决多环境问题

作者: LeeLeCoder | 来源:发表于2017-06-26 16:58 被阅读0次

项目开发中,我们经常会遇到多种环境的问题,不同的环境通常会有不同的参数值,甚至会执行不同的代码。当遇到这种情况,我们可以通过runtime调用不同的selector来实现,这里介绍通过不同的schemes来切换不同配置文件。在代码中定义不同的宏来控制最后工程的不同代码。同时,这种方法可以减少编译时间,提高开发效率。

我自己碰到的使用场景是,我们公司的域名一共有4套:

  • 开发环境
  • 测试环境
  • 预发布环境
  • 正式环境

1 配置 Build Configuration

这个时候,就会有多套域名,每次打包时,就会特别混乱。(注释掉现在使用的域名,打开原本注释掉的那部分,出差错的可能蛮高的,而且不利于阅读)这个时候,我们就使用它来针对4个环境下不同域名做配置。

1.1 添加Configuration

这里我们添加Dev、Test、Pre、Release。

Configuration配置

2. 配置多个schemes

1506145783006.jpg

2.1 编辑scheme

添加完第1步的Configuration之后,在Edit Scheme里就会看到新添加的配置项


2.2 更改Preprocessor Macros

第1步里我们直接复制了Debug的配置项,那这里的值就会有问题,需要自己设置。

2.3 在程序里配置对应的Configuration下不同域名

@interface NPDomainConfigure : NSObject

extern NSString *const SERVER_URL;

@end

@implementation NPDomainConfigure

#if DEV_ENV
NSString *const SERVER_URL = @"https://dev.xxx.cn";
#elif  TEST_ENV
NSString *const SERVER_URL = @"https://test.xxx.cn";
#elif PRE_ENV
NSString *const SERVER_URL = @"https://pre.xxx.cn";
#elif RELEASE_ENV
NSString *const SERVER_URL = @"https://xxx.cn";
#else

@end

2.4 测试

运行程序,修改Scheme下不同的Configuration,就能得到不同的值,那结果就是正确的了。

基于以上的实验,app还可以在不同环境下配置不同的AppIcon和AppName

3. AppIcon

使用Asset Catalog,分别给各种环境下配置APP 图标,去Target - Build Settings里搜索Asset Catalog App Icon Set Name这一项,如下图所示配置即可:

屏幕快照 2017-09-21 下午8.04.23.png

4. App Name

Target - Build Settings里点+号,添加一个User-Defined Setting
比如我们请一个叫APP_DISPLAY_NAME的key值,如下图配置:

然后进到Target - Info里,修改Bundle name为$(APP_DISPLAY_NAME)

5. 打包配置

开发中可能把测试环境下的版本打包发给Apple,为了避免这件事,可以做一下设置。比如将Release环境以外的Skip Install配置成NO,其他环境就不会Archive出ipa了。

屏幕快照 2017-09-21 下午8.12.02.png

参考:Troubleshooting Application Archiving in Xcode

相关文章

  • 通过多个scheme解决多环境问题

    项目开发中,我们经常会遇到多种环境的问题,不同的环境通常会有不同的参数值,甚至会执行不同的代码。当遇到这种情况,我...

  • iOS Scheme多环境运行配置

    多环境运行的配置流程 1.配置多个环境的scheme 2.配置多个.xcconfig 选择Target -> Ne...

  • Xcode简易多个scheme(多环境)配置

    有时候,项目过程中,需要配置多个环境的版本,例如:开发版、预生产、正式版。这个时候就需要在xcode的项目中,含有...

  • Xcode多环境配置

    Xcode多环境配置:多Target,多Scheme,多xcconfig 核心: 通过某种方式,让指定的代码和资源...

  • python之Flask

    Python虚拟环境 python虚拟环境是为了解决电脑上存在一个框架的多个版本,使用虚拟环境解决这个问题 通过p...

  • iOS:多环境配置

    1.多target配置配合多Scheme 1.1.创建多个target 点击Duplicate,创建target,...

  • Jenkins持续集成实战笔记

    更新于2016.02.24:1.No scheme问题的解决2.Code Sign Error问题的解决3.关于....

  • 微服务下 Spring Boot 应用多环境发布

    说明 解决微服务在多套环境发布的问题,解决开发环境和预发环境切换的问题,支持 N 套开发环境水平扩展。 Sprin...

  • iOS APP 多服务器环境分离

    目录 多环境场景介绍 多环境分离方法粗线介绍 多环境分离方法演示 遇到的问题总结 致谢 每个App项目可以有多个环...

  • 由scheme导致APP图标消失问题

    参考文章: 由scheme导致APP图标消失问题 通过html跳转APP时需设置scheme,在html中添加跳转...

网友评论

      本文标题:通过多个scheme解决多环境问题

      本文链接:https://www.haomeiwen.com/subject/isdccxtx.html