美文网首页工程配置iOSios
[iOS 开发] 如何针对不同环境配置 info.plist 中

[iOS 开发] 如何针对不同环境配置 info.plist 中

作者: ShannonChenCHN | 来源:发表于2017-02-05 16:12 被阅读101次

    前言
    在代码中,我们可以通过 #ifdef DEBUG 宏定义来针对不同环境做不同设置,但是对于 info.plist 中的属性,我们又该如何针对不同环境(DEBUG vs RELEASE)做不同配置呢?

    前两天,在适配 HTTPS 时,由于我们的测试环境服务器没有启用 HTTPS,只有正式环境的服务器启用了 HTTPS ,所以在项目中需要针对不同环境做不同的 ATS 配置处理。这个配置也涉及到 info.plist 中 ATS 相关属性的修改,这也就引出了 info.plist 是否可以动态配置的问题了。

    一开始,我想 info.plist 本质上是一个 XML 文件,那么 XML文件中可不可以通过 #ifdef DEBUG 宏定义来动态配置呢?然后我就尝试了一下这种做法,结果编译不通过。实践证明此方法不可行。

    然后,我又想 build setting 中不是可以分别设置 debug 和 release 模式下的一些参数么,于是到 build setting 中搜索了一下 info.plist,没想到还真有这个模块,release 和 debug 模式的默认值都是 info.plist。

    接下来,我自己也复制了一个 info.plist,并改名 infoDebug.plist,然后修改了一些针对 debug 模式的参数,最后回到 build setting 中,将对应的选项值改为 infoDebug.plist,Command+B 编译一下之后,大功告成!

    info.plist for DEBUG mode.jpeg info.plist for RELEASE mode.jpeg info.plist configuration in build setting.jpeg

    除此之外,如果我们如果需要动态配置开发或者生产网络环境, 以及在多项目和运行中切换环境,可以借助 Xcode 配置文件 xcconfig 来实现。

    参考资料
    1.Xcconfig变量设置说明: http://www.jianshu.com/p/44c82630bd50

    2.iOS开发必备 - 环境变量配置(Debug & Release): http://blog.startry.com/2015/07/24/iOS_EnvWithXcconfig/

    相关文章

      网友评论

        本文标题:[iOS 开发] 如何针对不同环境配置 info.plist 中

        本文链接:https://www.haomeiwen.com/subject/gkseittx.html