Трепетание: как исправить ITMS-90809: устарело использование API - Apple прекратит прием заявок на приложения, использующие API UIWebView

При отправке моей последней сборки Apple неожиданно вернула сообщение о том, что существует проблема, а именно:

ITMS-90809: Устаревшее использование API - Apple прекратит прием заявок на приложения, использующие API UIWebView. Смотрите https://developer.apple.com/documentation/uikit/uiwebview для получения дополнительной информации.

Поскольку я не использую плагин webview, я не знаю, где используется UIWebView API. Какой-нибудь совет, как решить эту проблему?

Эта ошибка появляется с последней стабильной сборкой flutter 1.7.8 + hotfix.4 и со следующими включенными пакетами:

http: ^0.12.0
shared_preferences: ^0.4.3
intl: any
permission_handler: ^2.1.2
contacts_service: ^0.2.8
image: ^2.0.5
cached_network_image: ^1.0.0
url_launcher: ^5.0.1
path_provider: ^0.5.0+1
after_layout: ^1.0.7
connectivity: ^0.4.3+1
device_info: ^0.4.0+2
firebase_auth: ^0.11.1+7
firebase_messaging: ^5.1.2
firebase_analytics: ^5.0.0
notification_permissions: ^0.4.0

Все пакеты обновлены до последней версии.

Выходные данные flutter doctor:

[✓] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.6 18G87, locale en-US)
    • Flutter version 1.7.8+hotfix.4 at /Users/per/flutter
    • Framework revision 20e59316b8 (6 weeks ago), 2019-07-18 20:04:33 -0700
    • Engine revision fee001c93f
    • Dart version 2.4.0

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/per/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.3, Build version 10G8
    • CocoaPods version 1.7.4

[✓] iOS tools - develop for iOS devices
    • ios-deploy 1.9.4

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 31.3.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] VS Code (version 1.31.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 2.25.1

[✓] Connected device (1 available)
    • Nexus 6P • 5VT7N15C31001152 • android-arm64 • Android 8.1.0 (API 27)

• No issues found!

Ответы

Ответ 1

Я думаю, что он использовался из плагина firebase_auth. Попробуйте обновить его до последней версии, а затем запустите pod update.

Ответ 2

У меня это есть в нашем приложении Cordova, и я исправил его, обновив зависимость.

Вы случайно не используете зависимость, или другая зависимость использует зависимость "cordova-plugin-inappbrowser".

Если это так, это должно быть исправлено в 3.1.0. Смотрите заметки о выпуске https://github.com/apache/cordova-plugin-inappbrowser/blob/master/RELEASENOTES.md И пиар исправляет это https://github.com/apache/cordova-plugin-inappbrowser/pull/271

Обновление: это еще не исправлено. Смотрите проблему на cordova-ios: https://github.com/apache/cordova-ios/issues/661 Обратите внимание: срока не существует, я связался с разработчиком Apple, который написал в Твиттере о переходе на WKWebView, чтобы узнать, сможет ли он предоставить больше информации, обновится, если я получу ответ.

Ответ 3

Так как это стало "ответом goto" в Google за это сообщение об отклонении, я добавлю исправление React Native.

В React Native, учитывая, что вы были хорошим разработчиком и не используете UIWebView в своем собственном коде, используйте следующую команду, чтобы выяснить, какая из ваших зависимостей все еще использует UIWebView:

grep -r UIWebView node_modules/*

Здесь немного больше информации здесь.