Очень много ошибок после обновления до flutter 2.5.0

Я обновил Flutter до 2.5.0 в своем проекте и получаю много ошибок, например:

      Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **
Xcode's output:
↳
    /flutter/.pub-cache/hosted/pub.dartlang.org/audio_service-0.18.0/ios/Classes/AudioServicePlugin.m:213:59: warning: 'initWithImage:' is deprecated: first deprecated in iOS 10.0 - Use -initWithBoundsSize:requestHandler: [-Wdeprecated-declarations]
                        artwork = [[MPMediaItemArtwork alloc] initWithImage: artImage];
                                                              ^
    In module 'MediaPlayer' imported from /flutter/.pub-cache/hosted/pub.dartlang.org/audio_service-0.18.0/ios/Classes/AudioServicePlugin.m:3:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:244:1: note: 'initWithImage:' has been explicitly marked deprecated here
    - (instancetype)initWithImage:(UIImage *)image MP_DEPRECATED("Use -initWithBoundsSize:requestHandler:", ios(5.0, 10.0));
    ^
    1 warning generated.
    /flutter/.pub-cache/hosted/pub.dartlang.org/audio_service-0.18.0/ios/Classes/AudioServicePlugin.m:213:59: warning: 'initWithImage:' is deprecated: first deprecated in iOS 10.0 - Use -initWithBoundsSize:requestHandler: [-Wdeprecated-declarations]
                        artwork = [[MPMediaItemArtwork alloc] initWithImage: artImage];
                                                              ^
    In module 'MediaPlayer' imported from /flutter/.pub-cache/hosted/pub.dartlang.org/audio_service-0.18.0/ios/Classes/AudioServicePlugin.m:3:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/System/Library/Frameworks/MediaPlayer.framework/Headers/MPMediaItem.h:244:1: note: 'initWithImage:' has been explicitly marked deprecated here
    - (instancetype)initWithImage:(UIImage *)image MP_DEPRECATED("Use -initWithBoundsSize:requestHandler:", ios(5.0, 10.0));
    ^
    1 warning generated.

или

      ios/Pods/Reachability/Reachability.m:465:63: warning: cast to smaller integer type 'unsigned int' from 'Reachability *' [-Wpointer-to-int-cast]
                                 NSStringFromClass([self class]), (unsigned int) self, [self currentReachabilityFlags]];
                                                                  ^~~~~~~~~~~~~~~~~~~
    1 warning generated.
    ios/Pods/Reachability/Reachability.m:465:63: warning: cast to smaller integer type 'unsigned int' from 'Reachability *' [-Wpointer-to-int-cast]
                                 NSStringFromClass([self class]), (unsigned int) self, [self currentReachabilityFlags]];

