解决 UIWebView 弃用警告由 App Store 在 React Native Expo 上?



我正在使用 Expo (SDK v35( 构建一个 React Native 应用程序,在将二进制文件交付到 App Store Connect 时,我收到一条警告,许多人都收到了:

ITMS-90809:已弃用的 API 用法 - Apple 将停止接受使用 UIWebView API 的应用提交。

我意识到该警告与v7.0.1之前的react-native-webview有关,并且如果在任何地方使用UIWebView,包括依赖项,它就会出现。

但是,我已经完整地清理了代码,以至于 grep -r UIWebView ./* 显示为空(我什至删除了注释(。我还确保所有依赖项都使用大于修补的 7.0.1 版本的 react-native-webview 版本。这是来自grep -r webview ./node_modules/*/package.json:的日志

./node_modules/react-native-signature-canvas/package.json: "react-native-webview": "^7.5.2" ./node_modules/react-native-webview/package.json: "_from": "react-native-webview@^7.5.2", ./node_modules/react-native-webview/package.json: "_id": "react-native-webview@7.6.0", ./node_modules/react-native-webview/package.json: "_location": "/react-native-webview", ./node_modules/react-native-webview/package.json: "raw": "react-native-webview@^7.5.2", ./node_modules/react-native-webview/package.json: "name": "react-native-webview", ./node_modules/react-native-webview/package.json: "escapedName": "react-native-webview", ./node_modules/react-native-webview/package.json: "_resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-7.6.0.tgz", ./node_modules/react-native-webview/package.json: "_spec": "react-native-webview@^7.5.2"

应用程序中实际使用 WebView 的唯一部分是通过模块 react-native-signature-canvas,它不仅使用 webview 版本>= 7.5.2,而且还将useWebKit={true}作为道具传递,确保使用WKWebView而不是UIWebView

关于如何摆脱警告的任何建议?另外,如果我提交应用程序以供审核,它是否会被拒绝?是否考虑了警告以供审查,或者他们只是在不支持UIWebView的iOS版本上测试该应用程序并查看其是否正常运行?

看起来世博会团队已经解决了这个问题,并将在世博会 SDK 37 中发布修复程序。有关此 Github 问题的更多详细信息:https://github.com/expo/expo/issues/5497

之所以发出警告,是因为即使设置了useWebKit={true}道具,编译的应用程序内部仍然具有UIWebViewAPI。不幸的是,Apple 刚刚通知开发人员,从 2020 年 4 月起,他们将不再接受使用该应用程序或在应用程序中具有UIWebView的应用程序提交。同时,您可以在这个艰难的截止日期之前向App Store提交新的和更新的应用程序。

如果您使用的是useWebKit={true},也就是说,您正在使用WKWebView根本不UIWebView。然后,您可以执行以下操作来解决问题 - 已弃用的 API 用法。

  1. 删除Libraries/RNCWebView.xcodeproj/RNCUIWebView.h、RNCUIWebView.m、RNCUIWebViewManager.h、RNCUIWebViewManager.m
  2. Remove Libraries/React.xcodeproj/React/Views/RCTWebView.h、RCTWebView.m、RCTWebViewManager.h、RCTWebViewManager.m

现在我已经成功将app.ipa上传到AppStore,没有任何权限警告。

就这样。我为我工作。我希望它有所帮助。

相关内容

  • 没有找到相关文章

最新更新