在 iOS 上将 Flavors 与 Flutter 结合使用:${PRODUCT_NAME} 未按预期工作

问题描述 投票:0回答:0

所以我正在尝试在我的 Flutter 项目的 iOS 应用程序中设置 flavors。我的目标是能够在我的 iPhone 上同时安装多个 flavors 应用程序。

为了实现这一点,我偶然发现了这个官方指南:https://docs.flutter.dev/deployment/flavors.

但我遇到了应用程序最终被命名为“Runner”的问题,我什至无法在我的 iPhone 上安装多个应用程序。


让我们从头开始。

我有3种口味(方案):

  • dev
    ,
  • mr
    ,和
  • prod
    .

每个都是为DebugProfileRelease定义的,我已经删除了原来的。

下一步,指南展示了如何为每个方案定义唯一的包标识符,在我的例子中如下:

然后我们继续

Product Name
,我完全按照指南做:

最后一步是编辑

Info.plist
中的一些字段。

这是指南非常混乱的地方,因为它说要将

${PRODUCT_NAME}
设置为
Bundle Display Name
但是,在下面的屏幕截图中它清楚地写着
CF Bundle Display Name
。我试图在 Xcode 中找到后者,但在浏览可用键时没有这样的选择(“信息属性列表”旁边的“+”按钮)。

然后我在Android studio中打开

Info.plist
写入以下键值:

<key>CFBundleDisplayName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundleName</key>
<string>My Flutter App</string>

回到 Xcode,这是现在的样子:

除非我错了,以我的理解:

  • CFBundleDisplayName
    对应于指南中书面文字中的
    Bundle Display Name
  • 而指南截图中的
    Bundle Display Name
    对应于我
    Bundle Name
    中的
    Info.plist
    (或原始版本中的
    CFBundleName
    )。

然后我尝试构建具有

dev
风格的应用程序:

但在我运行 iOS 12 的 iPhone 上,该应用程序的标题为“Runner”。然后,如果我使用

main.dart (mr)
构建配置(使用
mr
风格),新构建将替换现有的,并且它仍然被命名为“Runner”。

所以我相信:

  • 命名不起作用
  • 风味系统也不起作用。

另外让我更加困惑的是,为什么指南要求写产品名称,例如“Debug Free”(或在我的示例中为 Debug Dev)???那应该是应用程序名称吗? 我现在实际上并不是在寻找不同的名字,但我希望能够在我的 iPhone 上安装这三种风格的应用程序。

我做错了什么?


注意:风味系统在 Android 上运行良好

ios flutter xcode android-productflavors
© www.soinside.com 2019 - 2024. All rights reserved.