如何避免将反向的客户端ID硬编码到iOS Info.plist中以供开发人员/产品Google登录?
我正在用Firebase开发Flitter移动应用程序 我需要单独的Firebase环境进行开发和生产 我将按照此进行设置 问题是当我为iOS实现google身份验证时,因为在Runner中 我不能将此如何避免将反向的客户端ID硬编码到iOS Info.plist中以供开发人员/产品Google登录?,ios,firebase,flutter,firebase-authentication,google-signin,Ios,Firebase,Flutter,Firebase Authentication,Google Signin,我正在用Firebase开发Flitter移动应用程序 我需要单独的Firebase环境进行开发和生产 我将按照此进行设置 问题是当我为iOS实现google身份验证时,因为在Runner中 我不能将此反向的客户机ID硬编码到Info.plist中,因为它与我的开发和生产环境不同 是否有方法在Info.plist中指定变量,以便针对不同的环境获得正确的REVERSED\u CLIENT\u ID 我正在使用此脚本复制正确的谷歌服务信息.plist: if [ "${CONFIGURATION}"
反向的客户机ID
硬编码到Info.plist
中,因为它与我的开发和生产环境不同
是否有方法在Info.plist
中指定变量,以便针对不同的环境获得正确的REVERSED\u CLIENT\u ID
我正在使用此脚本复制正确的谷歌服务信息.plist
:
if [ "${CONFIGURATION}" == "Debug-prod" ] || [ "${CONFIGURATION}" == "Release-prod" ] || [ "${CONFIGURATION}" == "Release" ]; then
cp -r "${PROJECT_DIR}/Runner/Firebase/Prod/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"
echo "Production plist copied"
elif [ "${CONFIGURATION}" == "Debug-dev" ] || [ "${CONFIGURATION}" == "Release-dev" ] || [ "${CONFIGURATION}" == "Debug" ]; then
cp -r "${PROJECT_DIR}/Runner/Firebase/Dev/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"
echo "Development plist copied"
fi
我到处寻找答案,但找不到!因为这个,我完全被封锁了
谢谢 我无法发表评论,但我能找到的最接近的答案是:(下面是一个为颤振修改的示例,请在遵循此示例之前检查您的路径!)
找不到配置文件:“GoogleService Info.plist”,则您可能必须在Runner文件夹中添加默认的GoogleService Info.plist
,尽管它已被上述链接中脚本的副本所取代。
为了快速开发,您可以将dev和prod
REVERSED\u CLIENT\u ID
s添加到您的url方案中,并且您的应用程序将使用您在AppDelegate
中初始化的应用程序。我的想法是,对于dev和prod环境,您拥有不同的GoogleService-Info.plist文件的方式,为开发和产品环境保留不同的Info.plist文件和正确的反向客户端ID。在脚本中包含一行代码,用于将Info.plist文件复制到iOS/Runner/目录中。我可以通过创建一个特定于环境的用户定义变量并将该变量拉入Info.plist来解决此问题
我使用本文中的说明将应用程序设置为连接到两个firebase项目(dev和prod):
千英尺的总结是,对于每个开发和产品,您最终会得到一个GoogleServices-Info.plist文件,该文件在构建时复制到正确的位置
要设置两个反向\u客户端\u ID:
Debug prod=com.googleusercontent.apps.{prod client id}
Profile dev=com.googleusercontent.apps.{dev client id}
Profile prod=com.googleusercontent.apps.{prod client id}
Release dev=com.googleusercontent.apps.{dev client id}
Release prod=com.googleusercontent.apps.{prod client id}
有关于这个问题的更新吗?这不是一个真正的答案,而是另一篇文章的评论。请将此移到评论部分。
PATH_TO_GOOGLE_PLISTS="${PROJECT_DIR}/Runner/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