我正在尝试将 WorkManager 集成到 iOS 中(它已经在 Android 上适用于我)
当我运行该项目时,出现以下错误: `类型'WorkmanagerPlugin'没有成员'registerBGProcessingTask' /Users/user/Desktop/Projects/project/ios/Runner/AppDelegate.swift:23:22
无法为模拟器构建应用程序。 在 iPhone 15 Pro 上启动应用程序时出错。`
我已经阅读了该插件的官方文档,并且阅读了几个 iOS 集成示例,我还在插件存储库中看到了它的集成示例,并且我已经按照步骤进行操作,但与 iOS 上的 Android 不同,它对我不起作用.
mi AppDelegate.swift
import UIKit
import Flutter
import FirebaseCore
import workmanager
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}
FirebaseApp.configure()
GeneratedPluginRegistrant.register(with: self)
WorkmanagerPlugin.setPluginRegistrantCallback { registry in
GeneratedPluginRegistrant.register(with: registry)
}
WorkmanagerPlugin.registerBGProcessingTask(withIdentifier: "task-identifier")
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
我已经审查了存储库中的问题并研究了有关该问题的更多信息,但其中给出的解决方案都不适合我......
尝试按照 iOS 上的操作文档的建议添加此行,但问题仍然存在...
WorkmanagerPlugin.setPluginRegistrantCallback { registry in
GeneratedPluginRegistrant.register(with: registry)
}
我的扑动医生输出
[✓] Flutter (Channel stable, 3.16.5, on macOS 14.4.1 23E224 darwin-arm64 (Rosetta), locale es-419)
• Flutter version 3.16.5 on channel stable at /Users/user/src/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 78666c8dc5 (hace 5 meses), 2023-12-19 16:14:14 -0800
• Engine revision 3f3e560236
• Dart version 3.2.3
• DevTools version 2.28.4
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /Users/user/Library/Android/sdk
• Platform android-34, build-tools 34.0.0
• ANDROID_HOME = /Users/user/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15C500b
• CocoaPods version 1.14.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
[✓] VS Code (version 1.88.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.86.0
[✓] Connected device (3 available)
• iPhone 15 Pro (mobile) • 432CF0CD-9CFD-4C42-B733-0667B0C187C7 • ios •
com.apple.CoreSimulator.SimRuntime.iOS-17-0 (simulator)
• macOS (desktop) • macos • darwin-arm64 • macOS 14.4.1 23E224 darwin-arm64
(Rosetta)
• Chrome (web) • chrome • web-javascript • Google Chrome 124.0.6367.118
[✓] Network resources
• All expected network resources are available.
• No issues found!
我尝试过重新安装 YouTube pod 和指南,但问题始终是一样的,虽然我没有尝试过使用物理设备,但我不知道这是否是模拟器问题,尽管我不这么认为,因为他们使用了它在指南中...
我遇到了同样的错误并尝试了此解决方法。直接从 git 拉取 ios-bg-tasks-enh-final 版本。
workmanager:
git:
url: https://github.com/absar/flutter_workmanager.git
ref: ios-bg-tasks-enh-final