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

iOS模拟器构建Flutter项目报错:ld: framework not found Flutter

解决Flutter iOS构建报错:ld: framework not found Flutter

我之前遇到过完全一样的问题,这大概率是Flutter框架的引用路径配置出错,或者项目的iOS构建缓存有冲突导致的。下面是几个亲测有效的解决步骤,建议按顺序尝试:

步骤1:彻底清理项目构建缓存

先把项目里的旧构建残留全部清掉,避免干扰新的构建流程:

  • 在项目根目录执行以下命令:
    flutter clean
    rm -rf ios/Pods
    rm ios/Podfile.lock
    rm -rf ios/Runner.xcworkspace
    
  • 然后重新获取依赖并尝试构建:
    flutter pub get
    cd ios && pod install
    cd .. && flutter build ios
    

步骤2:检查Xcode中Flutter.framework的搜索路径

Xcode找不到框架经常是因为路径配置不对,按这个步骤检查:

  1. 打开iOS项目的Runner.xcworkspace
  2. 选中Runner target,切换到Build Settings标签页
  3. 搜索Framework Search Paths,确保包含以下路径(路径可根据你的项目实际位置调整,要保证这些路径下确实存在Flutter.framework):
    • $(inherited)
    • $(PROJECT_DIR)/Flutter
    • $(FLUTTER_ROOT)/bin/cache/artifacts/engine/ios

步骤3:验证Flutter.framework文件是否存在

有时候框架文件本身缺失也会导致这个问题:

  • 检查项目的ios/Flutter目录,确认里面有Flutter.framework
  • 如果没有,执行以下命令下载iOS所需的Flutter框架:
    flutter precache --ios
    

步骤4:检查Podfile的配置正确性

确保你的ios/Podfile顶部有正确的Flutter引用配置,示例如下:

platform :ios, '9.0' # 替换成你的项目最低iOS支持版本
use_frameworks!

flutter_application_path = '../'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

target 'Runner' do
  use_frameworks!
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

修改后重新执行pod install。

步骤5:重置Xcode的DerivedData缓存

Xcode的DerivedData缓存也可能引发这类链接错误:

  1. 打开Xcode,点击顶部菜单Xcode -> Preferences -> Locations
  2. 点击DerivedData旁边的箭头,打开对应的文件夹
  3. 删除当前项目对应的DerivedData文件夹,然后重启Xcode再尝试构建

附:你提供的报错信息参考

Xcode构建时的报错:

export IPHONEOS_DEPLOYMENT_TARGET=9.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang \
-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.2.sdk \
-L/Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Products/Debug-iphonesimulator \
-L/Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Products/Debug-iphonesimulator/Stripe \
-L/Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Products/Debug-iphonesimulator/shared_preferences \
-L/Users/abhijeetnigoskar/Desktop/flutter_workspace/zenspace_pro/ios/Pods/Stripe/InternalFrameworks \
-L/Users/abhijeetnigoskar/Desktop/flutter_workspace/zenspace_pro/ios/Flutter \
-F/Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Products/Debug-iphonesimulator \
-F/Users/abhijeetnigoskar/Desktop/flutter_workspace/zenspace_pro/ios/Pods/../.symlinks/flutter/ios \
-F/Users/abhijeetnigoskar/Desktop/flutter_workspace/zenspace_pro/ios/Flutter \
-filelist /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.LinkFileList \
-Xlinker -rpath -Xlinker @executable_path/Frameworks \
-mios-simulator-version-min=9.0 -dead_strip -Xlinker -object_path_lto \
-Xlinker /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner_lto.o \
-Xlinker -export_dynamic -Xlinker -no_deduplicate \
-Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc \
-fobjc-link-runtime -ObjC -lStripe -lStripe3DS2 -lshared_preferences \
-framework Contacts -framework CoreLocation -framework Flutter \
-framework Foundation -framework PassKit -framework Security \
-framework WebKit -ObjC -lStripe -lStripe3DS2 -lshared_preferences \
-framework Contacts -framework CoreLocation -framework Flutter \
-framework Foundation -framework PassKit -framework Security \
-framework WebKit -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements \
-Xlinker /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Runner.app-Simulated.xcent \
-framework App -framework Flutter -lPods-Runner -Xlinker -dependency_info \
-Xlinker /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner_dependency_info.dat \
-o /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Products/Debug-iphonesimulator/Runner.app/Runner
ld: framework not found Flutter
clang: error: linker command failed with exit code 1 (use -v to see invocation)

