在做公司的项目, 我们打包给测试组同事测试时, 通常都会打俩个包, 正式地址包和测试地址包.
在iOS上打俩个包需要提供俩个不同的BundleId, 那么我们每次打包的时候, 都需要去修改info.plist文件.
然而我们项目中不可能只有修改BundleId这一个参数, 还有微信正式测试的appkey, 一键登录正式测试的appkey, 还有一些权限的白名单这些. 当plist文件需要改动的参数变多的时候, 这每次发包都会变成一件很麻烦的时候. 此时配置多环境开发就能帮我们很好的规避这种频繁改动繁琐的事.
多环境配置有俩种方式:
1.多targets配置多环境开发:
2.Configurations+ Scheme + targets 来配置多环境开发《推荐这种方式, 这种方式可以更好的维护》
一. 在Configurations中创建新的环境
1. 因为项目自带debug(测试)、release(线上)环境,然后我们在开发中也会用到一些发开工具,但是我们不想在打包给测试同事测试或者发布线上时也会带上这些工具,这时就需要在创建一个供我们开发用的环境,我们命名为Develop环境。
2. 然后对debug、Develop、Release环境指定对应的xcconfig配置文件, 在配置文件中可以不同环境所对应的值
这几个文件就是对同一个字段配置不同的参数来做区分
3. info.plist文件中设置对应的项目名
二. 多Scheme配置
1. 选择Manage Schemes ...
2. 在这里添加新的Schemes,添加完毕之后,随便点击任一Scheme,会跳转到Edit Scheme界面。
3. 编辑Scheme, 建议Scheme选项全部选择对应的坏境,例如App-debug中的run、Archive等都选择了debug坏境,避免打包时环境错乱等问题。
到此Scheme也配置完毕了,接下来是targets的bundle Id 和 证书配置
三. 配置targets中不同环境的bundle Id 和 证书
1. 不同Bundle Id区分不同的应用
运行不同的scheme <debug、develop、release > 看看手机是否安装了3个不同的包~
四. 我们要用到开发环境,那么还有对开环境做一个条件编译的字段配置,然后在代码中才能区分开发和其他环境的判断
然后在代码中的判断
添加其他宏定义
在swift中添加了clang宏定义xxx不生效时,需要在SwiftCompiler-custom flags添加-dxxx即可