所以我正在尝试在我的 Flutter 项目的 iOS 应用程序中设置 flavors。我的目标是能够在我的 iPhone 上同时安装多个 flavors 应用程序。
为了实现这一点,我偶然发现了这个官方指南:https://docs.flutter.dev/deployment/flavors.
但我遇到了应用程序最终被命名为“Runner”的问题,我什至无法在我的 iPhone 上安装多个应用程序。
让我们从头开始。
我有3种口味(方案):
dev
,mr
,和prod
.每个都是为Debug、Profile和Release定义的,我已经删除了原来的。
下一步,指南展示了如何为每个方案定义唯一的包标识符,在我的例子中如下:
然后我们继续
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>
除非我错了,以我的理解:
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 上运行良好