具有不同firebase项目的Flatter iOS应用程序配置在生成环境的GOOGLE服务文件中显示错误GOOGLE_app_ID

具有不同firebase项目的Flatter iOS应用程序配置在生成环境的GOOGLE服务文件中显示错误GOOGLE_app_ID,ios,firebase,flutter,Ios,Firebase,Flutter,我有3个不同的Diverenet firebase项目方案,我想用我的xcode管理它们,我已经添加了所有的配置和脚本,但最后我得到了这个错误 无法从生成环境中获取谷歌服务文件中的谷歌应用程序ID 我尝试了许多解决方案,比如在项目目录中添加一个临时文件,还使用选项配置firebase应用程序,但都不起作用。 下面是我将文件复制到direcotry的脚本 if [ “${CONFIGURATION}” == “Debug-Production” ] || [ “${CONFIGURATION}”

我有3个不同的Diverenet firebase项目方案,我想用我的xcode管理它们,我已经添加了所有的配置和脚本,但最后我得到了这个错误

无法从生成环境中获取谷歌服务文件中的谷歌应用程序ID

我尝试了许多解决方案,比如在项目目录中添加一个临时文件,还使用选项配置firebase应用程序,但都不起作用。 下面是我将文件复制到direcotry的脚本

if [ “${CONFIGURATION}” == “Debug-Production” ] || [ “${CONFIGURATION}” == “Release-Production” ] || [ “${CONFIGURATION}” == “Release” ]|| [ “${CONFIGURATION}” == “Debug” ]; then
cp -r ${PROJECT_DIR}/Firebase/Production/GoogleService-Info.plist   ${PROJECT_DIR}/Runner/GoogleService-Info.plist 
echo "production plist Copied"
elif [ “${CONFIGURATION}” == “Debug-Beta” ] || [ “${CONFIGURATION}” == “Release-Beta” ]; then
cp -r ${PROJECT_DIR}/Firebase/Beta/GoogleService-Info.plist ${PROJECT_DIR}/Runner/GoogleService-Info.plist
elif [ “${CONFIGURATION}” == “Debug-Test” ] || [ “${CONFIGURATION}” == “Release-Test” ]; then
cp -r ${PROJECT_DIR}/Firebase/Test/GoogleService-Info.plist ${PROJECT_DIR}/Runner/GoogleService-Info.plist
fi
这是我的构建阶段命令


任何帮助都将不胜感激。

好的,我几乎工作了一整天,在尝试了所有解决方案之后,我找到了一个答案中没有提到的解决方案

  • 在项目中添加一个合适的Googleservice-info.plist,并检查复制文件和目标
  • 在脚本中,将cp更改为cp-r,并在粘贴文件名时从末尾删除文件名。它应该类似于
    ${PROJECT\u DIR}/Runner/
  • 每次脚本运行时,它都会替换文件,但不会替换它拥有的权限
我希望它对你也有用