You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter iOS项目在Xcode构建iOS模拟器时出现架构不兼容错误,求解决方案

解决Flutter iOS模拟器构建时Google Maps架构冲突问题

这是典型的iOS模拟器与真机架构不兼容导致的链接错误——你正在为iOS模拟器构建,但GoogleMapsCore.framework包含的是针对真机(iOS设备)编译的arm64架构文件,两者无法匹配,所以链接器报错。Android端没有这个问题是因为Android的架构处理逻辑和iOS不同,不需要区分模拟器与真机的架构隔离。

下面是几个经过验证的修复方案,按优先级尝试:

方案1:修改Podfile配置(最推荐)

通过Podfile的post_install钩子自动处理Google Maps相关依赖的架构排除:

  1. 打开Flutter项目下的ios/Podfile文件
  2. 在文件末尾的post_install块中添加针对Google Maps Target的架构配置,修改后代码如下:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    # 为Google Maps系列依赖排除模拟器的arm64架构
    if ['GoogleMaps', 'GoogleMapsCore', 'GoogleMapsBase'].include?(target.name)
      target.build_configurations.each do |config|
        config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
      end
    end
  end
end
  1. 保存文件后,在终端执行以下命令更新Pods:
cd ios && pod install
  1. 返回Flutter项目根目录,重新执行flutter run

方案2:手动修改Xcode项目架构设置

如果方案1不生效,可以直接在Xcode中手动配置排除架构:

  1. 打开iOS目录下的Runner.xcworkspace
  2. 选中左侧导航栏的Runner Target,切换到Build Settings标签
  3. 搜索Excluded Architectures,展开后在Debug和Release的iphonesimulator配置项中添加arm64
  4. 同样,找到Pods项目下的GoogleMaps、GoogleMapsCore、GoogleMapsBase这三个Target,重复步骤3的操作,为它们的模拟器配置排除arm64架构
  5. 清理Xcode构建缓存(Command + Shift + K),然后重新构建

方案3:清理所有构建缓存

如果前面的方案都没效果,可能是缓存导致的问题,尝试彻底清理:

  1. 在Flutter项目根目录执行:
flutter clean
  1. 进入iOS目录,清理Pod相关缓存:
cd ios
pod deintegrate
pod cache clean --all
pod install
  1. 重启Xcode和终端,再尝试运行项目

内容的提问来源于stack exchange,提问作者Emmanuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 16:09:08