ios – 在自定义.plist文件中使用用户定义的构建设置

我为我的应用程序定义了不同的构建配置(Develop,Stage,Prod),我使用用户定义的构建设置:

在Info.plist文件中设置Facebook登录和其他内容

在这种情况下,$(USER_DEFINED_SETTINGS)符号工作正常.然后我尝试设置Google SignIn,这需要使用额外的.plist文件(GoogleService-Info.plist),并且我使用的是用户定义的设置,就像在Info.plist文件中所做的一样,但它不起作用.

如何在自定义.plist文件中使用用户定义的设置?如果我不能,我该如何解决这个问题?

解决方法

不能在自定义.plist文件中使用用户定义的设置,因此您必须以其他方式处理此设置.

这是我做的解决办法:

>创建一个新的文件夹(对于exmaple:GoogleServiceInfoPlists).
>复制每个环境的所有.plist文件(GoogleService-Info-Debug.plist,GoogleService-Info-Stage.plist和GoogleService-Info-Prod.plist).
>添加新的运行脚本(Xcode:Target->构建阶段).
>使用下面的脚本将给定环境的.plist文件复制(替换)到主目录(在我的情况下是src):

cp "${SRCROOT}/src/Resources/GoogleServiceInfoPlists/GoogleService-Info-$CONfigURATION.plist" "${SRCROOT}/src/GoogleService-Info.plist"

${SRCROOT} – 预定义,它指向您的项目位置.

$CONfigURATION – 预定义,这是您的构建配置,在我的情况下:Debug,Prod.您可以在Xcode:Project(不是目标!) – >信息中更改此内容.

请注意,src / GoogleService-Info.plist文件必须不必要地添加到Xcode项目(.xcodeproj)和/ src / Resources / GoogleServiceInfoPlists / GoogleService-Info- *文件中.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...