【发布时间】:2021-04-23 19:16:07
【问题描述】:
这是来自 vscode 的日志
Launching lib/main.dart on iPhone 11 in debug mode...
Running pod install... 3.9s
Running Xcode build...
Xcode build done. 10.3s
Failed to build iOS app
Error output from Xcode build:
↳
** BUILD FAILED **
Xcode's output:
↳
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:195:43: error: expected a type
- (void)applicationReceivedRemoteMessage:(FIRMessagingRemoteMessage *)remoteMessage {
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:302:53: error: nullability specifier 'nonnull' conflicts with
existing specifier 'nullable'
didReceiveRegistrationToken:(nonnull NSString *)fcmToken {
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:307:24: error: expected a type
didReceiveMessage:(FIRMessagingRemoteMessage *)remoteMessage {
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:141:30: error: property 'shouldEstablishDirectChannel' not
found on object of type 'FIRMessaging *'
[FIRMessaging messaging].shouldEstablishDirectChannel = true;
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:160:21: warning: 'FIRInstanceID' is deprecated: FIRInstanceID
is deprecated, please use FIRInstallations for installation identifier handling and use FIRMessaging for FCM registration token handling. [-Wdeprecated-declarations]
[[FIRInstanceID instanceID]
^
In module 'FirebaseInstanceID' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Headers/Public/Firebase/Firebase.h:74:
/Users/abdurrohman/bsi/flutter_firebase/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:190:1: note: 'FIRInstanceID' has been explicitly marked deprecated here
__deprecated_msg("FIRInstanceID is deprecated, please use FIRInstallations for installation "
^
In module 'UIKit' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
In module 'Foundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
In module 'CoreFoundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation
.h:6:
In module 'Darwin' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFo
undation.h:16:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro
'__deprecated_msg'
#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:161:33: warning: 'FIRInstanceIDResult' is deprecated:
FIRInstanceIDResult is deprecated, please use FIRInstallations for app instance identifier handling and use FIRMessaging for FCM registration token handling.
[-Wdeprecated-declarations]
instanceIDWithHandler:^(FIRInstanceIDResult *_Nullable instanceIDResult,
^
In module 'FirebaseInstanceID' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Headers/Public/Firebase/Firebase.h:74:
/Users/abdurrohman/bsi/flutter_firebase/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:153:1: note: 'FIRInstanceIDResult' has been explicitly marked
deprecated here
__deprecated_msg("FIRInstanceIDResult is deprecated, please use FIRInstallations "
^
In module 'UIKit' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
In module 'Foundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
In module 'CoreFoundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation
.h:6:
In module 'Darwin' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFo
undation.h:16:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro
'__deprecated_msg'
#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:161:9: warning: 'instanceIDWithHandler:' is deprecated: Use
`Installations.installationID(completion:)` to get the app instance identifier instead. Use `Messaging.token(completion:)` to get FCM registration token instead.
[-Wdeprecated-declarations]
instanceIDWithHandler:^(FIRInstanceIDResult *_Nullable instanceIDResult,
^
In module 'FirebaseInstanceID' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Headers/Public/Firebase/Firebase.h:74:
/Users/abdurrohman/bsi/flutter_firebase/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:215:5: note: 'instanceIDWithHandler:' has been explicitly marked
deprecated here
__deprecated_msg("Use `Installations.installationID(completion:)` to get the app instance "
^
In module 'UIKit' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
In module 'Foundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
In module 'CoreFoundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation
.h:6:
In module 'Darwin' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFo
undation.h:16:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro
'__deprecated_msg'
#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:171:21: warning: 'FIRInstanceID' is deprecated: FIRInstanceID
is deprecated, please use FIRInstallations for installation identifier handling and use FIRMessaging for FCM registration token handling. [-Wdeprecated-declarations]
[[FIRInstanceID instanceID] deleteIDWithHandler:^void(NSError *_Nullable error) {
^
In module 'FirebaseInstanceID' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Headers/Public/Firebase/Firebase.h:74:
/Users/abdurrohman/bsi/flutter_firebase/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:190:1: note: 'FIRInstanceID' has been explicitly marked deprecated here
__deprecated_msg("FIRInstanceID is deprecated, please use FIRInstallations for installation "
^
In module 'UIKit' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
In module 'Foundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
In module 'CoreFoundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation
.h:6:
In module 'Darwin' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFo
undation.h:16:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro
'__deprecated_msg'
#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:171:33: warning: 'deleteIDWithHandler:' is deprecated: Use
`Installations.delete(completion:)` instead. Also check `Messaging.deleteData(completion:)`if you want to delete FCM registration token. [-Wdeprecated-declarations]
[[FIRInstanceID instanceID] deleteIDWithHandler:^void(NSError *_Nullable error) {
^
In module 'FirebaseInstanceID' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Headers/Public/Firebase/Firebase.h:74:
/Users/abdurrohman/bsi/flutter_firebase/ios/Pods/FirebaseInstanceID/Firebase/InstanceID/Public/FIRInstanceID.h:321:33: note: 'deleteIDWithHandler:' has been explicitly marked
deprecated here
__deprecated_msg("Use `Installations.delete(completion:)` instead. "
^
In module 'UIKit' imported from /Users/abdurrohman/bsi/flutter_firebase/ios/Pods/Target Support Files/firebase_messaging/firebase_messaging-prefix.pch:2:
In module 'Foundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
In module 'CoreFoundation' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation
.h:6:
In module 'Darwin' imported from
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFo
undation.h:16:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.3.sdk/usr/include/sys/cdefs.h:200:48: note: expanded from macro
'__deprecated_msg'
#define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:196:52: error: property 'appData' not found on object of type
'__strong id'
[self didReceiveRemoteNotification:remoteMessage.appData];
^
/Users/abdurrohman/.pub-cache/hosted/pub.dartlang.org/firebase_messaging-6.0.16/ios/Classes/FLTFirebaseMessagingPlugin.m:308:63: error: property 'appData' not found on object of type
'__strong id'
[_channel invokeMethod:@"onMessage" arguments:remoteMessage.appData];
^
5 warnings and 6 errors generated.
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.3.99. (in target
'FirebaseFirestore' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.3.99. (in target
'firebase_messaging' from project 'Pods')
Could not build the application for the simulator.
Error launching application on iPhone 11.
【问题讨论】:
-
我认为您需要在 Xcode 中将
deployment target更改为11 -
嗯,它不起作用,还有其他选择吗? @ShubhamNarkhede
-
试试这个。在 xcode 中打开您的项目。在您的文件夹结构中,转到文件夹 Flutter,有一个名为 AppFrameworkInfo.plist 的文件打开它并将 MinimumOsVersion 更改为 String 9.0 o 9.3。尝试匹配 Runner 文件的 Ios 部署目标。 imgur.com/a/SQ0Sgep
-
解决,感谢@ShubhamNarkhede。我不知道我的设置有什么问题,我只是希望 FlutterFire 文档得到一些新的更新。
-
将 firebase_core 添加到 pubspec.yaml 解决了我的问题
标签: ios xcode firebase flutter firebase-cloud-messaging