【发布时间】:2020-03-06 05:31:10
【问题描述】:
【问题讨论】:
标签: ios flutter flutter-dependencies
【问题讨论】:
标签: ios flutter flutter-dependencies
阅读https://github.com/flutter/flutter/issues/17749
简而言之:
Flutter 框架包含 armv7、arm64 和 x86_64 切片,但不包含 i386。当您在模拟器中运行时,Xcode 会默默地将 armv7 映射到 i386 模拟器,并将 arm64 映射到 x86_64 模拟器。 ONLY_ACTIVE_ARCH=YES 构建设置仅针对您所针对的设备或模拟器的体系结构构建。 Xcode 文档:
如果启用,则仅构建活动架构。当使用未定义特定架构的运行目标(例如“通用设备”运行目标)进行构建时,此设置将被忽略。
因此,如果您针对的是真正的最新 iOS 设备,它将构建 arm64,如果您针对最新模拟器,它将构建 x86_64。 ONLY_ACTIVE_ARCH=YES 是新 Xcode 项目的调试构建配置的默认值。
如果您有 ONLY_ACTIVE_ARCH=NO 并针对真实设备,它将构建 armv7 和 arm64 并且会成功。如果您以模拟器为目标,它将尝试构建 i386 和 x86_64 并失败并出现此错误,因为缺少 i386。 ONLY_ACTIVE_ARCH=NO 是新 Xcode 项目发布构建配置的默认设置,因为您需要将所有有效架构发布到 App Store。
模拟器上的 Release 不支持 Flutter。
【讨论】: