从Xcode配置生成代码

如果您还使用xcconfig文件来管理不同的环境betastaginglive那么您可能已经注意到,通过plist从xcconfig读取值并不是真正的干净方法,它也不提供编译时安全性。 因为有时您忘记了将配置值添加到其他环境,并且预处理器宏不再能够读取这些值。

在plist中公开配置环境值

要从配置中读取值,旧的方法是在info.plist添加条目,然后在代码运行时中读取它们。 如果这些值不在特定配置中,则该应用程序将在运行时崩溃。

将生成的文件从finder中拖放到Xcode项目中,以便可以对其进行引用。

将文件BuildConfig.generated.swift添加到gitignore以便可以在每次构建时生成它。 否则,您将经常看到该文件在更改,因为您将经常在debugrelease配置之间进行切换。

让我们将网址转换为它的类型

另一个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的链接。