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

集成Flutter至已有原生iOS应用:真机无法启动(模拟器正常)

解决Objective-C项目集成Flutter后真机启动崩溃问题

针对你遇到的真机启动时dyld[788]: Library not loaded: @rpath/Flutter.framework/Flutter报错,以下是几个必查的配置修复点:

1. 检查Flutter.framework的嵌入配置

  • 打开Xcode项目,进入Targets -> 主App Target -> General -> Frameworks, Libraries, and Embedded Content,找到Flutter.framework,把它的Embed选项设为Embed & Sign(模拟器运行可能不需要,但真机必须开启嵌入才能把框架打包进App)。
  • 如果列表里没有Flutter.framework,点击+按钮,从你的Flutter项目ios/Flutter目录下添加进来,再设置Embed属性。

2. 验证Build Settings路径配置

  • 进入Targets -> 主App Target -> Build Settings,搜索Framework Search Paths,确认包含Flutter.framework的正确路径,比如$(SRCROOT)/Flutter(根据你的项目实际目录调整,确保是有效相对路径)。
  • 搜索Runpath Search Paths,确保里面有@executable_path/Frameworks,这是系统查找内嵌框架的关键路径。

3. 检查Flutter集成脚本

  • 如果你用CocoaPods集成Flutter模块,确认Podfile里正确配置了Flutter依赖,并且执行过pod install。示例配置:
    flutter_application_path = '../flutter_module'
    load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
    target 'My App Name' do
      install_all_flutter_pods(flutter_application_path)
    end
    
  • 手动集成的话,确认Targets -> 主App Target -> Build Phases -> Run Script里包含Flutter构建脚本,并且脚本顺序在Compile Sources之后、Embed Frameworks之前:
    "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
    "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
    

4. 清理缓存后重新构建

  • 执行flutter clean清理Flutter项目缓存,再在Xcode里选Product -> Clean Build Folder(快捷键Cmd+Shift+K)。
  • 删除真机上的旧应用,重新编译运行。

5. 确认架构适配

  • 在Build Settings -> Architectures中,设置为Standard Architectures (arm64, armv7),避免因架构不匹配导致框架无法加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:33:16