尝试将 Flutter 应用程序上传到 ItunesConnect 时出现 UIWebView 错误

Getting UIWebView Error When Trying To Upload Flutter app To ItunesConnect

我正在尝试将我的应用程序上传到应用程序商店,但我一直收到错误消息,提示我的应用程序存在此问题:

ITMS-90809:已弃用 API 用法 - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性。了解更多 (https://developer.apple.com/documentation/uikit/uiwebview)。

这是我的家属:

dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^1.0.0
  json_serializable: ^3.2.0

环境:

version: 1.0.0+1

environment:
  sdk: ">=2.2.0 <3.0.0"

dependencies:
  flutter_facebook_login: 
  http: ^0.12.0+2
  json_annotation: ^3.0.0
  shared_preferences: 
  datetime_picker_formfield: ^0.1.8
  image_picker: 0.6.0+1
  image_cropper: ^1.0.1
  path: any
  transparent_image: ^1.0.0
  clippy_flutter: ^1.1.0
  gradient_widgets: ^0.4.1
  gradient_bottom_navigation_bar: ^1.0.0+4
  google_sign_in: 
  firebase_auth:
  rxdart: 
  font_awesome_flutter:
  bubble_bottom_bar: ^1.2.0
  flutter_rating: ^0.0.2
  sticky_headers: ^0.1.7
  google_maps_flutter:
  geolocator: ^5.1.1+1
  flutter_google_places: 
  google_maps_webservice:
  geocoder: ^0.2.1
  source_gen:
  flutter_counter: ^1.0.3
  share:
  carousel_pro: ^1.0.0
  dropdown_menu:
  flutter_flip_view:
  permission_handler: ^3.0.1
  giffy_dialog:
  autocomplete_textfield: ^1.6.4
  flutter_speed_dial: ^1.2.5
  catcher: ^0.3.4
  shimmer: ^1.1.1
  persistent_bottom_nav_bar: ^1.3.0

我的pods:

PODS:
  - AppAuth (1.3.0):
    - AppAuth/Core (= 1.3.0)
    - AppAuth/ExternalUserAgent (= 1.3.0)
  - AppAuth/Core (1.3.0)
  - AppAuth/ExternalUserAgent (1.3.0)
  - Bolts (1.9.1):
    - Bolts/AppLinks (= 1.9.1)
    - Bolts/Tasks (= 1.9.1)
  - Bolts/AppLinks (1.9.1):
    - Bolts/Tasks
  - Bolts/Tasks (1.9.1)
  - catcher (0.0.1):
    - Flutter
  - device_info (0.0.1):
    - Flutter
  - FBSDKCoreKit (4.39.1):
    - Bolts (~> 1.9)
  - FBSDKLoginKit (4.39.1):
    - FBSDKCoreKit
  - Firebase/Auth (6.24.0):
    - Firebase/CoreOnly
    - FirebaseAuth (~> 6.5.3)
  - Firebase/Core (6.24.0):
    - Firebase/CoreOnly
    - FirebaseAnalytics (= 6.5.0)
  - Firebase/CoreOnly (6.24.0):
    - FirebaseCore (= 6.7.0)
  - firebase_auth (0.0.1):
    - Firebase/Auth (~> 6.0)
    - Firebase/Core
    - Flutter
  - firebase_core (0.0.1):
    - Firebase/Core
    - Flutter
  - firebase_core_web (0.1.0):
    - Flutter
  - FirebaseAnalytics (6.5.0):
    - FirebaseCore (~> 6.7)
    - FirebaseInstallations (~> 1.2)
    - GoogleAppMeasurement (= 6.5.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 6.0)
    - GoogleUtilities/MethodSwizzler (~> 6.0)
    - GoogleUtilities/Network (~> 6.0)
    - "GoogleUtilities/NSData+zlib (~> 6.0)"
    - nanopb (~> 1.30905.0)
  - FirebaseAuth (6.5.3):
    - FirebaseAuthInterop (~> 1.0)
    - FirebaseCore (~> 6.6)
    - GoogleUtilities/AppDelegateSwizzler (~> 6.5)
    - GoogleUtilities/Environment (~> 6.5)
    - GTMSessionFetcher/Core (~> 1.1)
  - FirebaseAuthInterop (1.1.0)
  - FirebaseCore (6.7.0):
    - FirebaseCoreDiagnostics (~> 1.3)
    - FirebaseCoreDiagnosticsInterop (~> 1.2)
    - GoogleUtilities/Environment (~> 6.5)
    - GoogleUtilities/Logger (~> 6.5)
  - FirebaseCoreDiagnostics (1.3.0):
    - FirebaseCoreDiagnosticsInterop (~> 1.2)
    - GoogleDataTransportCCTSupport (~> 3.1)
    - GoogleUtilities/Environment (~> 6.5)
    - GoogleUtilities/Logger (~> 6.5)
    - nanopb (~> 1.30905.0)
  - FirebaseCoreDiagnosticsInterop (1.2.0)
  - FirebaseInstallations (1.2.0):
    - FirebaseCore (~> 6.6)
    - GoogleUtilities/Environment (~> 6.6)
    - GoogleUtilities/UserDefaults (~> 6.6)
    - PromisesObjC (~> 1.2)
  - Flutter (1.0.0)
  - flutter_facebook_login (0.0.1):
    - FBSDKCoreKit (= 4.39.1)
    - FBSDKLoginKit (= 4.39.1)
    - Flutter
  - flutter_mailer (0.0.1):
    - Flutter
  - flutter_plugin_android_lifecycle (0.0.1):
    - Flutter
  - fluttertoast (0.0.2):
    - Flutter
  - geocoder (0.0.1):
    - Flutter
  - geolocator (5.1.3):
    - Flutter
  - google_api_availability (2.0.1):
    - Flutter
  - google_maps_flutter (0.0.1):
    - Flutter
    - GoogleMaps
  - google_sign_in (0.0.1):
    - Flutter
    - GoogleSignIn (~> 5.0)
  - google_sign_in_web (0.8.1):
    - Flutter
  - GoogleAppMeasurement (6.5.0):
    - GoogleUtilities/AppDelegateSwizzler (~> 6.0)
    - GoogleUtilities/MethodSwizzler (~> 6.0)
    - GoogleUtilities/Network (~> 6.0)
    - "GoogleUtilities/NSData+zlib (~> 6.0)"
    - nanopb (~> 1.30905.0)
  - GoogleDataTransport (6.1.0)
  - GoogleDataTransportCCTSupport (3.1.0):
    - GoogleDataTransport (~> 6.1)
    - nanopb (~> 1.30905.0)
  - GoogleMaps (2.7.0):
    - GoogleMaps/Maps (= 2.7.0)
  - GoogleMaps/Base (2.7.0)
  - GoogleMaps/Maps (2.7.0):
    - GoogleMaps/Base
  - GoogleSignIn (5.0.2):
    - AppAuth (~> 1.2)
    - GTMAppAuth (~> 1.0)
    - GTMSessionFetcher/Core (~> 1.1)
  - GoogleUtilities/AppDelegateSwizzler (6.6.0):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
  - GoogleUtilities/Environment (6.6.0):
    - PromisesObjC (~> 1.2)
  - GoogleUtilities/Logger (6.6.0):
    - GoogleUtilities/Environment
  - GoogleUtilities/MethodSwizzler (6.6.0):
    - GoogleUtilities/Logger
  - GoogleUtilities/Network (6.6.0):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (6.6.0)"
  - GoogleUtilities/Reachability (6.6.0):
    - GoogleUtilities/Logger
  - GoogleUtilities/UserDefaults (6.6.0):
    - GoogleUtilities/Logger
  - GTMAppAuth (1.0.0):
    - AppAuth/Core (~> 1.0)
    - GTMSessionFetcher (~> 1.1)
  - GTMSessionFetcher (1.4.0):
    - GTMSessionFetcher/Full (= 1.4.0)
  - GTMSessionFetcher/Core (1.4.0)
  - GTMSessionFetcher/Full (1.4.0):
    - GTMSessionFetcher/Core (= 1.4.0)
  - image_cropper (0.0.1):
    - Flutter
    - TOCropViewController (~> 2.4.0)
  - image_picker (0.0.1):
    - Flutter
  - location_permissions (2.0.2):
    - Flutter
  - nanopb (1.30905.0):
    - nanopb/decode (= 1.30905.0)
    - nanopb/encode (= 1.30905.0)
  - nanopb/decode (1.30905.0)
  - nanopb/encode (1.30905.0)
  - package_info (0.0.1):
    - Flutter
  - permission_handler (3.3.0):
    - Flutter
  - PromisesObjC (1.2.8)
  - share (0.0.1):
    - Flutter
  - shared_preferences (0.0.1):
    - Flutter
  - TOCropViewController (2.4.0)

DEPENDENCIES:
  - catcher (from `.symlinks/plugins/catcher/ios`)
  - device_info (from `.symlinks/plugins/device_info/ios`)
  - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
  - firebase_core (from `.symlinks/plugins/firebase_core/ios`)
  - firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`)
  - Flutter (from `Flutter`)
  - flutter_facebook_login (from `.symlinks/plugins/flutter_facebook_login/ios`)
  - flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`)
  - flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
  - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
  - geocoder (from `.symlinks/plugins/geocoder/ios`)
  - geolocator (from `.symlinks/plugins/geolocator/ios`)
  - google_api_availability (from `.symlinks/plugins/google_api_availability/ios`)
  - google_maps_flutter (from `.symlinks/plugins/google_maps_flutter/ios`)
  - google_sign_in (from `.symlinks/plugins/google_sign_in/ios`)
  - google_sign_in_web (from `.symlinks/plugins/google_sign_in_web/ios`)
  - image_cropper (from `.symlinks/plugins/image_cropper/ios`)
  - image_picker (from `.symlinks/plugins/image_picker/ios`)
  - location_permissions (from `.symlinks/plugins/location_permissions/ios`)
  - package_info (from `.symlinks/plugins/package_info/ios`)
  - permission_handler (from `.symlinks/plugins/permission_handler/ios`)
  - share (from `.symlinks/plugins/share/ios`)
  - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)

