升级Xcode 15后iOS 17以下设备出现EXC_BAD_ACCESS错误求助
Xcode 15.0 + Flutter 3.13.4:iOS 17以下设备运行时触发EXC_BAD_ACCESS错误
升级Xcode至15.0版本后,在iOS 17以下版本的设备(如iOS 16.4)上运行Flutter应用时,触发以下错误:
Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)
错误发生在PathMonitorConnectivityProvider.swift文件中,相关代码如下:
import Foundation import Network @available(iOS 12, *) public class PathMonitorConnectivityProvider: NSObject, ConnectivityProvider { private let queue = DispatchQueue.global(qos: .background) private var _pathMonitor: NWPathMonitor? public var currentConnectivityType: ConnectivityType { let path = ensurePathMonitor().currentPath // .satisfied means that the network is available if path.status == .satisfied { if path.usesInterfaceType(.wifi) { return .wifi } else if path.usesInterfaceType(.cellular) { return .cellular } else if path.usesInterfaceType(.wiredEthernet) { // .wiredEthernet is available in simulator // but for consistency it is probably correct to report .wifi return .wifi } else if path.usesInterfaceType(.other) { return .other } } return .none } public var connectivityUpdateHandler: ConnectivityUpdateHandler? override init() { super.init() _ = ensurePathMonitor() } public func start() { _ = ensurePathMonitor() } public func stop() { _pathMonitor?.cancel() _pathMonitor = nil } @discardableResult private func ensurePathMonitor() -> NWPathMonitor { if (_pathMonitor == nil) { let pathMonitor = NWPathMonitor() pathMonitor.start(queue: queue) pathMonitor.pathUpdateHandler = pathUpdateHandler _pathMonitor = pathMonitor } return _pathMonitor! } private func pathUpdateHandler(path: NWPath) { connectivityUpdateHandler?(currentConnectivityType) } }
错误截图显示错误指向上述文件中的相关代码逻辑。
Flutter环境检测结果:
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.13.4, on macOS 13.5.2 22G91 darwin-x64, locale en-LK) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1) [✓] Xcode - develop for iOS and macOS (Xcode 15.0) [✓] Chrome - develop for the web [✓] Android Studio (version 2022.1) [✓] IntelliJ IDEA Community Edition (version 2022.3.2) [✓] VS Code (version 1.82.2) [✓] Connected device (4 available) [✓] Network resources • No issues found!
AppDelegate.swift代码:
import UIKit import Flutter import GoogleMaps @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("AIzaSyB0SHZK3ngwOu0r26fm3pOrhKumXS7XdHY") GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } }
该错误仅在iOS 17以下版本的设备上出现,寻求技术解决方案。
内容的提问来源于stack exchange,提问作者Megha Pradeetha
相关产品推荐
相关产品推荐

