最近几个项目同时准备上线,几个项目的服务器地址不断在开发环境,测试环境,生产环境间切来切去,苦不堪言。探索一番之后,发现可以使用预编译宏结合工程配置后,通过“Edit Scheme”来简单实现,遂作此文以记录。
新任务获得: 使用预编译宏结合“Edit Scheme”功能以快速切换服务器地址
手忙脚乱方案
这个么就是之前一直在用的傻缺方案。
//dev enviroment
let serverlUrl = https://dev-serverUr
...
//test enviroment
let serverUrl = https://test-serverUr
...
//dist enviroment
let serverUrl = https://dist-serverUr
...
首先把服务器地址抽出来作全局变量;而后根据实际需求复制若干套,并赋予对应的值;最后用的时候么就保留对应的那一套,再注释掉剩余的配置。然后注释来注释去注着注着就晕了。。。
便捷方案
看看炼成书,查阅 《便捷配置服务器地址》 项:Preprocessor Macro + Project Configuration + Edit Scheme = 便捷配置服务器地址
这个方案的实际上是脱胎于上面那个方案,核心思想是优先运用预编译宏来划分开来各个环境下的服务器地址,再在工程配置文件中创建各环境的键并与对应的预编译宏关联,最后通过切换编译环境来实现服务器地址的替换
预编译宏配置各环境下服务器地址
类似于上面的傻缺方案,我们依然需要把服务器地址抽出来作全局变量;而后根据实际需求复制若干套,并赋予对应的值。只不过加入预编译宏来判断各个环境下服务器地址该取那一段的值。
#if DEV
let serverlUrl = https://dev-serverUr
。。。
#elseif TEST
let serverUrl = https://test-serverUr
。。。
#elseif DIST
let serverUrl = https://dist-serverUr
。。。
#else
#endif
上述代码就是申明了三个编译环境配置: DEV, TEST, DIST(这个名字随便取)。这里的三个编译环境配置,会作为预编译宏在下一步中用到。
配置系统参数
这里有两步,首先需要在项目文件中(projectName.xcodeproj)- PROJECT栏中Info分区的Configuration块里建立对应环境的键
第二步就是把对应环境的键与第一项中自定义的预编译宏匹配上
调整运行参数
全部配置好了之后,可以在Edit Scheme
中选择需要的配置以达到快速更换服务器地址的目的
方便的改些其他玩意儿?
现在我们有三个configuration: Debug, Dev, Release, 上面展示了我们如何快速的改变全局变量(服务器地址),那延展开了也许我们可以改些其他的玩意儿,比如App Name?
配置各环境下的App Name
先在项目文件中(projectName.xcodeproj)- TARGETS栏中Build Settings分区中找一找有没有对应的键,找到的么就设置下各configuration的值,例如 Asset Catalog App Icon Set Name - 应用图标
那对于没找到的,我们可以点 Build Settings 里的 + 号,添加一个 User-Defined Setting,然后同上一遍设置下各configuration的值
尾声
通过在项目文件Info分区下建立各个环境的Configuration项,尔后配置各个Configuration项中的键值,最后在Scheme下使用不同的Configuration,就可以很方便的修改一些(全局变量)系统参数
This artical is avaliable under WTFPL-V2. Generally, everyone is permitted to copy and do what the fuck you want to.
P.S. Even so said, your kindly declaration that inspired from this site - Chen’s Alchemy would be appreciated
本文链接:http://yoursite.com/2017/02/10/swift-ProjectSet-agileServerUrl/