使用scheme配置iOS APP的多个环境
我基本是参考https://www.jianshu.com/p/83b6e781eb51这篇文章的,这里只是记录一下使用流程,捋一捋自己的思路。
现在开发APP起码有测试环境和正式环境,有条件的可能还有验收环境,预发布环境等等,
怎么方便的切换环境其实还是值得考虑一下的。
之前我自己一直是通过宏定义来切换,其实还算方便,改个宏定义的值就可以切换,
唯一不爽的是切换环境以后重新build要花很长时间,长到不能忍!
所以看到上面的文章后,立马实践了一下,
结论是:完全值得这么一折腾,可以说是一劳永逸的好方法。
流程如上面文章所说,我自己的实际情况如下:
1,我这里有三个环境,测试,预发布,正式,所以建了.test , .pre , .normal 三个scheme;
2,每个scheme都有debug和release之分,所以这里一共要有6个build configuration;
我这里是把Xcode自建的两个build configuration (debug和release)作为正式环境的两个 配置,
再分别复制两份,分别作为测试和预发布环境的 debug和release,
这里需要edit scheme来修改,是最最重要的地方
image.png
3,我这里只提供了第三方登录(qq,微信,微博),而第三方登录的key都是要和bundleId绑定的,
所以没法区分不同的bundleId,否则就没办法登录了,所以显示不同的app名字意义也不大,
就通通没有做,如要要做,也就是添加userDefined Setting,应该不难
4,不同环境的区分,其实就是url的不同,我这里是用宏定义来区分,
在一个统一的地方定义好
image.png
然后在配置buildConfiguration设置不同的宏定义即可
image.png
5,这里需要特别注意的是 scheme和buildConfiguration的关系
buildConfiguration是整个APP的配置,不同的配置就可以产生不同的效果(我们这里就是产生不同环境的APP)
而scheme是指target,buildConfiguration和test集合,可以理解为一个对应关系;
也就是说:
scheme决定了APP使用哪个配置来build,我们通过决定使用哪个scheme来决定最终使用了哪个环境!