【问题标题】:Cannot build a project with Flutter and cloud_firestore无法使用 Flutter 和 cloud_firestore 构建项目
【发布时间】:2018-10-18 19:35:51
【问题描述】:

我一直在试图弄清楚如何让 cloud_firestore 插件正常工作,但到目前为止,还没有一个构建完成。每次我都有很多错误...我正在尝试为 iOS iPhoneX 模拟器构建

我已按照此代码实验室的说明进行操作:https://codelabs.developers.google.com/codelabs/flutter-firebase/ 而且我的代码与第 9 步中的代码完全相同

以下是错误:

$ flutter run
Launching lib/main.dart on iPhone X in debug mode...
Running pod install...                                      10,2s
Running Xcode clean...                                       1,5s
Starting Xcode build...                                          
Xcode build done.                                            2,6s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **

Xcode's output:
↳
    === BUILD TARGET gRPC-Core OF PROJECT Pods WITH CONFIGURATION Debug ===
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.3/ios/Classes/FirebaseCorePlugin.m:13:17: warning: property 'dictionary' requires method 'dictionary' to be defined - use @dynamic or provide a method implementation in this category [-Wobjc-property-implementation]
    @implementation FIROptions (FLTFirebaseCorePlugin)
                    ^
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.3/ios/Classes/FirebaseCorePlugin.m:10:46: note: property declared here
    @property(readonly, nonatomic) NSDictionary *dictionary;
                                                 ^
    1 warning generated.
    === BUILD TARGET cloud_firestore OF PROJECT Pods WITH CONFIGURATION Debug ===
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:5:
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.h:5:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/Flutter.h:37:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterAppDelegate.h:11:
    /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterPlugin.h:80:42: warning: 'UIUserNotificationSettings' is only available on iOS 8.0 or newer [-Wunguarded-availability]
        didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings;
                                             ^
    In module 'UIKit' imported from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Target Support Files/cloud_firestore/cloud_firestore-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIUserNotificationSettings.h:43:12: note: 'UIUserNotificationSettings' has been explicitly marked partial here
    @interface UIUserNotificationSettings : NSObject
               ^
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:5:
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.h:5:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/Flutter.h:37:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterAppDelegate.h:11:
    /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterPlugin.h:79:1: note: annotate 'application:didRegisterUserNotificationSettings:' with an availability attribute to silence this warning
    - (void)application:(UIApplication*)application
    ^
    /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterPlugin.h:95:44: warning: 'UIBackgroundFetchResult' is only available on iOS 7.0 or newer [-Wunguarded-availability]
              fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
                                               ^
    In module 'UIKit' imported from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Target Support Files/cloud_firestore/cloud_firestore-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:76:29: note: 'UIBackgroundFetchResult' has been explicitly marked partial here
    typedef NS_ENUM(NSUInteger, UIBackgroundFetchResult) {
                                ^
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:5:
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.h:5:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/Flutter.h:37:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterAppDelegate.h:11:
    /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Public/Flutter/Flutter/FlutterPlugin.h:93:1: note: annotate 'application:didReceiveRemoteNotification:fetchCompletionHandler:' with an availability attribute to silence this warning
    - (BOOL)application:(UIApplication*)application
    ^
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:115:45: warning: implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
          @"oldIndex" : [NSNumber numberWithInt:documentChange.oldIndex],
                        ~                       ^~~~~~~~~~~~~~~~~~~~~~~
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:116:45: warning: implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
          @"newIndex" : [NSNumber numberWithInt:documentChange.newIndex],
                        ~                       ^~~~~~~~~~~~~~~~~~~~~~~
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:160:21: warning: implicit conversion loses integer precision: 'NSUInteger' (aka 'unsigned long') to 'UInt32' (aka 'unsigned int') [-Wshorten-64-to-32]
        [self writeSize:blob.length];
        ~               ^~~~~~~~~~~
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:270:7: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
          transactions[transactionId] = transaction;
          ^
          self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:277:29: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
                                transactionResults[transactionId] = doTransactionResult;
                                ^
                                self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:284:14: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
          return transactionResults[transactionId];
                 ^
                 self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:298:37: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
          FIRTransaction *transaction = transactions[transactionId];
                                        ^
                                        self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:322:37: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
          FIRTransaction *transaction = transactions[transactionId];
                                        ^
                                        self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:331:37: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
          FIRTransaction *transaction = transactions[transactionId];
                                        ^
                                        self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:340:37: warning: block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior [-Wimplicit-retain-self]
          FIRTransaction *transaction = transactions[transactionId];
                                        ^
                                        self->
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:351:26: error: unknown receiver 'FIRSetOptions'; did you mean 'FIROptions'?
                    options:[FIRSetOptions merge]
                             ^~~~~~~~~~~~~
                             FIROptions
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:7:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Private/Firebase/Firebase.h:1:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Private/FirebaseCore/FirebaseCore.h:21:
    /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Private/FirebaseCore/FIROptions.h:25:12: note: 'FIROptions' declared here
    @interface FIROptions : NSObject <NSCopying>
               ^
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:351:40: error: no known class method for selector 'merge'
                    options:[FIRSetOptions merge]
                                           ^~~~~
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:350:17: error: no visible @interface for 'FIRDocumentReference' declares the selector 'setData:options:completion:'
          [document setData:call.arguments[@"data"]
           ~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:440:76: error: unknown receiver 'FIRSetOptions'; did you mean 'FIROptions'?
          [batch setData:call.arguments[@"data"] forDocument:document options:[FIRSetOptions merge]];
                                                                               ^~~~~~~~~~~~~
                                                                               FIROptions
    In file included from /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:7:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Private/Firebase/Firebase.h:1:
    In file included from /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Private/FirebaseCore/FirebaseCore.h:21:
    /Users/arthurdepasse/Programmation/flutter_cloud_firestore/ios/Pods/Headers/Private/FirebaseCore/FIROptions.h:25:12: note: 'FIROptions' declared here
    @interface FIROptions : NSObject <NSCopying>
               ^
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:440:90: error: no known class method for selector 'merge'
          [batch setData:call.arguments[@"data"] forDocument:document options:[FIRSetOptions merge]];
                                                                                             ^~~~~
    /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.0+2/ios/Classes/CloudFirestorePlugin.m:440:14: error: no visible @interface for 'FIRWriteBatch' declares the selector 'setData:forDocument:options:'
          [batch setData:call.arguments[@"data"] forDocument:document options:[FIRSetOptions merge]];
           ~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    12 warnings and 6 errors generated.
Could not build the application for the simulator.
Error launching application on iPhone X.

然后这是我的颤振医生输出:

$ flutter doctor -v
[✓] Flutter (Channel beta, v0.3.2, on Mac OS X 10.13.2 17C88, locale fr-FR)
    • Flutter version 0.3.2 at /Users/arthurdepasse/SDKs/flutter_v0.3.1-beta
    • Framework revision 44b7e7d3f4 (3 weeks ago), 2018-04-20 01:02:44 -0700
    • Engine revision 09d05a3891
    • Dart version 2.0.0-dev.48.0.flutter-fe606f890b

[!] Android toolchain - develop for Android devices
    • Android SDK at /Users/arthurdepasse/Library/Android/sdk
    • Android NDK at /Users/arthurdepasse/Library/Android/sdk/ndk-bundle
    ✗ Android SDK is missing command line tools; download from <link removed>
    • Try re-installing or updating your Android SDK,
      visit https://flutter.io/setup/#android-setup for detailed instructions.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.3, Build version 9E145
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08)

[✓] VS Code (version 1.23.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Dart Code extension version 2.12.1

[✓] Connected devices (1 available)
    • iPhone X • 1295166F-AF96-4DA3-9D82-4172A0F9C55A • ios • iOS 11.3 (simulator)

! Doctor found issues in 1 category.

我希望有人对此有所了解,我对 pods 系统不是很熟悉,但我相信问题来自这里。

【问题讨论】:

  • 请添加您的dependenciespubspec.yaml
  • dependencies: flutter: sdk: flutter cupertino_icons: ^0.1.0 cloud_firestore: ^0.7.0
  • 我也有这个错误。
  • 我在这里找到了答案:stackoverflow.com/questions/50125534/…它现在正在工作

标签: firebase google-cloud-firestore flutter


【解决方案1】:

您可能需要更新 pubspec.yaml 中的依赖项。我在 cloud_firestore v0.6.x 上遇到了这个问题。我可以通过更新到最新的cloud_firestore 来解决这个问题。我也更新到最新的firebase_auth。 (这些链接会将您带到源代码,以便您找到当前的最新版本。)

pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
ons class for iOS style icons.
  cupertino_icons: ^0.1.2
  cloud_firestore: '^0.7.3'
  firebase_auth: '^0.5.11'

【讨论】:

  • 不要忘记 flutter 软件包获取 来更新您的安装。
【解决方案2】:

我认为这可能与 iOS pod 的新 v5 版本(昨天)有关。这个和firebase有许多重大变化。我不熟悉颤振,但解决这个问题的方法是在我的 Podfile 中将“pod 'Firebase/Core'”更改为“pod 'Firebase/Core', '~> 4.13.0'”。

【讨论】:

  • 您好,感谢您的回答,但我的 Podfile 中没有这样的行。一切都是自动生成的。我尝试更改 Podfile.lock 中的版本号,但 pod install 无法完成。如果可以的话,我的可可豆荚安装是 v1.5.2
猜你喜欢
  • 2020-09-17
  • 1970-01-01
  • 2020-12-25
  • 2021-06-10
  • 2021-06-30
  • 2023-01-20
  • 2023-01-04
  • 2021-09-25
  • 2018-06-15
相关资源
最近更新 更多