问题
When submitting my latest build, Apple suddenly returned a message saying that there was an issue, specifically:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.
Since I'm not using the webview plugin I'm at a loss as to where the UIWebView API is being used. Any advice on how to solve this?
This error appears with the latest stable flutter build 1.7.8+hotfix.4 and with the following packages included:
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
All of the packages have been updated to their latest version.
The output of flutter doctor is:
[✓] 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:
I think it was being used from the firebase_auth plugin. Try to update it to its latest version and then remember run pod update.
回答2:
I have this with our Cordova app and fixed it by updating a dependency.
Are you by any chance using the dependency or an other dependency is using the dependency "cordova-plugin-inappbrowser".
If so, this should be fixed in 3.1.0. See the release notes https://github.com/apache/cordova-plugin-inappbrowser/blob/master/RELEASENOTES.md And the PR fixing it https://github.com/apache/cordova-plugin-inappbrowser/pull/271
Update: it's not fixed yet. See issue on cordova-ios: https://github.com/apache/cordova-ios/issues/661 Note the: There is no deadline, I've contacted an Apple developer that has been tweeting about moving to WKWebView to see if he can provide more information, will update if I get a response.
Update: Cordova-ios 5.1.0 seems to fix this. See https://github.com/apache/cordova-ios/pull/715
回答3:
Since this has become the "goto answer" on Google for this rejection message, I'll add a React Native fix.
On React Native, considering that you've been a good developer and are not using UIWebView in your own code, use the following command to find out which of your dependencies still does use UIWebView:
grep -r UIWebView node_modules/*
There is a bit more info here.
来源:https://stackoverflow.com/questions/57700996/flutter-how-to-fix-itms-90809-deprecated-api-usage-apple-will-stop-accepting