【问题标题】:Flutter Firebase Project won't compile after 'pod update'Flutter Firebase 项目在“pod 更新”后无法编译
【发布时间】:2019-07-11 18:39:50
【问题描述】:

在我的 Flutter 项目中运行 pod update 后,我的项目不会为 iOs 编译。这就是我已经尝试过的。

  • 删除 Pod 文件夹。
  • 删除 Pod 文件
  • 运行 Pod init 以创建新的 Podfile
  • 将代码粘贴到新的 Podfile 并再次运行 Pod istall。

    $扑医生-v

    [✓] Flutter (Channel dev, v1.2.1, on Mac OS X 10.14.3 18D109, locale de-DE) • Flutter 1.2.1 版,位于 /Users/mainuser/Development/flutter • 框架修订8661d8aecd(3天前),2019-02-14 19:19:53 -0800 • 引擎修订版 3757390fa4 • Dart 版本 2.1.2(构建 2.1.2-dev.0.0 0a7dcf17eb)

    [✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 28.0.3) • Android SDK 位于 /Users/alexanderwilke/Library/Android/sdk • 未配置 Android NDK 位置(可选;对原生分析支持有用) • 平台 android-28,构建工具 28.0.3 • Java 二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_152-release-1248-b01) • 接受所有 Android 许可证。

    [✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 10.1) • Xcode 位于 /Applications/Xcode.app/Contents/Developer • Xcode 10.1,内部版本 10B61 • ios 部署 1.9.4 • CocoaPods 1.6.0 版

    [✓] Android Studio(版本 3.3) • Android Studio 位于 /Applications/Android Studio.app/Contents • Flutter 插件版本 32.0.1 • Dart 插件版本 182.5215 • Java 版 OpenJDK 运行时环境(内部版本 1.8.0_152-release-1248-b01)

    [✓] VS 代码(版本 1.31.1) • /Applications/Visual Studio Code.app/Contents 中的 VS 代码 • Flutter 扩展版本 2.23.0

    [!] 连接的设备 !没有可用的设备


Error Output:

Running pod install...                                              4,7s

> Xcode build done.                                            3,6s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


