ios - Flutter iOS 使用 flutter_blue 构建错误
问题描述
几天来,在 ios 上构建 Flutter 时遇到了问题。我用 flutter_blue 库创建了一个蓝牙应用程序。如果我想运行它,我会得到以下堆栈跟踪。正确设置设置 iOS 部署目标。重新安装 Pods 和 Flutter 框架,不幸的是清除缓存并没有帮助。
Command CompileSwiftSources failed with a nonzero exit code
Command CompileSwiftSources failed with a nonzero exit code
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:76:34: error: expected identifier or '('
}>_centralManager.state]];
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:77:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
result(data);
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:77:18: error: a parameter list without types is only allowed in a function definition
result(data);
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:78:7: error: extraneous closing brace ('}')
} else {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:78:9: error: expected identifier or '('
} else {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:81:3: error: extraneous closing brace ('}')
} else if([@"isAvailable" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:81:5: error: expected identifier or '('
} else if([@"isAvailable" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:103:5: error: expected identifier or '('
} else if([@"isOn" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:109:5: error: expected identifier or '('
} else if([@"startScan" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:127:5: error: expected identifier or '('
} else if([@"stopScan" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:130:5: error: expected identifier or '('
} else if([@"getConnectedDevices" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:135:5: error: expected identifier or '('
} else if([@"connect" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:152:5: error: expected identifier or '('
} else if([@"disconnect" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:161:5: error: expected identifier or '('
} else if([@"deviceState" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:169:5: error: expected identifier or '('
} else if([@"discoverServices" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:181:5: error: expected identifier or '('
} else if([@"services" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:189:5: error: expected identifier or '('
} else if([@"readCharacteristic" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:204:5: error: expected identifier or '('
} else if([@"readDescriptor" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:220:5: error: expected identifier or '('
} else if([@"writeCharacteristic" isEqualToString:call.method]) {
^
/Users/pce/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_blue-0.8.0/ios/Classes/FlutterBluePlugin.m:237:5: error: expected identifier or '('
} else if([@"writeDescriptor" isEqualToString:call.method]) {
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
我的依赖
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
floor: ^1.0.1
flutter_svg: ^0.22.0
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
url_launcher: ^6.0.3
native_pdf_view: ^4.0.1
flutter_blue: any
path_provider: ^2.0.2
permission_handler: ^7.1.0
sizer: ^2.0.13
share: ^2.0.1
intl: ^0.17.0
open_file: ^3.2.1
fl_chart: ^0.36.1
hexcolor: ^2.0.3
fluttertoast: ^8.0.7
pdf: ^3.4.2
printing: ^5.4.3
toggle_switch: ^1.2.0
uri_to_file: ^0.1.3
dev_dependencies:
flutter_test:
sdk: flutter
floor_generator: ^1.0.1 # flutter packages pub run build_runner build
build_runner: ^1.7.3
change_app_package_name: ^1.0.0 # flutter pub run change_app_package_name:main com.new.package.name
flutter_launcher_icons: "^0.9.1"
flutter_native_splash: ^1.1.9
颤振医生输出
[✓] Flutter (Channel master, 2.6.0-12.0.pre.436, on macOS 11.5.2 20G95 darwin-arm, locale de-DE)
• Flutter version 2.6.0-12.0.pre.436 at /Users/pce/DevTools/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 062d1e5c20 (2 hours ago), 2021-10-21 02:48:04 -0400
• Engine revision d4e2709791
• Dart version 2.15.0 (build 2.15.0-233.0.dev)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/pce/Library/Android/sdk
• Platform android-30, build-tools 30.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
• Xcode at /Applications/Xcode.app/Contents/Developer
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 4.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 11.0.8+10-b944.6916264)
[✓] VS Code (version 1.60.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)
• iPhone von PCE (mobile) • ios • iOS 14.6 18F72
• iPhone 13 (mobile) • 4DFD75F5-4594-44BC-B063-1DE284142B94 • ios • com.apple.CoreSimulator.SimRuntime.iOS-15-0 (simulator)
• Chrome (web) • chrome • web-javascript • Google Chrome
• No issues found!
解决方案
尝试使用 flutter_blue: ^0.8.0 这可能会解决您的问题。
推荐阅读
- c# - 如何从两个日期之间的差异中删除特定的时间段
- c - 在 C 中实现构造函数的正确方法
- php - 无法使用散列密码登录 - Mysqli PHP
- c++ - 如何从 C++ 中的 sha256 编码字符串创建 base64url
- sql - SQL 子查询过滤器导致返回 NULL 值?
- c# - 对 CosmosDB 的复合 Mongo 过滤器
- java - HTTP 请求正文中的数据如何传递到 servlet
- python - 在 shaow 文件 Linux 中打印加盐哈希
- python - 如何让我的 Python 密码破解器更高效地运行?
- python - ValueError:类的数量必须大于一;获得 1 门 ScikitLearn Python 课程