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

Flutter版本升级后iOS应用构建失败求助

问题:升级Flutter后iOS应用无法构建

我是Flutter iOS开发新手,升级Flutter版本后应用无法构建iOS包,此前运行正常。以下是报错信息:

Xcode构建完成,耗时10.7s
构建iOS应用失败
Xcode构建错误输出:
↳ ** BUILD FAILED **
Xcode输出:
↳ === 构建Pods项目的map_view目标(Debug配置)===
/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabase.m:1486:15: 警告:'sqlite3_wal_checkpoint_v2'仅在iOS 5.0或更高版本可用 [-Wunguarded-availability]
int err = sqlite3_wal_checkpoint_v2(_db, dbName, checkpointMode, logFrameCount, checkpointCount);
^~~~~~~~~~~~~~~~~~~~~~~~~
在从/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabase.m:8导入的'SQLite3'模块中:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/usr/include/sqlite3.h:8244:16: 注释:'sqlite3_wal_checkpoint_v2'已被明确标记为部分可用
SQLITE_API int sqlite3_wal_checkpoint_v2(
^
/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabase.m:1486:15: 注释:将'sqlite3_wal_checkpoint_v2'包裹在@available检查中以消除警告
int err = sqlite3_wal_checkpoint_v2(_db, dbName, checkpointMode, logFrameCount, checkpointCount);
^~~~~~~~~~~~~~~~~~~~~~~~~
生成1条警告。
=== 构建Pods项目的map_view目标(Debug配置)===
/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.m:101:9: 警告:'dispatch_queue_set_specific'仅在iOS 5.0或更高版本可用 [-Wunguarded-availability]
dispatch_queue_set_specific(_queue, kDispatchQueueSpecificKey, (__bridge void *)self, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
在从/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.h:9导入的'Foundation'模块中:
在从/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6导入的'CoreFoundation'模块中:
在从/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:20导入的'Dispatch'模块中:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/usr/include/dispatch/queue.h:1352:1: 注释:'dispatch_queue_set_specific'已被明确标记为部分可用
dispatch_queue_set_specific(dispatch_queue_t queue, const void *key, 
^
/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.m:101:9: 注释:将'dispatch_queue_set_specific'包裹在@available检查中以消除警告
dispatch_queue_set_specific(_queue, kDispatchQueueSpecificKey, (__bridge void *)self, NULL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.m:184:54: 警告:'dispatch_get_specific'仅在iOS 5.0或更高版本可用 [-Wunguarded-availability]
FMDatabaseQueue *currentSyncQueue = (__bridge id)dispatch_get_specific(kDispatchQueueSpecificKey);
^~~~~~~~~~~~~~~~~~~~~
在从/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.h:9导入的'Foundation'模块中:
在从/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6导入的'CoreFoundation'模块中:
在从/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:20导入的'Dispatch'模块中:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/usr/include/dispatch/queue.h:1408:1: 注释:'dispatch_get_specific'已被明确标记为部分可用
dispatch_get_specific(const void *key);
^
/Users/harshavardhan/Workspace/fleetconnect_flutter/ios/Pods/FMDB/src/fmdb/FMDatabaseQueue.m:184:54: 注释:将'dispatch_get_specific'包裹在@available检查中以消除警告
FMDatabaseQueue *currentSyncQueue = (__bridge id)dispatch_get_specific(kDispatchQueueSpecificKey);
^~~~~~~~~~~~~~~~~~~~~
生成2条警告。
/Users/harshavardhan/development/flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-2.2.11/ios/Classes/FluttertoastPlugin.m:19:23: 警告:未使用变量'viewController' [-Wunused-variable]
UIViewController *viewController = 
^
/Users/harshavardhan/development/flutter/.pub-cache/hosted/pub.dartlang.org/fluttertoast-2.2.11/ios/Classes/FluttertoastPlugin.m:48:19: 警告:未使用变量'size' [-Wunused-variable]
NSNumber *size = call.arguments[@"size"];
^
生成2条警告。
=== 构建Runner项目的Runner目标(Debug配置)===
ld: 未找到Flutter框架
clang: error: 链接命令失败,退出代码1(使用-v查看调用详情)
无法为模拟器构建应用。
在iPhone XR上启动应用失败。
已退出(sigterm)
解决办法

先别急着重装Flutter!从报错里能看出来,前面一堆警告都是第三方库(FMDB、fluttertoast)的版本兼容提示,这些警告不会导致构建失败,真正的核心问题是ld: 未找到Flutter框架,咱们先针对这个问题来解决:

  • 第一步先试试清理iOS依赖缓存,重新安装:

    1. 打开终端,进入项目的ios目录:cd ios
    2. 删除Podfile.lock文件:rm Podfile.lock
    3. 删除整个Pods文件夹:rm -rf Pods
    4. 重新安装pod依赖:pod install
    5. 回到项目根目录,清理Flutter缓存:flutter clean,之后再尝试构建:flutter run
  • 如果上面的步骤没用,检查Xcode里的框架引用路径:
    打开Xcode,选中Runner项目,进入Build Settings,搜索Framework Search Paths,确保里面包含$(inherited)和$(FLUTTER_FRAMEWORK_DIR)这两个路径,如果没有就手动添加进去。

  • 要是还是不行,试试强制同步Flutter版本:
    在终端执行flutter upgrade --force,完成后再重复一遍flutter clean和pod install的步骤。

  • 最后说下那些警告,虽然不影响构建,但看着闹心的话可以处理下:

    • 升级依赖包:在项目的pubspec.yaml里把fluttertoast升级到最新版本;FMDB是map_view依赖的,也可以尝试升级map_view的版本;
    • 或者在Xcode里针对这些警告设置忽略,但更推荐升级依赖来彻底解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:18:42