SPEC REPOS:
  trunk:
    - AppAuth
    - Bolts
    - FBSDKCoreKit
    - FBSDKLoginKit
    - Firebase
    - FirebaseAnalytics
    - FirebaseAuth
    - FirebaseAuthInterop
    - FirebaseCore
    - FirebaseCoreDiagnostics
    - FirebaseCoreDiagnosticsInterop
    - FirebaseInstallations
    - GoogleAppMeasurement
    - GoogleDataTransport
    - GoogleDataTransportCCTSupport
    - GoogleMaps
    - GoogleSignIn
    - GoogleUtilities
    - GTMAppAuth
    - GTMSessionFetcher
    - nanopb
    - PromisesObjC
    - TOCropViewController

EXTERNAL SOURCES:
  catcher:
    :path: ".symlinks/plugins/catcher/ios"
  device_info:
    :path: ".symlinks/plugins/device_info/ios"
  firebase_auth:
    :path: ".symlinks/plugins/firebase_auth/ios"
  firebase_core:
    :path: ".symlinks/plugins/firebase_core/ios"
  firebase_core_web:
    :path: ".symlinks/plugins/firebase_core_web/ios"
  Flutter:
    :path: Flutter
  flutter_facebook_login:
    :path: ".symlinks/plugins/flutter_facebook_login/ios"
  flutter_mailer:
    :path: ".symlinks/plugins/flutter_mailer/ios"
  flutter_plugin_android_lifecycle:
    :path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
  fluttertoast:
    :path: ".symlinks/plugins/fluttertoast/ios"
  geocoder:
    :path: ".symlinks/plugins/geocoder/ios"
  geolocator:
    :path: ".symlinks/plugins/geolocator/ios"
  google_api_availability:
    :path: ".symlinks/plugins/google_api_availability/ios"
  google_maps_flutter:
    :path: ".symlinks/plugins/google_maps_flutter/ios"
  google_sign_in:
    :path: ".symlinks/plugins/google_sign_in/ios"
  google_sign_in_web:
    :path: ".symlinks/plugins/google_sign_in_web/ios"
  image_cropper:
    :path: ".symlinks/plugins/image_cropper/ios"
  image_picker:
    :path: ".symlinks/plugins/image_picker/ios"
  location_permissions:
    :path: ".symlinks/plugins/location_permissions/ios"
  package_info:
    :path: ".symlinks/plugins/package_info/ios"
  permission_handler:
    :path: ".symlinks/plugins/permission_handler/ios"
  share:
    :path: ".symlinks/plugins/share/ios"
  shared_preferences:
    :path: ".symlinks/plugins/shared_preferences/ios"

