当前位置: 首页 > news >正文

Flutter App 使用Flavor时配置ios方法

一、背景

个人在学习Flutter开发时刚好遇到公司项目有使用Flavor进行不同客户APP构建的需求,安卓的Flavor方案容易解决,但在苹果遇到了各种麻烦特此记下。

二、操作步骤

2.1 构建前的准备工作

环境准备

  • 在苹果电脑上下载Xcode软件

  • 配置Mac的Git账号并拉取Flutter项目

  • 使用终端在项目目录里执行pub get指令

flutter pub get

如果当前电脑使用了nvm或puro管理Flutter的版本记得切换

# 使用了puro管理
puro use # 当前项目对应的版本环境
puro flutter pub get
# 使用了nvm管理
nvm use # 当前项目对应版本
  • 执行pub get命令完成后进入项目里的ios/文件夹,在终端执行
pod install

Xcode配置Flavor对应的Scheme

  • 使用Xcode打开项目里的/ios/Runner.xcworkspace

image

  • 为每个Flavor渠道创建对应的Scheme,Target选项要选择Runner,或者在Manage Schemes界面选择已有的Runner进行复制。(在默认情况下,项目只会存在Runner这一个Scheme)
    image

image

为每个Scheme创建对应的Configuration

  • 在Xcode最左侧导航栏点击蓝色的Runner图标,在已经打开的窗口点击PROJECT下的蓝色Runner图标

image

  • 为新建的drugstoreBPG Scheme配置 Configurations下对应的Debug、Release、Profile内容。

  • 点击左下角+号开始创建Debug对应的Configuration,推荐使用Debug-Scheme名称方式命名;创建Release和Profile也是参考如此操作。

image

  • 创建完成Debug、Release、Profile对应的Configuration后应该如下

image

为你创建的新Scheme配置刚刚创建好的Configuration

  • 打开Manage Schemes 面板,选择刚刚创建的Scheme后点击Edit

image

image

  • 将要修改左侧栏位对应的Build Configuration内容为刚刚创建的Debug、Release、Profile内容

image

image

  • 修改完成后应该显示如下

image

为每个Scheme配置对应的APP名称

  • 在左侧导航栏点击蓝色Runner图标,在打开的右侧窗口点击TARGET下的Runner再进入Build Setting标签页,点击内部左上角加号选择 Add User-Defined Setting 添加一个名为APP_DISPLAY_NAME的设置。

image

  • 设置APP_DISPLAY_NAME里面的每个Scheme的值为对应APP名称,如下

image

  • 现在需要修改Info.plist。可以通过Xcode在左侧导航栏打开Runner文件夹点击Info,在打开的右侧窗口找到Bundle display name和Bundle name 选项并修改他们的值为 $(APP_DISPLAY_NAME) 。如下

image

为每个Scheme设置APP图标

  • 打开左侧导航栏的Runner文件夹,点击下面的Assets打开Assests窗口

  • 点击Assets窗口左下角的+号选择iOS -> iOS App Icon,将新Icon名称设置为AppIcon-drugstoreBGP

image

  • 拖拽图片进框内或双击方框选择上传

image

  • 连接刚刚创建的App图标到对应的Scheme。在Xcode左侧导航栏点击蓝色Runner图标在右侧窗口选择TARGETS下的Runner点击General标签页,下滑到 Apps Icons and Launch Screen 并修改每个Debug、Release、Profile Configuration对应的图标名称,如下

image

为每个Scheme配置专有Bundle ID(包名)

  • 在Xcode左侧导航栏点击蓝色Runner图标在右侧窗口选择TARGETS下的Runner点击Build Setting标签页,下滑找到Packaging部分并展开Product Bundle Identifier

  • 修改drugstoreBGP对应的包名,参考

image

编辑Profile文件

  • 如果在项目文件目录/ios/下有Profile文件时需要编辑,设置之前的配置的Debug、Release、Profile Configuration对应Runner,使用IDE编辑Profile文件
project 'Runner', {'Debug' => :debug,'Debug-drugstorebgp' => :debug,          # 对应之前创建的Debug Configuration'Profile' => :release,'Profile-drugstorebgp' => :release,          # 对应之前创建的Profile Configuration'Release' => :release,'Release-drugstorebgp' => :release,          # 对应之前创建的Release Configuration
}

配置完成后应该如下

image

  • 修改完成后需要在ios/目录下使用终端执行命令
pod install --repo-update

