【问题标题】:How to make multiple iOS Targets in Flutter?如何在 Flutter 中制作多个 iOS Target?
【发布时间】:2019-03-15 17:41:46
【问题描述】:

如何让 Flutter 为 iOS 运行一个不是默认“Runner”的不同 Target?

【问题讨论】:

    标签: ios flutter


    【解决方案1】:

    这会很棘手。如果您查看flutter run --help 命令的输出,您会发现它支持自定义--flavor 选项,允许您指定自定义方案。

    然而,为了让它发挥作用,需要做几件事:

    1. 在 Xcode 中打开您的工作区 - 在终端中从您应用的根目录运行 open ios/Runner.xcworkspace

    2. 通过展开项目和目标列表、单击 Runner 项目并选择复制 (more details here) 来克隆 Runner 目标。

    这也应该为您创建一个自定义方案,带有自己的 Info.plist 文件。该方案将默认称为 Runner-copy,将其重命名为您命名的新目标(例如 Staging)。

    1. 复制您的调试和发布构建配置,并按照 Flutter 期望的方式命名它们。例如,如果您的新目标名为“Staging”,则需要创建 Debug-Staging 和 Release-Staging 构建配置 (more details on doing this)。

    2. 编辑 Podfile 并复制整个 target 'Runner' do 部分,将目标名称替换为您的名称。然后,运行pod install

    现在您有两个不同的目标,您可以设置不同的包 ID,或包含不同的文件。

    1. 从命令行运行您的自定义方案。例如:flutter run --flavor Staging

    2. 如果第 5 步失败,手动重新运行pod install,在 Xcode 中打开工作区并从那里运行。

    注意:这很脆弱,使用风险自负

    注意:我无法让它在发布模式下运行

    【讨论】:

    • 这篇文章是一个很好的跨平台风味指南:medium.com/@salvatoregiordanoo/flavoring-flutter-392aaa875f36
    • 还有一些 cmets: 1. 您可能需要通过复制 Flutter/Debug.xcconfig 和 Flutter/Release.xcconfig 来设置其他配置,然后将它们添加到项目中 2. 有了这些,CocoaPods 可能会抱怨- 这有一个很好的解决方法:github.com/CocoaPods/CocoaPods/issues/2633 3. 如果在 Xcode 中构建,它可能会抱怨缺少 /packages/flutter_tools/bin/xcode_backend.sh - 如果是这种情况,请将 FLUTTER_ROOT 环境变量设置为指向 Flutter 安装 4 . Flutter 期望 .app 文件被称为 Runner.app - 可能必须通过 ideviceinstaller 部署
    • 我已经用类似的步骤完成了这个,但是得到了“在 build/ios/iphoneos/Runner.app 找不到构建的应用程序包。”。似乎颤振正在使用它作为默认二进制文件。
    • 你能从头开始重新制作这个并分享你的项目吗?
    • 我认为这个想法是你保留原来的 Runner 目标并再复制 2 次,这样 Flutter 就保持快乐。您最终应该得到 3 个目标而不是两个 @Panda World。我认为颤振需要 runner 目标才能工作。
    猜你喜欢
    • 2020-10-25
    • 2021-10-02
    • 1970-01-01
    • 2020-03-20
    • 2013-11-22
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多