ios - 为不同的构建方案使用不同的 GoogleService-Info.plist

标签 ios google-cloud-messaging google-signin

我正在为产品使用一个构建方案,一个用于暂存(具有 2 个不同的包标识符),我正在尝试为每个方案使用一个单独的 GoogleService-Info.plist。 有什么方法可以手动选择初始化 GCM(和 goole 登录)时使用的 plist 文件?或者是否可以避免使用 plist 并手动进行设置?

谢谢!

最佳答案

详情

测试于:

  • Xcode 9.2
  • Xcode 10.2 (10E125)
  • Xcode 11.0 (11A420a)

解决方案

  1. 在项目中创建包含所有 Google.plist 文件(具有不同名称)的文件夹

enter image description here

  1. 添加运行脚本

enter image description here

Do not forget to change PATH_TO_GOOGLE_PLISTS value

代码

PATH_TO_GOOGLE_PLISTS="${PROJECT_DIR}/SM2/Application/Firebase"

case "${CONFIGURATION}" in

   "Debug_Staging" | "AdHoc_Staging" )
        cp -r "$PATH_TO_GOOGLE_PLISTS/GoogleService-Info-dev.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" ;;

   "Debug_Poduction" | "AdHoc_Poduction" | "Distribution" | "Test_Poduction" )
        cp -r "$PATH_TO_GOOGLE_PLISTS/GoogleService-Info-prod.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" ;;

    *)
        ;;
esac

Build schemes names

enter image description here

关于ios - 为不同的构建方案使用不同的 GoogleService-Info.plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615405/

相关文章:

ios - ios 9.0 无法添加谷歌登录

android - 谷歌登录后禁用过渡

android - 无法在 Android 上设置范围 Google 登录

ios - 当应用程序被杀死时向网络服务发送请求? ( swift 3)

android - 如果设备收到来自 fcm 的推送通知,如何向处于终止状态的 android 应用程序显示/通信/广播消息

android - GCM 服务对于大规模推送通知是否可靠?

android - GCM 通知 setAutoCancel(true) 在 Android 5.1.1 中不起作用

ios - Whatsapp 没有从 UIActivityViewController 中的 assetURL 中选择视频

ios - 同时播放两首受 DRM 保护的不同音量的歌曲

ios - 如何将背景图像设置为 AVMutableVideoCompositionInstruction