flutter swift导致报错问题

该博客详细描述了在将基于Swift的plugin集成到使用Objective-C的Flutter项目中时遇到的编译警告,并提供了如何通过添加use_frameworks!到Podfile并重新安装Pods来解决这些问题的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

flutter 基于oc的flutter项目使用基于swift的plugin导致报错问题

原文链接:https://www.cnblogs.com/qqcc1388/p/14034948.html

我只用了它的第二步,第一步没用

Xcode’s output:

ld: warning: Could not find or use auto-linked library ‘swiftCoreGraphics’
ld: warning: Could not find or use auto-linked library ‘swiftDarwin’
ld: warning: Could not find or use auto-linked library ‘swiftUIKit’
ld: warning: Could not find or use auto-linked library ‘swiftFoundation’
ld: warning: Could not find or use auto-linked library ‘swiftCompatibility51’
ld: warning: Could not find or use auto-linked library ‘swiftMetal’
ld: warning: Could not find or use auto-linked library ‘swiftObjectiveC’
ld: warning: Could not find or use auto-linked library ‘swiftCoreFoundation’
ld: warning: Could not find or use auto-linked library ‘swiftCompatibility50’
ld: warning: Could not find or use auto-linked library ‘swiftCoreImage’
ld: warning: Could not find or use auto-linked library
‘swiftCompatibilityDynamicReplacements’
ld: warning: Could not find or use auto-linked library ‘swiftDispatch’
ld: warning: Could not find or use auto-linked library ‘swiftCoreMedia’
ld: warning: Could not find or use auto-linked library ‘swiftQuartzCore’
ld: warning: Could not find or use auto-linked library ‘swiftCore’
ld: warning: Could not find or use auto-linked library ‘swiftCoreAudio’
ld: warning: Could not find or use auto-linked library ‘swiftSwiftOnoneSupport’
Undefined symbols for architecture x86_64:
“value witness table for Builtin.UnknownObject”, referenced from:
full type metadata for kzcity_picker.SwiftKzcityPickerPlugin in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 69: …rom: _̲_swift_FORCE_LO…swiftCompatibilityDynamicReplacementsKaTeX parse error: Expected group after '_' at position 111: …eant: _̲_swift_FORCE_LO…swiftCompatibilityDynamicReplacementsKaTeX parse error: Expected group after '_' at position 24: …picker) "_̲_swift_FORCE_LO…_swiftCompatibility51”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 22: …Compatibility51_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 22: …Compatibility51_̲_kzcity_picker)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 52: …rom: _̲_swift_FORCE_LO…swiftCompatibility50KaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftCompatibility50KaTeX parse error: Expected group after '_' at position 24: …picker) "_̲_swift_FORCE_LO…_swiftQuartzCore”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 17: …swiftQuartzCore_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 17: …swiftQuartzCore_̲_kzcity_picker)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 46: …rom: _̲_swift_FORCE_LO…swiftCoreImageKaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftCoreImageKaTeX parse error: Expected group after '_' at position 24: …picker) "_̲_swift_FORCE_LO…_swiftCoreGraphics”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 19: …iftCoreGraphics_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 19: …iftCoreGraphics_̲_kzcity_picker)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 51: …rom: _̲_swift_FORCE_LO…swiftCoreFoundationKaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftCoreFoundationKaTeX parse error: Expected group after '_' at position 144: …ith: _̲_C.FlutterPlugi…_swiftUIKit”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 12: _swiftUIKit_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 12: _swiftUIKit_̲_kzcity_picker)
"swift_allocObject", referenced from:
@objc kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
"static (extension in
Foundation):Swift.String.unconditionallyBridgeFromObjectiveC(__C.NSString?) ->
Swift.String", referenced from:
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
"swift_getInitializedObjCClass", referenced from:
type metadata accessor for __C.FlutterMethodChannel in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
type metadata accessor for kzcity_picker.SwiftKzcityPickerPlugin in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 47: …rom: _̲_swift_FORCE_LO…swiftFoundationKaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftFoundationKaTeX parse error: Expected group after '_' at position 24: …picker) "_̲_swift_FORCE_LO…_swiftCoreAudio”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 16: _swiftCoreAudio_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 16: _swiftCoreAudio_̲kzcity_picker)
“static Swift.String.+ infix(Swift.String, Swift.String) -> Swift.String”, referenced
from:
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 43: …rom: _̲_swift_FORCE_LO…swiftDarwinKaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftDarwinKaTeX parse error: Expected group after '_' at position 151: …ith: _̲_C.FlutterPlugi…_swiftDispatch”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 15: _swiftDispatch_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 15: _swiftDispatch_̲_kzcity_picker)
"swift_release", referenced from:
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
__swift_destroy_boxed_opaque_existential_0 in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
@objc kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_deallocObject”, referenced from:
l_objectdestroy in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 42: …rom: _̲_swift_FORCE_LO…swiftMetalKaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftMetalKaTeX parse error: Double subscript at position 115: …ugin.handle(_: _̲_C.FlutterMetho…_swiftObjectiveC”, referenced from:
_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 17: …swiftObjectiveC_̲_kzcity_picker in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
(maybe you meant: _swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 17: …swiftObjectiveC_̲_kzcity_picker)
“_swift_unknownObjectRetain”, referenced from:
@objc static kzcity_picker.SwiftKzcityPickerPlugin.register(with:
__C.FlutterPluginRegistrar) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“Swift._bridgeAnythingToObjectiveC(A) -> Swift.AnyObject”, referenced from:
reabstraction thunk helper from @escaping @callee_unowned @convention(block)
(@unowned Swift.AnyObject?) -> () to @escaping @callee_guaranteed (@in_guaranteed
Any?) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_getObjCClassMetadata”, referenced from:
type metadata accessor for __C.FlutterMethodChannel in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
@objc static kzcity_picker.SwiftKzcityPickerPlugin.register(with:
__C.FlutterPluginRegistrar) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“(extension in Foundation):Swift.String._bridgeToObjectiveC() -> __C.NSString”,
referenced from:
@nonobjc __C.FlutterMethodChannel.__allocating_init(name: Swift.String,
binaryMessenger: __C.FlutterBinaryMessenger) -> __C.FlutterMethodChannel in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
“_swift_getObjCClassFromMetadata”, referenced from:
@nonobjc __C.FlutterMethodChannel.__allocating_init(name: Swift.String,
binaryMessenger: __C.FlutterBinaryMessenger) -> __C.FlutterMethodChannel in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
"_swift_FORCE_LOADKaTeX parse error: Expected group after '_' at position 46: …rom: _̲_swift_FORCE_LO…swiftCoreMediaKaTeX parse error: Expected group after '_' at position 102: …ybe you meant: _̲_swift_FORCE_LO…swiftCoreMedia$kzcity_picker)
“type metadata for Swift.String”, referenced from:
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
"swift_bridgeObjectRelease", referenced from:
@nonobjc __C.FlutterMethodChannel.__allocating_init(name: Swift.String,
binaryMessenger: __C.FlutterBinaryMessenger) -> __C.FlutterMethodChannel in
libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
"Swift.String.init(builtinStringLiteral: Builtin.RawPointer, utf8CodeUnitCount:
Builtin.Word, isASCII: Builtin.Int1) -> Swift.String", referenced from:
static kzcity_picker.SwiftKzcityPickerPlugin.register(with:
__C.FlutterPluginRegistrar) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
kzcity_picker.SwiftKzcityPickerPlugin.handle(
: __C.FlutterMethodCall, result:
(Any?) -> ()) -> () in libkzcity_picker.a(SwiftKzcityPickerPlugin.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2.找到Pofile文件并在 ttarget ‘Runner’ do 下添加 use_frameworks!

target ‘Runner’ do
use_frameworks!
flutter_install_all_ios_pods File.dirname(File.realpath(FILE))
end

<think>好的,用户现在想要使用Xcode开发Flutter的iOS应用,并且想在模拟器中模拟iPhone 16 Pro Max的机型。首先,我需要确定用户的主要需求是什么。他们可能已经有一个Flutter项目,现在需要配置Xcode来运行和调试iOS部分。用户提到“查找到对应的Flutter main项目”,这可能是指如何在Xcode中找到或设置他们的Flutter项目的主入口或配置。 首先,我应该回顾一下Flutter项目的结构。当使用Flutter创建项目时,会自动生成iOS和Android的目录。对于iOS部分,Xcode项目位于项目根目录下的ios/Runner.xcodeproj。用户可能不太清楚如何在Xcode中打开这个项目,或者如何确保Xcode正确识别Flutter的配置。 接下来,用户想模拟iPhone 16 Pro Max。但当前的Xcode版本可能还没有预置iPhone 16的模拟器,因为苹果通常在新设备发布后更新Xcode。所以需要确认用户是否了解如何选择最接近的现有型号,比如iPhone 15 Pro Max,或者是否需要等待Xcode更新。如果用户希望提前模拟,可能需要自定义模拟器设置,比如调整分辨率和设备参数,但这样可能无法完全准确。 用户的问题中还提到“查找到对应的flutter main项目”,这可能涉及到Xcode中如何配置Flutter的主入口。在Flutter项目中,iOS的入口是通过AppDelegate和GeneratedPluginRegistrant处理的,而主Dart文件是在Flutter模块中指定的。用户可能需要确保Xcode项目正确链接了Flutter的依赖,并且在Build Phases中包含了编译Dart代码的脚本。 另外,用户可能遇到的一些常见问题包括:Xcode找不到Flutter模块,或者构建失败。这时候需要检查Flutter环境是否正确配置,是否运行过flutter pub get,以及是否在iOS目录下执行了pod install来安装依赖。 最后,需要以清晰、步骤化的方式引导用户如何在Xcode中打开项目,选择模拟器,并运行应用。同时提醒他们如果遇到设备型号不可用的情况,应该如何处理,比如更新Xcode或调整模拟器设置。</think>如果你已经创建了 Flutter 项目,Xcode 会自动关联 iOS 原生工程。以下是具体操作步骤: --- ### **1. 打开 Flutter 项目的 iOS 工程** - **通过终端定位到 Flutter 项目根目录**: ```bash cd ~/你的项目路径/ ``` - **用 Xcode 打开 iOS 工程**: ```bash open ios/Runner.xcworkspace # 必须打开 .xcworkspace(包含 CocoaPods 依赖) ``` 如果直接双击 `ios/Runner.xcodeproj` 可能会缺少依赖,导致编译失败。 --- ### **2. 确认 Xcode 识别 Flutter 项目** - **检查项目结构**: - 左侧导航栏应显示 `Runner` 工程,包含以下关键文件: - `AppDelegate.swift`(iOS 入口文件) - `Info.plist`(应用配置) - `GeneratedPluginRegistrant.m`(Flutter 插件注册) - 如果文件缺失,可能是 Flutter 项目未初始化或损坏,需重新运行: ```bash flutter create . # 在项目根目录执行(注意备份) ``` - **验证 Flutter 依赖**: - 在 Xcode 的 `Build Phases` 中,应包含 `Thin Binary` 阶段(由 Flutter 自动添加,用于编译 Dart 代码)。 - 如果缺少依赖,在终端执行: ```bash cd ios && pod install # 安装 iOS 原生依赖 ``` --- ### **3. 配置 iPhone 16 Pro Max 模拟器** 目前 Xcode 尚未提供 iPhone 16 Pro Max 的官方模拟器(需等待苹果发布会后更新 Xcode),但可通过以下方式模拟类似设备: #### **方案一:使用现有最新机型(如 iPhone 15 Pro Max)** - 在 Xcode 顶部工具栏: 1. 点击设备选择框(默认显示 `Generic iOS Device`)。 2. 选择 `iOS Simulator` → `iPhone 15 Pro Max`。 3. 系统会自动加载模拟器(分辨率:1290x2796)。 #### **方案二:自定义模拟器(手动模拟 iPhone 16 Pro Max)** 如果需提前适配参数(如分辨率): 1. 打开 Xcode → `Window` → `Devices and Simulators`。 2. 点击左下角 **+** 创建新模拟器: - Name: `iPhone 16 Pro Max(Custom)` - Device Type: 选 `iPhone 15 Pro Max`(最接近的物理参数)。 - OS Version: 选最新 iOS 版本。 3. 启动后即可在设备列表中选择自定义模拟器。 --- ### **4. 运行 Flutter 应用** - **通过 Xcode 直接运行**: 1. 点击顶部 **▶** 按钮(或 `Cmd + R`)。 2. Xcode 会自动编译 iOS 工程,并启动模拟器运行 Flutter 应用。 - **通过 Flutter 命令运行**(推荐): 在终端执行(需保持 Xcode 模拟器已启动): ```bash flutter run -d ios # 自动识别已连接的模拟器或真机 ``` --- ### **常见问题排查** 1. **Xcode 报错 `No such module 'Flutter'`**: - 原因:未正确打开 `.xcworkspace` 或未安装 CocoaPods 依赖。 - 解决:关闭 Xcode,执行 `cd ios && pod install`,重新打开 `.xcworkspace`。 2. **模拟器无法启动**: - 检查 Xcode 是否已安装对应 iOS 版本的模拟器(`Xcode` → `Preferences` → `Platforms`)。 3. **Flutter 代码修改未生效**: - 确保通过 `flutter run` 运行,或 Xcode 中开启了 `Hot Reload` 支持。 --- 如果需要进一步适配具体功能(如相机权限、推送通知等),可以补充说明需求! 📱
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值