Flutter多环境(Prod/Dev)下Xcode找不到GoogleService-Info.plist的配置咨询
解决Xcode找不到GoogleService-Info.plist的多环境配置方案
步骤1:创建目录结构并放置文件
在Flutter项目的ios目录下,手动搭建如下文件夹结构:
ios/ └── config/ ├── dev/ │ └── GoogleService-Info.plist # 开发环境配置文件 └── prod/ └── GoogleService-Info.plist # 生产环境配置文件
步骤2:将文件引入Xcode项目
- 打开ios目录下的
Runner.xcworkspace - 在Xcode左侧项目导航栏右键点击
Runner,选择Add Files to "Runner" - 选中
ios/config/dev/GoogleService-Info.plist和ios/config/prod/GoogleService-Info.plist - 取消勾选Copy items if needed(避免重复复制文件)
- 在Add to targets区域不勾选任何目标(防止两个文件同时打包引发冲突),点击Add
步骤3:添加动态复制脚本
通过脚本根据当前构建环境自动复制对应配置文件到Xcode期望路径:
- 在Xcode中选中
Runner目标,切换到Build Phases标签页 - 点击左上角
+按钮,选择New Run Script Phase - 将新生成的Run Script阶段拖动到Compile Sources之前(确保文件先复制再编译)
- 展开Run Script,在脚本输入框粘贴以下内容:
# 根据当前构建环境复制对应的GoogleService-Info.plist if [ "${CONFIGURATION}" = "Debug-dev" ] || [ "${CONFIGURATION}" = "Release-dev" ]; then cp "${PROJECT_DIR}/config/dev/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist" elif [ "${CONFIGURATION}" = "Debug-prod" ] || [ "${CONFIGURATION}" = "Release-prod" ]; then cp "${PROJECT_DIR}/config/prod/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist" fi
注意:如果你的环境配置命名不是
Debug-dev/Release-dev,请替换为实际的Configuration名称(比如Debug Dev或DebugProd等)
步骤4:排除自动生成文件到.gitignore
ios/Runner/GoogleService-Info.plist是脚本动态生成的,无需提交到版本控制:
在项目根目录的.gitignore文件中添加一行:
ios/Runner/GoogleService-Info.plist
步骤5:验证配置
- 清理Xcode构建缓存:点击菜单栏Product > Clean Build Folder(快捷键
Cmd+Shift+K) - 分别选择dev和prod的Scheme运行项目,确认Xcode不再出现文件找不到的错误
内容的提问来源于stack exchange,提问作者Ganesh Vishnu
相关产品推荐
相关产品推荐