VSCode执行flutter build ios --debug --verbose的报错:

-framework Flutter -lPods-Runner -Xlinker -dependency_info \
-Xlinker /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Intermediates.noindex/Runner.build/Debug-iphoneos/Runner.build/Objects-normal/arm64/Runner_dependency_info.dat \
-o /Users/abhijeetnigoskar/Library/Developer/Xcode/DerivedData/Runner-axtptzubiqvjnbhgcbxfykotbmup/Build/Intermediates.noindex/Runner.build/Debug-iphoneos/Runner.build/Objects-normal/arm64/Runner
ld: framework not found Flutter
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[+1864 ms] "flutter ios" took 46,343ms.
[ ] "flutter ios" took 46,343ms.
Encountered error while building for device.
#0      throwToolExit (package:flutter_tools/src/base/common.dart:28:3)
#1      BuildIOSCommand.runCommand (package:flutter_tools/src/commands/build_ios.dart:94:7)
<asynchronous suspension>
#2      FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:478:18)
<asynchronous suspension>
#3      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:383:33)
<asynchronous suspension>
#4      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#5      _rootRun (dart:async/zone.dart:1124:13)
#6      _CustomZone.run (dart:async/zone.dart:1021:19)
#7      _runZoned (dart:async/zone.dart:1516:10)
#8      runZoned (dart:async/zone.dart:1463:12)
#9      AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#10     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:375:20)
#11     CommandRunner.runCommand (package:args/command_runner.dart:197:27)
<asynchronous suspension>
#12     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:396:21)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#14     _rootRun (dart:async/zone.dart:1124:13)
#15     _CustomZone.run (dart:async/zone.dart:1021:19)
#16     _runZoned (dart:async/zone.dart:1516:10)
#17     runZoned (dart:async/zone.dart:1463:12)
#18     AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#19     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:356:19)
<asynchronous suspension>
#20     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:112:25)
#21     new Future.sync (dart:async/future.dart:224:31)
#22     CommandRunner.run (package:args/command_runner.dart:112:14)
#23     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:242:18)
#24     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:22)
<asynchronous suspension>
#25     _rootRun (dart:async/zone.dart:1124:13)
#26     _CustomZone.run (dart:async/zone.dart:1021:19)
#27     _runZoned (dart:async/zone.dart:1516:10)
#28     runZoned (dart:async/zone.dart:1500:12)
#29     run.<anonymous closure> (package:flutter_tools/runner.dart:60:18)
<asynchronous suspension>
#30     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:29)
<asynchronous suspension>
#31     _rootRun (dart:async/zone.dart:1124:13)
#32     _CustomZone.run (dart:async/zone.dart:1021:19)
#33     _runZoned (dart:async/zone.dart:1516:10)
#34     runZoned (dart:async/zone.dart:1463:12)
#35     AppContext.run (package:flutter_tools/src/base/context.dart:152:18)
<asynchronous suspension>
#36     runInContext (package:flutter_tools/src/context_runner.dart:56:24)
<asynchronous suspension>
#37     run (package:flutter_tools/runner.dart:51:10)
#38     main (package:flutter_tools/executable.dart:62:9)
<asynchronous suspension>
#39     main (file:///Users/abhijeetnigoskar/flutter/packages/flutter_tools/bin/flutter_tools.dart:8:3)
#40     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#41     RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:26:21