ITMS-90809:不推荐使用的API使用情况-不再接受使用UIWebView的新应用

时间:2020-07-29 13:17:38

标签: ios react-native app-store react-native-ios

我正在尝试将新应用添加到应用商店。提交应用程序包几天后,我收到此问题消息

Dear Developer,
We identified one or more issues with a recent delivery for your app. Please correct the following issues, then upload again.
ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

我搜索了此问题的解决方案,但没有得到明确的答案。许多人建议在整个项目中搜索UIWebView,并用WKWebView代替。因此,我在项目grep -r "UIWebView" .中尝试了此命令,但在node_modules文件夹中却得到了很多结果。

我的问题是,我应该将node_modules中的所有UIWebView替换为WKWebView吗?还是无需编辑node_modules文件即可解决该问题的另一种解决方案?

这是执行grep -r "UIWebView" .命令的结果

./node_modules/@types/react-native/index.d.ts:     * If `true`, use WKWebView instead of UIWebView.
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/2TRWDP84LFFQE/UIKit-1V5UHAPTOD24G.pcm matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/2TRWDP84LFFQE/MapKit-THDG17AXS092.pcm matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/2TRWDP84LFFQE/modules.idx matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/7M428SZDQ9GN/UIKit-1V5UHAPTOD24G.pcm matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/7M428SZDQ9GN/modules.idx matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/CEMG215KE65F/UIKit-1V5UHAPTOD24G.pcm matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/CEMG215KE65F/WebKit-3M3AFHBPPA3AE.pcm matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/CEMG215KE65F/modules.idx matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/3RS3JN9HVPBL7/UIKit-1V5UHAPTOD24G.pcm matches
Binary file ./node_modules/react-native-maps/ios/build/ModuleCache.noindex/3RS3JN9HVPBL7/modules.idx matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/records/2N/UIWebView.h-GRW3LKFDYW2N matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/records/TD/RCTWebView.m-2ABZCZOZL9XTD matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUPlacemark.o-104O0JRZM0NZL matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTFont.o-2MPSYT0XTFTDX matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapCalloutSubview.o-2PCEP8ZIYRQHC matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTCxxMethod.o-Q9IIEI1LQBPV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTJavaScriptLoader.o-3S80K4L1AECDY matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GQTPointQuadTree.o-1OVZ5FXZYUPY5 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTCxxBridge.o-2PR8RLY6MRMJC matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/JSCExecutorFactory.o-U9DXLPIS1QYJ matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUGridBasedClusterAlgorithm.o-1O524GQDIOBB1 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRDummyView.o-CRNCGBO0AER5 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/UIKit-1V5UHAPTOD24G.pcm-1WUH748S0XGJ0 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapPolygonManager.o-9GKPKR7MWHJX matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTNetworking.o-31PFUVOR4094C matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTSurfaceSizeMeasureMode.o-1W7LAN2SZ87X7 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGMSPolygon.o-1ZOG1NR1HJPSV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapCalloutManager.o-OI9OUZCMP724 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTSurfaceView.o-34LLHOSL0QOJ9 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTModuleMethod.o-1OHZKUM3VP2R9 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUFeature.o-2SIW3YD2G67PB matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/UIKit-1V5UHAPTOD24G.pcm-16IGBUROMETCV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUSimpleClusterAlgorithm.o-C5SGLVTUHIXP matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUKMLParser.o-2RFK7X20EO5XV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUGradient.o-ZRHU90F82MM8 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTSurface.o-31SLS70M87B1T matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapUrlTile.o-3J4LRPXPXKQ20 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTDevSettings.o-356POJZV1YYEP matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTInspectorDevServerHelper.o-2KJJKQH9BHYWN matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUWrappingDictionaryKey.o-1WME37O7QIFEH matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTInspector.o-1CH0YXDRW39FL matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTNativeModule.o-1BF10I3NP2OVS matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTModuleData.o-36N9Y2SB9Z86F matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapOverlay.o-2SI74QI19IJL3 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUWeightedLatLng.o-2UAJEAR63BYDB matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUGeometryRenderer.o-32NYW1IK1HKN1 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapCircleManager.o-1MDLNCAX0XCAN matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTObjcExecutor.o-1VJMB4EITAK8A matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUGeometryCollection.o-1SEDUHZP0UA37 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUPolygon.o-1IPCR23068HTV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/react-native-google-maps-dummy.o-421AO8WO52J4 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUHeatmapTileLayer.o-C1OVBYF2HGIV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/UIKit-1V5UHAPTOD24G.pcm-1OJX6WIWTDM5 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTSurfaceHostingView.o-2HOOT3P1WPLMM matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTBlobManager.o-2A7ILD142RAFJ matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapManager.o-SHGBCO1ZVJ6L matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUStyle.o-1SAHPCL2HHF7I matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapOverlayManager.o-1TRTMH0XXN73D matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapCalloutSubviewManager.o-2HQJ99ODDZHY9 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTManagedPointer.o-3V8WH8BOZIHV matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTHTTPRequestHandler.o-OVSR76GRONSF matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTCxxModule.o-1GPNGVWXCTSMA matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTLog.o-3G08N8XHWIDUF matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTConvert+GMSMapViewType.o-KRHAJ37OGTAS matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMap.o-1QA5U22E1LHK9 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapPolygon.o-1LGFXNNABNUAY matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapCallout.o-3QUWJ05OF8S2R matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GQTPointQuadTreeChild.o-7OGXF4E7AEZ4 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGMSPolyline.o-2YJ9GLNI1OM45 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTMessageThread.o-2WY7TDZS6ISCY matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUDefaultClusterIconGenerator.o-2P4ATTBK5JI57 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapPolylineManager.o-1XLZHJZL4SIDE matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUGeoJSONParser.o-3NR6IGW933XAY matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapMarkerManager.o-1Y9PHY4QFPSU2 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUGroundOverlay.o-2PXUUQP1FE543 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUNonHierarchicalDistanceBasedAlgorithm.o-1S8VBM2MPH0OI matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTSurfaceHostingProxyRootView.o-42J92JECZVGJ matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUPoint.o-3OEX8CGS99IIT matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTPackagerConnection.o-2XYC26HIXHSVC matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTUIManagerObserverCoordinator.o-Z0QGOTFPSNGX matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUStaticCluster.o-3SSWGOOPBXNSX matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapPolyline.o-118WTEI3HMJEK matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/NSDataBigString.o-2ZLPAYR2VJH6I matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/UIKit-1V5UHAPTOD24G.pcm-AM2I5MRVOEF9 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTSurfaceRootView.o-3OS0QUA8Y2H4Y matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTFollyConvert.o-3PFGSX54CK3ZZ matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMULineString.o-3MJYEZ0KERL7V matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapCircle.o-2Q65OKMLFUCJO matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapMarker.o-3RT3UV7Y8NHVO matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUClusterManager.o-1Z8EUXQUWIMLG matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/RCTCxxUtils.o-1PEQK0Z2SWDS6 matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGoogleMapURLTileManager.o-3VCEQQ3F1EWPT matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/GMUDefaultClusterRenderer.o-25WFNHWVXTK5O matches
Binary file ./node_modules/react-native-maps/ios/build/Index/DataStore/v5/units/AIRGMSMarker.o-24NA48SVQF5RV matches
Binary file ./node_modules/react-native-maps/ios/build/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/React.build/Objects-normal/x86_64/RCTWebView.o matches
Binary file ./node_modules/react-native-maps/ios/build/Build/Products/Debug-iphonesimulator/React/libReact.a matches
Binary file ./node_modules/react-native-maps/.gradle/4.10.3/taskHistory/taskHistory.bin matches
./node_modules/react-native/node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
./node_modules/react-native/node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
./node_modules/react-native/Libraries/Components/WebView/WebView.android.js:     * If true, use WKWebView instead of UIWebView.
./node_modules/react-native/Libraries/Components/WebView/WebView.ios.js:     * If true, use WKWebView instead of UIWebView.
./node_modules/react-native/React/Views/RCTWebView.m:@interface RCTWebView () <UIWebViewDelegate, RCTAutoInsetsProtocol>
./node_modules/react-native/React/Views/RCTWebView.m:  UIWebView *_webView;
./node_modules/react-native/React/Views/RCTWebView.m:    _webView = [[UIWebView alloc] initWithFrame:self.bounds];
./node_modules/react-native/React/Views/RCTWebView.m:#pragma mark - UIWebViewDelegate methods
./node_modules/react-native/React/Views/RCTWebView.m:- (BOOL)webView:(__unused UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
./node_modules/react-native/React/Views/RCTWebView.m: navigationType:(UIWebViewNavigationType)navigationType
./node_modules/react-native/React/Views/RCTWebView.m:      @(UIWebViewNavigationTypeLinkClicked): @"click",
./node_modules/react-native/React/Views/RCTWebView.m:      @(UIWebViewNavigationTypeFormSubmitted): @"formsubmit",
./node_modules/react-native/React/Views/RCTWebView.m:      @(UIWebViewNavigationTypeBackForward): @"backforward",
./node_modules/react-native/React/Views/RCTWebView.m:      @(UIWebViewNavigationTypeReload): @"reload",
./node_modules/react-native/React/Views/RCTWebView.m:      @(UIWebViewNavigationTypeFormResubmitted): @"formresubmit",
./node_modules/react-native/React/Views/RCTWebView.m:      @(UIWebViewNavigationTypeOther): @"other",
./node_modules/react-native/React/Views/RCTWebView.m:- (void)webView:(__unused UIWebView *)webView didFailLoadWithError:(NSError *)error
./node_modules/react-native/React/Views/RCTWebView.m:      // Error code 102 "Frame load interrupted" is raised by the UIWebView if
./node_modules/react-native/React/Views/RCTWebView.m:- (void)webViewDidFinishLoad:(UIWebView *)webView
./node_modules/react-native-oauth/ios/OAuthManager/OAuthManager.h:@interface OAuthManager : NSObject <RCTBridgeModule, UIWebViewDelegate>
./node_modules/metro/node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
./node_modules/metro/node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
./node_modules/react-native-linkedin/node_modules/react-native-webview/README.md:- [7.0.1](https://github.com/react-native-community/react-native-webview/releases/tag/v7.0.1) - Removed UIWebView
./node_modules/ua-parser-js/test/browser-test.json:        "ua"      : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",
./node_modules/fbjs/lib/UserAgent.js.flow:   * - UIWebView
./node_modules/fbjs/lib/UserAgent.js:   * - UIWebView
./ios/Pods/AppAuth/README.md:for the auth request. `UIWebView` and `WKWebView` are explicitly *not*
./ios/Pods/GoogleSignIn/CHANGELOG.md:- Supports sign-in via UIWebView rather than app switching to a browser,

1 个答案:

答案 0 :(得分:0)

感谢@PetrBela的评论,我通过创建一个新项目,移动源文件,然后逐个安装库以查看新rn版本不支持哪些库,来将react-native升级到最新版本来解决了我的问题。 / p>

升级后,我发现问题是由使用document引起的,react-native-linkedin具有旧版本的react-native-webview(7.0.5)作为devDependency。

作为一种解决方法,我在项目中安装了最新版本的react-native-webview,然后删除了此文件夹Windows.UI.Color.FromArgb()