App多环境配置探索
简介
App开发为什么需要使用多环境呢?原因很简单,就是为了 App 或 App 新功能
在对所有用户开放之前能经过充分测试与验证,将问题降到最低,让用户有个好的使用体验。有了多环境,内部测试将完全与发布的产品独立开来,互不影响,这就是多环境的好处。
环境配置
App 的环境配置方案有很多种,这里我使用一种个人认为比较好的方式来实现, 即 xcconfig
与 plist
相结合的方式 。通常情况,我们会给 app 配置 3 个服务器,即 Development
, Staging
, Production
。那 App 又如何配置,才能很方便的去连接这 3 个服务器呢?这就是我们今天想要讨论的问题。 首先,我们将 App 的运行环境分为三种:
Development
Development
即我们常说的开发环境,开发人员在此环境中开发与自测, 连接Development
服务器。Staging
正式产品线上环境前的预演,也就是模拟产品线上环境,连接Staging
服务器。 QA在Staging
上对新版本做最后一轮测试, 通过后才能发布到产品线上。Production
最终产品线上环境,连接Production
服务器,App直接向所有用户开放。
Debug / Release
iOS App 的工程配置默认包含 Debug
和 Release
两种模式,那两者有什么区别呢?
Debug
Debug
为调试模式,编译器不会对代码做最后的优化,包含的程序信息多,非常方便设置断点进行调试。所以这种模式下打包的 App 体积会比较大。Release
Release
为发布模式,编译器最终会对代码做优化,不包含调试信息,所以打包出来的 App 体积更小,运行速度也越快,但不便于调试。
配置多环境
具体的步骤我就不写了,大家应该都知道如何去做,如果不知道如何操作,可以参考这里,你也可以在这里下载完整演示项目Github仓库。
新建 xcconfig 文件
首先,我们新建 3 个工程配置文件, 例如 Development.xcconfig
, Staging.xcconfig
, Production.xcconfig
, 其中的一个配置文件内容如下:
// 因为使用了 Pods, 所以需要将 Pods 生成的配置文件包含进来. 如果不使用 Pods, 可以去去掉这一行。 |
新建 Plist 配置文件
然后我们新建 3 个 Plist 配置文件,将需要加的其它配置项用 plist 文件来存储,方便解析。例如我们创建以下 3 个 文件: Development.plist
, Staging.plist
, Production.plist
, 其中一个配置文件内容如下:
<?xml version="1.0" encoding="UTF-8"?> |
修改 Info.plist
为了能在程序中从 plist 配置文件中读到配置项,我们需要在 Info.plist
文件中加入一个 key, 比如命名为: ConfigurationPlistFileName
, value 设置为$(CONFIGRATION_PLIST_FILENAME)
, CONFIGRATION_PLIST_FILENAME
由之前新建的 xcconfig
文件定义。这样我们就可以在 App 中加载 plist 配置文件了。
![Info Plist](https://gitee.com/evanxlh/Resources/raw/master/blog/app-multi-environments/info-plist.png]
配置工程
- 首先点击你的工程,如下图所示。然后在 Configurations下新增配置,记住
Development
,Staging
,Production
的 Debug 模式都要从 Debug复制出来得到,Development
,Staging
,Production
的 Release 模式都要从 Release 复制出来得到。
- 给
Development
,Staging
,Production
的Debug
和Release
模式指定对应的xcconfig
文件。
Plist 配置文件解析
import HandyJSON |
最后我们就可以直接用 AppConfiguration.values
获取所有的配置项了。
Scheme 创建
首先分为为 Development
, Staging
, Production
环境配置 创建 Scheme:
然后为每一个 Scheme 进行配置:
使用 Pods 注意事项
因为我们自己给工程添加了 xcconfig
文件,所以 pod install
时不会再去设置工程的配置文件。这时需要我们在自己创建的 xcconfig
文件中将 Pod 的 xcconfig
文件引用进来,然后执行以下操作:
- 删除 `Pods`、`Podfile.lock`、`xcworkspace`文件
- 重新执行 `pod install`
结束语
好了,配置完成。
如果一些操作不熟悉,你也可以参考这篇文章:
https://thoughtbot.com/blog/let-s-setup-your-ios-environments
...
...
如果您喜欢这篇文章,或觉得对您有用的话,欢迎发表评论,您也可以随意的分享或转载这篇文章。如果文章中的图片有侵犯您的版本,请联系作者将期删除。谢谢您的支持!