или

      1 warning generated.
    /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.7.0/ios/Classes/FlutterDownloaderPlugin.m:373:15: warning: 'stringByReplacingPercentEscapesUsingEncoding:' is deprecated: first deprecated in iOS 9.0 - Use -stringByRemovingPercentEncoding instead, which always uses the recommended UTF-8 encoding. [-Wdeprecated-declarations]
        ? [origin stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
                  ^
    In module 'Foundation' imported from /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.7.0/ios/Classes/DBManager.h:8:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURL.h:598:1: note: 'stringByReplacingPercentEscapesUsingEncoding:' has been explicitly marked deprecated here
    - (nullable NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)enc API_DEPRECATED("Use -stringByRemovingPercentEncoding instead, which always uses the recommended UTF-8 encoding.", macos(10.0,10.11), ios(2.0,9.0), watchos(2.0,2.0), tvos(9.0,9.0));
    ^
    /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.7.0/ios/Classes/FlutterDownloaderPlugin.m:973:21: warning: 'UILocalNotification' is deprecated: first deprecated in iOS 10.0 - Use UserNotifications Framework's UNNotificationRequest [-Wdeprecated-declarations]
                        UILocalNotification *localNotification = [[UILocalNotification alloc] init];
                        ^
    In module 'UIKit' imported from /Meduza/meduza-dart/ios/Pods/Target Support Files/flutter_downloader/flutter_downloader-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILocalNotification.h:18:12: note: 'UILocalNotification' has been explicitly marked deprecated here
    @interface UILocalNotification : NSObject<NSCopying, NSCoding>
               ^
    /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.7.0/ios/Classes/FlutterDownloaderPlugin.m:973:84: warning: 'UILocalNotification' is deprecated: first deprecated in iOS 10.0 - Use UserNotifications Framework's UNNotificationRequest [-Wdeprecated-declarations]
                        UILocalNotification *localNotification = [[UILocalNotification alloc] init];
                                                                                       ^
    In module 'UIKit' imported from /Meduza/meduza-dart/ios/Pods/Target Support Files/flutter_downloader/flutter_downloader-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILocalNotification.h:18:12: note: 'UILocalNotification' has been explicitly marked deprecated here
    @interface UILocalNotification : NSObject<NSCopying, NSCoding>
               ^
    /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.7.0/ios/Classes/FlutterDownloaderPlugin.m:975:56: warning: 'presentLocalNotificationNow:' is deprecated: first deprecated in iOS 10.0 - Use UserNotifications Framework's -[UNUserNotificationCenter addNotificationRequest:withCompletionHandler:] [-Wdeprecated-declarations]
                        [[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
                                                           ^
    In module 'UIKit' imported from /Meduza/meduza-dart/ios/Pods/Target Support Files/flutter_downloader/flutter_downloader-prefix.pch:2:
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIApplication.h:236:1: note: 'presentLocalNotificationNow:' has been explicitly marked deprecated here
    - (void)presentLocalNotificationNow:(UILocalNotification *)notification API_DEPRECATED("Use UserNotifications Framework's -[UNUserNotificationCenter addNotificationRequest:withCompletionHandler:]", ios(4.0, 10.0)) API_UNAVAILABLE(tvos);

Их СОТНИ , по разным пакетам и капсулам. Я обновил все зависимости, попробовал flutter clean, flutter pub cache repair, удаление Pods и Podfile.lock не помогает. Кроме того, я не могу найти проблемы с этим в репозиториях пакетов или репозиториях флаттера.

Мой flutter doctor:

      [✓] Flutter (Channel stable, 2.5.0, on macOS 11.5.2 20G95 darwin-x64, locale en-LV)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✓] Xcode - develop for iOS and macOS
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google
    Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[!] Android Studio (not installed)
[✓] VS Code (version 1.59.1)
[✓] Connected device (1 available)

! Doctor found issues in 3 categories.

А также flutter pub outdated:

      Showing outdated packages.
[*] indicates versions that are not the latest available.

Package Name                   Current   Upgradable  Resolvable  Latest

direct dependencies:
characters                     *1.1.0    *1.1.0      *1.1.0      1.2.0
photo_view                     *0.11.1   *0.11.1     *0.11.1     0.12.0
worker_manager                 *4.2.3    *4.2.3      *4.2.3      4.2.4

dev_dependencies: all up-to-date.

transitive dependencies:
async                          *2.8.1    *2.8.1      *2.8.1      2.8.2
flutter_widget_from_html_core  *0.6.2    *0.6.2      *0.6.2      0.7.0
matcher                        *0.12.10  *0.12.10    *0.12.10    0.12.11
test_api                       *0.4.2    *0.4.2      *0.4.2      0.4.3
You are already using the newest resolvable versions listed in the 'Resolvable' column.
Newer versions, listed in 'Latest', may not be mutually compatible.

3 ответа

Для людей, которые приходят сюда после обновления своих версий флаттера до 2.8, вы можете сделать что-то вроде этого, чтобы исправить это:

Добавьте эти строки в файл local.properties в папке android.

      flutter.minSdkVersion = 23
flutter.targetSdkVersion = 30
flutter.compileSdkVersion = 30

Я столкнулся с этой ошибкой и исправил следующие шаги:

  1. Перейдите в терминал и введите команду: cd ios, затем ENTER.
  2. sudo gem install cocoapods скопируйте и вставьте в терминал
  3. pod init
  4. pod install
  5. pod update

После завершения процесса откройте симулятор и бегите туда.

Надеюсь, это сработает. Удачного кодирования!

в build.gradle я изменил 30 на 31

      android {
    compileSdkVersion 31

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

теперь работаю на меня

Другие вопросы по тегам