在一个目标(GCM)中有两个GoogleService-Info.plist(或多个)



我正在一个应用程序中集成GCM,我们碰巧为同一目标有几个构建配置,其中一些使用不同的BundleID(我们有不同的帐户、企业和应用商店),所以如果我们想在两者中启用GCM推送通知,我们需要两个不同的GoogleService-Info.plist文件(每个文件对应不同的Bundle ID)。我找不到一种方法来告诉GCM-sdk从不同的命名文件初始化,而不是从默认文件初始化。有人知道这是否可能吗?

我可以想出两种解决方案,但我宁愿不去做。-在应用程序启动后(或之前)将捆绑包id写入plist文件-创建不同的目标,每个目标都有不同的plist文件

非常感谢。

谨致问候,Javier

我遇到了类似的问题:在自定义.plist文件中使用用户定义的构建设置

您可以使用Build Phase Script将正确的.plist文件复制到您的位置:

  1. 创建一个新文件夹(例如:GoogleServiceInfoPlists
  2. 将所有.plist文件复制到那里(例如:GoogleService Info Debug.plistGoogle Service Info Stage.plist谷歌服务信息棒列表
  3. 添加新的Run Script Phase(Xcode:目标->构建阶段->"+"按钮
  4. 使用下面的脚本将给定环境的.plist文件复制(替换)到主目录(在我的情况下是src):

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

请注意,src/GoogleService-Info.plist文件必须添加到Xcode项目中(构建阶段->复制捆绑包资源),而/src/Resources/GoogleServiceInfoPlists/GoogleService-Info-*文件则不一定。

相关内容

最新更新