答案 0 :(得分:0)
阅读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。新Xcode项目的Debug构建配置的默认设置为ONLY_ACTIVE_ARCH = YES。
如果您具有ONLY_ACTIVE_ARCH = NO并以实际设备为目标,则它将构建armv7和arm64并成功。如果以模拟器为目标,它将尝试构建i386和x86_64并由于缺少i386而失败,并出现此错误。新Xcode项目的发布版本配置默认为ONLY_ACTIVE_ARCH = NO,因为您需要将所有有效的架构发布到App Store。
模拟器上的Release不支持Flutter。