我为我的应用程序定义了不同的构建配置(Debug,Stage,Prod),并使用用户定义的构建设置:
在Info.plist
文件中设置Facebook登录和其他内容:
在这种情况下,$(USER_DEFINED_SETTINGS)
符号确实有效.
当我尝试设置Google SignIn时,需要使用其他.plist
文件(GoogleService-Info.plist
),并且我使用与文件相同的方式使用用户自定义设置Info.plist
,但它不起作用.
如何在自定义文件中使用用户定义的设置.plist
?如果我不能,我该如何解决这个问题?
这是不是可以使用用户定义的设置,定制的.plist文件,所以你必须在其他的方式来处理这个问题.
虽然,您可以将自定义.plist文件复制到正确的位置:
创建一个新文件夹(例如:GoogleServiceInfoPlists).
复制每个环境的所有.plist文件(例如:GoogleService-Info-Debug.plist, GoogleService-Info-Stage.plist和GoogleService-Info-Prod.plist).
添加新的src/Resources/GoogleServiceInfoPlists
(Xcode:Target-> Build Phases - >"+"按钮).
使用下面的脚本将给定环境的.plist文件复制(替换)到主目录(GoogleService-Info-Debug.plist
在我的情况下):
cp "${SRCROOT}/src/Resources/GoogleServiceInfoPlists/GoogleService-Info-$CONFIGURATION.plist" "${SRCROOT}/src/GoogleService-Info.plist"
GoogleService-Info-Stage.plist
- 预定义,它指向您的项目位置.
GoogleService-Info-Prod.plist
-预定义的,这是你的构建配置,在我的情况:Run Script Phase
,src
,src/Resources/GoogleServiceInfoPlists/GoogleService-Info-Stage.plist
.您可以在Xcode:Project(不是目标!) - > Info中更改此设置.
请注意,src/GoogleService-Info.plist
文件必须添加到Xcode项目(Build Phases-> Copy Bundle Resource s),而${SRCROOT}
文件不一定.
更新:
请记住,您的新Run Script必须放在Copy Bundle Resources构建阶段之前.否则,它将无法工作,因为它将被复制得太晚,并且将使用默认版本的.plist文件.