当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在自定义.plist文件中使用用户定义的构建设置》经验,为你挑选了1个好方法。

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

在此输入图像描述

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

在此输入图像描述

在这种情况下,$(USER_DEFINED_SETTINGS)符号确实有效.

当我尝试设置Google SignIn时,需要使用其他.plist文件(GoogleService-Info.plist),并且我使用与文件相同的方式使用用户自定义设置Info.plist,但它不起作用.

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



1> KlimczakM..:

这是不是可以使用用户定义的设置,定制的.plist文件,所以你必须在其他的方式来处理这个问题.

虽然,您可以将自定义.plist文件复制到正确的位置:

    创建一个新文件夹(例如:GoogleServiceInfoPlists).

    复制每个环境的所有.plist文件(例如:GoogleService-Info-Debug.plist, GoogleService-Info-Stage.plistGoogleService-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文件.


+1尽管我不喜欢该解决方案本身,但是我找不到其他解决方案。Google应该至少提供通过API更改跟踪标识符的方式(而不是自己修改.plist)。
@pixelfreak,您是否尝试过单击并拖动构建阶段以确保在链接文件之前进行复制?
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有