从Xcode配置生成代码
如果您还使用xcconfig
文件来管理不同的环境beta
, staging
和live
那么您可能已经注意到,通过plist从xcconfig
读取值并不是真正的干净方法,它也不提供编译时安全性。 因为有时您忘记了将配置值添加到其他环境,并且预处理器宏不再能够读取这些值。
在plist中公开配置环境值 要从配置中读取值,旧的方法是在
info.plist
添加条目,然后在代码运行时中读取它们。 如果这些值不在特定配置中,则该应用程序将在运行时崩溃。将生成的文件从finder中拖放到Xcode项目中,以便可以对其进行引用。
将文件
BuildConfig.generated.swift
添加到gitignore
以便可以在每次构建时生成它。 否则,您将经常看到该文件在更改,因为您将经常在debug
和release
配置之间进行切换。让我们将网址转换为它的类型
另一个sed😉
sed -E's /“ http。* / URL(string:&)!/'将此添加到同一文件将成为
echo“ //生成的文件,请不要编辑” printf“ /// \ n // \ n //由BuildConfig.sh \ n” printf“ import Foundation \ n \ n” echo“ struct BuildConfig {” echo“ fileprivate init (){}“ env | \ grep” buildConfig_“ | \ sed“ s / buildConfig_ / static let /” | \ sed -E's /=(.*)/ =“ \ 1” /'| \ sed -E's /“ http。* / URL(string:&)!/'echo”}“这就是最终的
BuildConfig.generated.swift
的最终外观最后,如果任何环境配置中都缺少某些内容,那么我们将得到一个编译时错误,而不是运行时错误,并且不再污染
info.plist
要查看所有实际情况,请访问Github repo的链接。