> Xcode's output:
↳
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:29:50: warning: 'window' is only available on iOS 5.0 or newer
    [-Wunguarded-availability]
          [UIApplication sharedApplication].delegate.window.rootViewController;
                                                     ^~~~~~
    In module 'UIKit' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Target Support Files/image_picker/image_picker-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:398:51: note: 'window' has been explicitly
    marked partial here
    @property (nullable, nonatomic, strong) UIWindow *window NS_AVAILABLE_IOS(5_0);
                                                      ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:29:50: note: enclose 'window' in an @available check to silence this warning
          [UIApplication sharedApplication].delegate.window.rootViewController;
                                                     ^~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:79:45: warning: 'kUTTypeAVIMovie' is only available on iOS 8.0 or newer
    [-Wunguarded-availability]
          (NSString *)kUTTypeMovie, (NSString *)kUTTypeAVIMovie, (NSString *)kUTTypeVideo,
                                                ^~~~~~~~~~~~~~~
    In module 'MobileCoreServices' imported from /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:7:
    In module 'CoreServices' imported from
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/MobileCoreServices.framework/Headers/MobileCoreServices.h:9:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/CoreServices.framework/Headers/UTCoreTypes.h:892:26: note: 'kUTTypeAVIMovie' has been
    explicitly marked partial here
    extern const CFStringRef kUTTypeAVIMovie                             __OSX_AVAILABLE_STARTING(__MAC_10_10,__IPHONE_8_0);
                             ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:79:45: note: enclose 'kUTTypeAVIMovie' in an @available check to silence this
    warning
          (NSString *)kUTTypeMovie, (NSString *)kUTTypeAVIMovie, (NSString *)kUTTypeVideo,
                                                ^~~~~~~~~~~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:111:22: warning: 'presentViewController:animated:completion:' is only available on
    iOS 5.0 or newer [-Wunguarded-availability]
        [_viewController presentViewController:_imagePickerController animated:YES completion:nil];
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In module 'UIKit' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Target Support Files/image_picker/image_picker-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:227:1: note:
    'presentViewController:animated:completion:' has been explicitly marked partial here
    - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0);
    ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:111:22: note: enclose 'presentViewController:animated:completion:' in an @available
    check to silence this warning
        [_viewController presentViewController:_imagePickerController animated:YES completion:nil];
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:124:20: warning: 'presentViewController:animated:completion:' is only available on
    iOS 5.0 or newer [-Wunguarded-availability]
      [_viewController presentViewController:_imagePickerController animated:YES completion:nil];
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In module 'UIKit' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Target Support Files/image_picker/image_picker-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:227:1: note:
    'presentViewController:animated:completion:' has been explicitly marked partial here
    - (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0);
    ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:124:20: note: enclose 'presentViewController:animated:completion:' in an @available
    check to silence this warning
      [_viewController presentViewController:_imagePickerController animated:YES completion:nil];
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:131:27: warning: 'dismissViewControllerAnimated:completion:' is only available on
    iOS 5.0 or newer [-Wunguarded-availability]
      [_imagePickerController dismissViewControllerAnimated:YES completion:nil];
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In module 'UIKit' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Target Support Files/image_picker/image_picker-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:229:1: note:
    'dismissViewControllerAnimated:completion:' has been explicitly marked partial here
    - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0);
    ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:131:27: note: enclose 'dismissViewControllerAnimated:completion:' in an @available
    check to silence this warning
      [_imagePickerController dismissViewControllerAnimated:YES completion:nil];
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:185:27: warning: 'dismissViewControllerAnimated:completion:' is only available on
    iOS 5.0 or newer [-Wunguarded-availability]
      [_imagePickerController dismissViewControllerAnimated:YES completion:nil];
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In module 'UIKit' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Target Support Files/image_picker/image_picker-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h:229:1: note:
    'dismissViewControllerAnimated:completion:' has been explicitly marked partial here
    - (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^ __nullable)(void))completion NS_AVAILABLE_IOS(5_0);
    ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/image_picker-0.4.12+1/ios/Classes/ImagePickerPlugin.m:185:27: note: enclose 'dismissViewControllerAnimated:completion:' in an @available
    check to silence this warning
      [_imagePickerController dismissViewControllerAnimated:YES completion:nil];
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    6 warnings generated.
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:4:8: error: unknown type name 'FIRVisionLabelDetector'; did you mean
    'FIRVisionFaceDetector'?
    static FIRVisionLabelDetector *detector;
           ^~~~~~~~~~~~~~~~~~~~~~
           FIRVisionFaceDetector
    In module 'FirebaseMLVision' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Headers/Private/Firebase/Firebase.h:70:
    /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/FirebaseMLVision/Frameworks/FirebaseMLVision.framework/Headers/FIRVisionFaceDetector.h:22:12: note: 'FIRVisionFaceDetector' declared here
    @interface FIRVisionFaceDetector : NSObject
               ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:35:4: error: expected a type
    + (FIRVisionLabelDetectorOptions *)parseOptions:(NSDictionary *)optionsData {
       ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:10:22: error: no visible @interface for 'FIRVision' declares the selector
    'labelDetectorWithOptions:'
      detector = [vision labelDetectorWithOptions:[LabelDetector parseOptions:options]];
                  ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:13:37: error: unknown type name 'FIRVisionLabel'; did you mean 'FIRVisionFace'?
                   completion:^(NSArray<FIRVisionLabel *> *_Nullable labels, NSError *_Nullable error) {
                                        ^~~~~~~~~~~~~~
                                        FIRVisionFace
    In module 'FirebaseMLVision' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Headers/Private/Firebase/Firebase.h:70:
    /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/FirebaseMLVision/Frameworks/FirebaseMLVision.framework/Headers/FIRVisionFaceDetector.h:3:8: note: 'FIRVisionFace' declared here
    @class FIRVisionFace;
           ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:22:23: error: use of undeclared identifier 'FIRVisionLabel'
                     for (FIRVisionLabel *label in labels) {
                          ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:22:39: error: use of undeclared identifier 'label'; did you mean 'labels'?
                     for (FIRVisionLabel *label in labels) {
                                          ^~~~~
                                          labels
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:13:66: note: 'labels' declared here
                   completion:^(NSArray<FIRVisionLabel *> *_Nullable labels, NSError *_Nullable error) {
                                                                     ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:24:40: error: use of undeclared identifier 'label'
                         @"confidence" : @(label.confidence),
                                           ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:25:36: error: use of undeclared identifier 'label'
                         @"entityID" : label.entityID,
                                       ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:26:33: error: use of undeclared identifier 'label'
                         @"label" : label.label
                                    ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:12:13: error: no visible @interface for 'FIRVisionFaceDetector' declares the
    selector 'detectInImage:completion:'
      [detector detectInImage:image
       ~~~~~~~~ ^~~~~~~~~~~~~~~~~~~
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:37:12: error: unknown receiver 'FIRVisionLabelDetectorOptions'; did you mean
    'FIRVisionFaceDetectorOptions'?
      return [[FIRVisionLabelDetectorOptions alloc] initWithConfidenceThreshold:[conf floatValue]];
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               FIRVisionFaceDetectorOptions
    In module 'FirebaseMLVision' imported from /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/Headers/Private/Firebase/Firebase.h:70:
    /Users/mainuser/Documents/flutter_projects/firebaseProject/ios/Pods/FirebaseMLVision/Frameworks/FirebaseMLVision.framework/Headers/FIRVisionFaceDetectorOptions.h:72:12: note: 'FIRVisionFaceDetectorOptions'
    declared here
    @interface FIRVisionFaceDetectorOptions : NSObject
               ^
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_ml_vision-0.2.1/ios/Classes/LabelDetector.m:37:49: error: no visible @interface for 'FIRVisionFaceDetectorOptions' declares the
    selector 'initWithConfidenceThreshold:'
      return [[FIRVisionLabelDetectorOptions alloc] initWithConfidenceThreshold:[conf floatValue]];
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    12 errors generated.
    /Users/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.5+1/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/mainuser/Development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_core-0.2.5+1/ios/Classes/FirebaseCorePlugin.m:10:46: note: property declared here
    @property(readonly, nonatomic) NSDictionary *dictionary;
                                                 ^
    1 warning generated.

【问题讨论】:

    标签: firebase flutter cocoapods


    【解决方案1】:

    我自己修好了!

    这是我所做的:

    1. Make a new Flutter Project.
    
    2. Copy all your files from /lib to the new project.
    
    3. Delete the flutter/.pub-cache/hosted in your flutter Dir
    
    4. Copy the `pubspec.yaml` file into new project.
    
    5. Run flutter packages get
    
    6. Delete the Pod folder in your PROJECT_DIR/ios folder, the Podfile.lock and the .workscape file (or just run 'pod clean' if you have the right cocoa pods version) 
    
    7. Go into the PROJECT_DIR/ios folder and run pod install
    

    就是这样,你的 Flutter 应用应该可以再次运行了 :)

    【讨论】:

      【解决方案2】:

      @Konrad 的解决方案运行良好,除了 pod clean 在最新更新中已更改为:

      pod cache clean --all
      

      【讨论】:

        【解决方案3】:

        你可以尝试运行一个

        flutter clean
        

        我进行了 pod update 以更新 google maps sdk 版本,但我的 ios 项目停止工作。运行 flutter clean 然后尝试运行该应用程序,它又开始工作了。

        【讨论】:

          【解决方案4】:

          也许这也可以帮助某人pod install --repo-update 这将更新所有 pod,即在升级颤振之后。

          【讨论】:

            猜你喜欢
            • 2021-01-30
            • 2020-12-10
            • 1970-01-01
            • 2019-06-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-10-01
            • 2022-11-19
            相关资源
            最近更新 更多