如何配置项目的xcconfig文件来进行项目的多环境管理
创建对应的XCCONFIG
创建文件并且关联上项目
然后配置configurations的config文件关联
分别创建几个环境
- dev
- sit
- uat
- prod
关联xcconfig文件
创建2个configurations ,dev 和 sit 复用 debug , uat和prod 复用release
然后一一关联上上一步中创建的xcconfig文件
创建scheme
分别创建4️⃣个scheme来读取对应环境下xcconfig文件,这样就完成不用环境的关联和隔离
读取xcconfig文件上的配置
配置一个baseurl 这里用了百度
然后去Info.plist读取baseurl ,并且打印出来
读取配置到plist文件
打印baseurl
import Foundation
class LocalReader: NSObject{
static func readLocalPlist(key: CustomerKeyword) -> String{
let path = Bundle.main.path(forResource: "Info", ofType: "plist")!
let infoDic = NSDictionary(contentsOfFile: path)!
let result = infoDic["\(key.rawValue)"] as? String ?? ""
// Console.log("readLocalPlist:"+result)
return result
}
}
创建一个localreader类去处理这个模块的功能 , 通过输入关键字来读取对应值 并且打印出来
到此 xcconfig的配置和值的读取就处理完成了,简单说明一下读取的生命周期 。其实就是在项目编译的过程会读取xcconfig的值并且关联到Info.plist键值上去。然后我们就可以读取关联到.plist上的key读取到我们在xcconfig上配置的值。
如果配置了xcconfig以后发现pod出现问题请移步看看我上一个文章。
关于按照教程XCCONFIG 配置以后无法打release包的坑
按照上述配置 的同学在打release包遇到报错可以看这里 报错原因是因为 我们的打包需要一个release xcconfig 和一个debug的xcconfig 所以 我们在创建的时候 要每一个环境 都创建它们的 release 和 debug config 。 如 SIT-DEBUG.xcconfig 和 SIT-RELEASE.xcconfig 两种。
并且按照两种链接分别导入cocoapods生成的头文件