iOS app配置多环境变量和制做马甲包

需求一:不少公司的app都分红debug环境和release环境(多个接口域名),平时开发和测试都在debug环境,打包上线的时候才切换到release环境;需求二:公司要求制做马甲包,即在原来app的基础上,只修改app的名称,图标,LaunchImage,替换app中带有app名称的文本,并用另外一个开发者帐号发布,马甲包的数量不定。手动在代码里更改环境变量,替换图片确定是不可取的,这里咱们采用Configuration来实现这两个需求。定义好不一样的Configuration后,就能够分别设置 Build、Archive、Test等操做分别使用哪个 Configuration 进行编译,从而能够轻松地分离开各个环境变量的设置。git

1.新建Configuration

点击Project->Info,默认有Debug和Release两个Configuration,顾名思义Debug用于调试,Release用于发布,区别是Debug默认添加了预编译宏DEBUG=1,Release不能调试程序,而且Release编译时作了优化。点击Configurations选项卡下面的加号,分别复制一个Debug和Release的Configuration,这里我取名为Debug_a和Release_a,表明马甲包a的两个Configurationgithub

1.新建configurationapi

2.马甲包a的configurationapp

注意:新建完Configuration以后请从新执行pod install命令测试

2.新建Scheme

为上一步新建的Configuration再新建Scheme,这里我新建了两个Scheme,命名为马甲包a_release和马甲包a_debug,在Manage Schemes里面把右边的Shared选项勾选,不然在git上没法同步。优化

新建Schemeui

勾选Sharedspa

在Edit Scheme里面把Run和Archive模式改为对应新建的Build Configurationdebug

3.配置AppIcon和LaunchImage

新建一个App Icon和Launch Image文件夹,从新命名,拖入图片。3d

新建AppIcon和LaunchImage

选择Targets->Build Settings,搜索asset,在Asset Catalog App Icon Set Name 和 Asset Catalog Launch Image Set Name 配置各个Configuration所对应的图片文件夹名称。

4.配置App名称,Bundle ID 和 证书

4.1 配置App名称

在Project->Build Settings 点击加号选择Add User-Defined Setting],即增长用户自定义设置,添加一个App名称的设置,为不一样的Configuration设置不一样的App名字。

而后在info.plist中设置Bundle display name为咱们自定义的设置,${CusomAppName}。

4.2 配置Bundle ID和证书

不一样的马甲包多是由不一样的开发者帐号发布的,因此须要配置对应的bundle id 和 证书。

bundle id 在Targets->Build Settings 中的Product Bundle Identifier设置。

证书配置以下图

5.其余配置

在Targets->Build Settings->Preprocessor Macros中,能够根据Configuration配置不一样的预编译宏,根据这个预编译宏的不一样,在代码里面也能够有不一样的配置,好比渠道号,接口域名等。

#ifdef MaJiaA
#define kchannelCode @"majia_1"
#endif

#ifdef DEBUG
NSString *kServiceDomain = @"http://api.test";
#else
NSString *kServiceDomain = @"http://api.release";
#endif

6.总结

用这种方法能比较方便地实现多环境变量的配置,具体demo能够在github上下载

相关文章
相关标签/搜索