You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Dev和Prod环境配置Firebase时Run Script执行失败求助

解决Firebase环境切换Run Script执行失败问题

问题诊断

你的脚本执行失败核心原因有两个:

  1. 语法错误:错误提示语句的引号未闭合,导致Shell解析出错
  2. 路径不匹配:脚本中定义的源文件路径可能与实际文件存放位置不符

修复后的脚本

替换原脚本为以下内容,已修正语法问题并优化路径逻辑:

# 定义源文件路径(根据实际存放位置调整,若Debug/Release在项目根目录则保留此写法)
GOOG_DEV="${PROJECT_DIR}/Debug/GoogleService-Info-Dev.plist"
GOOG_PROD="${PROJECT_DIR}/Release/GoogleService-Info.plist"

# 目标文件固定路径
GOOG_DST="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"

# 根据构建配置选择对应源文件
if [ "${CONFIGURATION}" == "Release" ]; then
  GOOG_SRC="${GOOG_PROD}"
else
  GOOG_SRC="${GOOG_DEV}"
fi

# 检查源文件是否存在
if [ ! -f "${GOOG_SRC}" ]; then
  echo "错误:找不到源文件 'GoogleService-Info.plist',路径为 '${GOOG_SRC}'"
  exit 1
fi

# 复制文件到目标位置
cp "${GOOG_SRC}" "${GOOG_DST}"

关键调整说明

  • 修复引号问题:原脚本echo语句末尾缺失单引号,导致Shell语法解析失败,现已补全
  • 路径修正:根据你提供的文件存放结构(项目根目录下的Debug/Release文件夹分别存放对应plist),移除了路径中的${TARGET_NAME}(若文件实际在Target子目录下,可重新添加该变量)
  • 错误提示优化:将英文提示改为中文,更直观定位问题

额外配置注意事项

  • 文件Target Membership:确保两个plist文件都已添加到项目中,且不要勾选任何Target的Membership,避免Xcode自动打包多余文件,由脚本负责复制正确版本
  • Run Script位置:将该Run Script阶段移动到Copy Bundle Resources阶段之后,确保复制操作在资源打包前完成
  • Shell环境:在Run Script设置中指定Shell为/bin/bash,避免zsh语法差异引发问题

验证方法

  1. 切换到Debug配置,执行Clean Build Folder(Cmd+Shift+K)后重新构建,检查App包内的GoogleService-Info.plist是否为Dev版本
  2. 切换到Release配置,重复上述操作,验证是否自动替换为Prod版本

内容的提问来源于stack exchange,提问作者lauwis premium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 21:05:18