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

Flutter Flavors iOS Scheme切换时GoogleService-Info.plist未生效问题

问题排查与解决方案

1. 调整Build Phase脚本执行顺序

脚本必须在[CP] Pods Resources步骤之前执行,否则Pods资源复制完成后,脚本的覆盖操作不会生效。

  • 操作:打开Xcode的Runner Target → Build Phases,将你的复制脚本拖拽到[CP] Pods Resources上方。

2. 校验脚本逻辑准确性

确保脚本能正确识别当前Build Configuration,并复制对应目录的plist文件。以下是可参考的脚本模板(根据你的实际目录结构调整):

# 获取当前Build Configuration
CONFIGURATION="${CONFIGURATION}"

# 定义各环境plist路径
DEV_PLIST="${PROJECT_DIR}/config/dev/GoogleService-Info.plist"
STAGING_PLIST="${PROJECT_DIR}/config/staging/GoogleService-Info.plist"
PROD_PLIST="${PROJECT_DIR}/config/prod/GoogleService-Info.plist"

# 目标路径:Runner目录下的plist文件
TARGET_PLIST="${PROJECT_DIR}/Runner/GoogleService-Info.plist"

# 根据配置复制对应文件
if [ "${CONFIGURATION}" = "Debug" ]; then
    cp "${DEV_PLIST}" "${TARGET_PLIST}"
    echo "Copied dev plist to target"
elif [ "${CONFIGURATION}" = "Staging" ]; then
    cp "${STAGING_PLIST}" "${TARGET_PLIST}"
    echo "Copied staging plist to target"
elif [ "${CONFIGURATION}" = "Release" ]; then
    cp "${PROD_PLIST}" "${TARGET_PLIST}"
    echo "Copied prod plist to target"
fi
  • 可通过添加echo日志,在Xcode的Build Log中查看脚本是否执行、路径是否正确。
  • 确认PROJECT_DIR指向的项目根目录正确,且config下的子目录与脚本中的路径完全匹配。

3. 检查plist文件的Bundle引用

确保Runner Target的Copy Bundle Resources中,GoogleService-Info.plist的引用指向Runner目录下的目标文件,而非旧的固定路径。

  • 操作:在Copy Bundle Resources中删除旧的plist引用,重新添加Runner目录下的GoogleService-Info.plist,确保引用为相对路径。

4. 清理项目缓存

  • 执行flutter clean清空Flutter缓存。
  • 删除Xcode的Derived Data:打开Xcode → Preferences → Locations → Derived Data,点击路径打开文件夹后删除对应项目的缓存目录。
  • 重新执行flutter pub get,再用对应Flavor命令编译,例如:flutter run --flavor dev --debug。

5. 验证Flavor与Build Configuration的映射

确保每个Flavor对应正确的Build Configuration:

  • 打开Xcode的Runner Target → Info → Configurations,确认Dev/Staging/Prod分别对应Debug/Staging/Release配置(根据你的实际命名调整)。

内容的提问来源于stack exchange,提问作者Adam Terhaerdt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:17:18