SPEC CHECKSUMS:
  AppAuth: 73574f3013a1e65b9601a3ddc8b3158cce68c09d
  Bolts: 8c1e8aab2f603387b8b9924f57d1d64f43d3ffdc
  catcher: e5585ed31458c849f4fd9c3719b2fcb0188b8918
  device_info: cbf09d2ec12aa7110e0b09fabe54b5bd6c8efe74
  FBSDKCoreKit: f442aa96179cc9b382bb4abeb7e340a47cca8f91
  FBSDKLoginKit: c3079d9a4db27c492287b1eed7a4272b28cf8a59
  Firebase: b28e55c60efd98963cd9011fe2fac5a10c2ba124
  firebase_auth: d99b993c1405096e66c58211b1cd956c23eed1c5
  firebase_core: 87e4c7cef68de46c0326ce2ee907fc7e365ead7e
  firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1
  FirebaseAnalytics: 7386fc2176e3f93ad8ef34b5b1f2b33a891e4962
  FirebaseAuth: 7047aec89c0b17ecd924a550c853f0c27ac6015e
  FirebaseAuthInterop: a0f37ae05833af156e72028f648d313f7e7592e9
  FirebaseCore: e610482f64097b0e9f056cd97bc6b33dfabcbb6a
  FirebaseCoreDiagnostics: 4a773a47bd83bbd5a9b1ccf1ce7caa8b2d535e67
  FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
  FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa
  Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
  flutter_facebook_login: be61e24a4b7d621515353c6b4583d1981bdaa3d6
  flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83
  flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
  fluttertoast: b644586ef3b16f67fae9a1f8754cef6b2d6b634b
  geocoder: 3cfab70531a0b367e917bafe82df4c30f6d4c45a
  geolocator: 2d5da6891d865c0f1b4f851683eed890dd9c8bc1
  google_api_availability: 163b30f802e6148c67f092aa4501c90ddd8eec8d
  google_maps_flutter: df4e7de95264aa0a2f11aac0fc7e313acb8ffc7e
  google_sign_in: 6bd214b9c154f881422f5fe27b66aaa7bbd580cc
  google_sign_in_web: 52deb24929ac0992baff65c57956031c44ed44c3
  GoogleAppMeasurement: 4c644d86835d827bab30ab6aabb9ecaf1f500735
  GoogleDataTransport: f6f8eba931df03ebd2232ff4645aa85f8f47b5ab
  GoogleDataTransportCCTSupport: d70a561f7d236af529fee598835caad5e25f6d3d
  GoogleMaps: f79af95cb24d869457b1f961c93d3ce8b2f3b848
  GoogleSignIn: 7137d297ddc022a7e0aa4619c86d72c909fa7213
  GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1
  GTMAppAuth: 4deac854479704f348309e7b66189e604cf5e01e
  GTMSessionFetcher: 6f5c8abbab8a9bce4bb3f057e317728ec6182b10
  image_cropper: 88160bea3665a5fab6989ff3a6825811b8f19a3d
  image_picker: 16e5fec1fbc87fd3b297c53e4048521eaf17cd06
  location_permissions: 67cfaff583afbb027a9f9248196f4b79c40f3cdc
  nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
  package_info: 48b108e75b8802c2d5e126f208ef540561c98aef
  permission_handler: 67637977b227d62d46bfbf524f335f8568de5a73
  PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6
  share: 0b2c3e82132f5888bccca3351c504d0003b3b410
  shared_preferences: 1feebfa37bb57264736e16865e7ffae7fc99b523
  TOCropViewController: 368d8df3ea43b62c3dc5a61f11b9048274d240bd

PODFILE CHECKSUM: 3dbe063e9c90a5d7c9e4e76e70a821b9e2c1d271

COCOAPODS: 1.9.1

我已经完成了 flutter clean、flutter build ios、flutter upgrade,删除了 podfile.lock 并重新安装,但仍然出现错误。

这不是与 flutter 相关的特定问题。

这是 Apple 支持团队发出的警告。这表示 UIWebView 是不可接受的,现在已被弃用。因此,您必须将其替换为 WKWebView。

从 2020 年 4 月开始,UIWebView 在任何 iOS 应用程序中都不可接受,因此您必须将其替换为 WKWebView。 也许截止日期延长到 2020 年 6 月。 但是 UIWebView 已被弃用,用于将应用程序上传到 App Store 的新版本。

为此,您可以遵循此 link:-

https://medium.com/@kiransjadhav111/how-to-use-wkwebview-migrating-uiwebview-to-wkwebview-with-swift-30506885d916