iOS 配置环境变量,xcconfig文件

为什么要配置环境变量

  • 在App开发过程中,我们一般会遇到在多个环境中切换,比如开发,发布环境, 有时可能还会增加更多的环境,比如开发,发布,测试,内测等等,如果在代码中仅仅使用if .. else 等句式去区分,那么就可能会导致代码冗余,没有做好解耦
  • 在xcode中,可以使用xcconfig文件来区分不同的环境,一个xcconfig文件就对应一套开发环境

配置流程

  • 新建xcconfig文件


  • 添加新的环境到工程,并关联xcconfig文件

  • 在xcconfig文件设置对应的环境变量

    • 如果使用了cocoapods,则需要重新pod install,pod会根据当前工程生成不同的 Pods-xcconfig文件,在自己的xcconfig文件中,只需要include进来

  • 使用环境变量
    • 取配置文件中的值的方式
        $(TYPE) // 取出配置文件中TYPE的值
      
    • 比如需要定义一个BASE_URL字段
      • 在xcconfig文件中定义好字段

        BASE_URL = bmall-qa.camera360.com
        
      • 为了能在代码中,获取到改字段,则通过info.plist文件,将BASE_URL添加到info.plist中,key为BASE_URL, 值为 $(BASE_URL)


      • 在代码中使用,这时代码运行时,就会根据当期所处的环境,给出不同的值

 static var baseURL: URL {
        let releaseURL = URL(string: "https://bmall.camera360.com")!
        guard let infoDictionary = Bundle.main.infoDictionary else {
            return releaseURL
        }
        
        guard let baseURLStr = infoDictionary["BASE_URL"] as? String else {
            return releaseURL
        }
        
        guard let baseURL = URL(string: "https://" + baseURLStr)  else {
            return releaseURL
        }
        return baseURL
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容