执行完成后可能会出现如下警告

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `Runner` to `Target Support Files/Pods-Runner/Pods-Runner.debug-drugstorebgp.xcconfig` or include the `Target Support Files/Pods-Runner/Pods-Runner.debug-drugstorebgp.xcconfig` in your build configuration (`Flutter/Debug.xcconfig`).                                                                                                                                                       [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `Runner` to `Target Support Files/Pods-Runner/Pods-Runner.release-drugstorebgp.xcconfig` or include the `Target Support Files/Pods-Runner/Pods-Runner.release-drugstorebgp.xcconfig` in your build configuration (`Flutter/Release.xcconfig`).  
  • 这时可以选择在Xcode最左侧导航栏点击蓝色Runner图标,在右侧打开的窗口中点击PROJECT下的蓝色Runner图标,点击Info标签修改刚刚的Debug、Profile、Release-drugstoreBGP Configutations配置内容为刚刚在Pofile文件配置的对应内容,设置其Runner为Generated.xconfig。

image

  • 也可以选择在ios/Flutter/目录下修改Release和Debug xcconfig文件,引入提示的内容,但需要注意将所有的Configurations的Runner配置修改为默认配置。
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include? "Target Support Files/Pods-Runner/Pods-Runner.debug-drugstorebgp.xcconfig" // 刚刚警告提示内容
#include "Generated.xcconfig"
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include? "Target Support Files/Pods-Runner/Pods-Runner.release-drugstorebgp.xcconfig" // 刚刚警告提示内容
#include? "Target Support Files/Pods-Runner/Pods-Runner.profile-drugstorebgp.xcconfig" // 刚刚警告提示内容
#include "Generated.xcconfig"

image

设置Flutter编译根目录

  • 如果你的Mac使用了puro管理Flutter SDK版本时,需要检查FLUTTER_ROOT是否配置为了正确环境

在Xcode最左侧导航栏点击蓝色Runner图标,在已经打开的左侧窗口点击PROJECT下的蓝色Runner图标,切换到Build Setting标签页,筛选FLUTTER_ROOT,如果没有则在TARGETS下的Build Setting里筛选,检查drugstoreBGP对应的值是否正确,参考如下

image

设置Flutter项目入口文件

  • 如果Flutter项目对Flavor采取了不同的入口文件方法构建则需要在Xcode里配置

在Xcode最左侧导航栏点击蓝色Runner图标,在已经打开的左侧窗口点击PROJECT下的蓝色Runner图标,切换到Build Setting标签页,筛选FLUTTER_TARGET,如果没有则在TARGETS下的Build Setting里筛选;将drugstoreBGP修改为对应在Flutter项目lib下的入口文件,参考

image

2.2 构建测试

  1. 在Xcode顶部导航栏点击Product -> Build 来测试构建是否成功

image

  • 需要注意要选择你创建的Scheme进行构建

image

构建完成

  • 记得在Git提交修改的文件

xxx.xcsheme

xxx.xcconfig

Profile

Contents.json

...等修改文件

http://www.jsqmd.com/news/417712/

相关文章:

  • 企业微信官方服务电话 2026 最新版,人工客服热线查询指南 - 品牌2025
  • 4、EA量化的交易策略
  • 1、什么是EA量化黄金交易?
  • 学习笔记514—安装 VirtualBox虚拟机【ubuntu】
  • 2026年光储充电站建设施工公司推荐:谁能打造优质充电设施?重卡充电桩运营/重卡充电站投资,光储充电站企业找哪家 - 品牌推荐师
  • 2026年应用商店ASO优化推广服务商推荐:柚鸥网络苹果/谷歌/安卓全场景选型指南 - 品牌推荐官
  • 国标领航 技护成长:独语N627-1,学生护眼台灯的品质典范 - 资讯焦点
  • 48-mini-vue 实现 watchEffect
  • 解析国货防脱洗发水品牌怎么选:长发小寨以核心酶抑制率立标杆 - 资讯焦点
  • 2026年2月陶瓷台面实验台实力厂家,高端实验台面实力品牌 - 品牌鉴赏师
  • 2、哪些 EA 是**坑**,哪些**真能活久一点**,你一看就懂。
  • 2026大型企业适用 Jira 替代软件怎么选?深度评测五大主流方案 - 资讯焦点
  • 整骨师资格证怎么考取? - 中媒介
  • 国家卫健委认证整骨培训 - 中媒介
  • 陕西搬家公司推荐:2026 年一站式搬家服务靠谱服务商筛选 - 深度智识库
  • 凯氏定氮仪推荐品牌:进口与国产实力厂家盘点 - 品牌推荐大师
  • 整骨安全操作实训 - 中媒介
  • 突破数据困境:罕见病AI模型的泛化能力测试革命——软件测试工程师在医疗AI质量保障中的新战场
  • 从纯文本到精美文档:TXT 转 PDF 的三种高效方案 - E
  • 6款免费AI论文工具:一键极速生成超长篇幅,帮你省下80%写作时间 - 麟书学长
  • 别再瞎找了!8个降AI率平台深度测评与推荐
  • github基础使用手册
  • 执业整骨师培训标准 - 中媒介
  • 2026年东莞整形医院排名前三揭晓:资质合规 + 项目资深!​ - 资讯焦点
  • 告别低效繁琐!降AI率工具 千笔·专业降AI率智能体 VS WPS AI
  • 实操整骨教学课程 - 中媒介
  • 东莞整形医生比较好的有哪些?这几位技术口碑双在线,擅长项目全解析! - 资讯焦点
  • 学霸同款!断层领先的AI论文工具 —— 千笔ai写作
  • 重磅!城市智能体建设官方指南发布,全域数字化转型有了标准化框架
  • 整骨创业班课程内容 - 中媒介