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

Flutter iOS模拟器编译报错:record_mp3-3.0.0架构不兼容问题

解决record_mp3-3.0.0 iOS编译架构不兼容问题

问题根源是record_mp3-3.0.0包中自带的libmp3lame.a静态库仅包含iOS真机的arm64架构,缺少模拟器所需的x86_64/arm64架构,导致编译时出现链接错误。即便在项目中添加arm64到排除架构,也可能因为三方库的配置未同步而失效。

以下是可行的解决步骤:

  • 替换兼容的静态库

    1. 定位到pub缓存中的包路径:/Users/mohamedwazery/.pub-cache/hosted/pub.dev/record_mp3-3.0.0/ios/Classes/Fat-Lame/lib/
    2. 替换其中的libmp3lame.a为同时支持真机和模拟器的通用架构版本。你可以自行编译lame源码生成:
      # 编译真机arm64版本
      xcodebuild -project lame.xcodeproj -target libmp3lame -configuration Release -sdk iphoneos ARCHS=arm64
      # 编译模拟器arm64+x86_64版本
      xcodebuild -project lame.xcodeproj -target libmp3lame -configuration Release -sdk iphonesimulator ARCHS="arm64 x86_64"
      # 合并为通用静态库
      lipo -create Release-iphoneos/libmp3lame.a Release-iphonesimulator/libmp3lame.a -output libmp3lame.a
      
    3. 将生成的通用库替换原路径下的文件。
  • 同步三方库的排除架构配置

    1. 打开iOS项目的Podfile,添加如下配置,强制让record_mp3的target在模拟器编译时排除arm64:
      post_install do |installer|
        installer.pods_project.targets.each do |target|
          if target.name == 'record_mp3'
            target.build_configurations.each do |config|
              config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
            end
          end
        end
      end
      
    2. 执行pod install重新安装依赖。
  • 清理项目后重新编译

    1. 在Xcode中选择Product > Clean Build Folder清理构建缓存
    2. 重启Xcode,重新编译运行项目

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:45:15