web-dev-qa-db-fra.com

Résolution de l'avertissement de dépréciation d'UIWebView par l'App Store sur React Native Expo?

Je crée une React application native avec Expo (SDK v35) et lors de la livraison des binaires à App Store Connect, je reçois un avertissement indiquant que beaucoup ont obtenu:

ITMS-90809: Utilisation d'API obsolète - Apple arrêtera d'accepter les soumissions d'applications qui utilisent les API UIWebView.

Je me rends compte que l'avertissement est lié à react-native-webview avant la version 7.0.1 et qu'il apparaîtra si UIWebView est utilisé n'importe où, y compris les dépendances.

Cependant, j'ai nettoyé le code dans son intégralité, au point que grep -r UIWebView ./* est vide (j'ai même supprimé les commentaires). J'ai également veillé à ce que toutes les dépendances utilisent une version de react-native-webview supérieure à la version corrigée 7.0.1. Voici le journal de 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": "[email protected]", ./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"

La seule partie de l'application où WebView est réellement utilisée est via le module react-native-signature-canvas, qui utilise non seulement les versions de la vue Web> = 7.5.2 mais passe également useWebKit={true} comme accessoires, garantissant l'utilisation de WKWebView, et non UIWebView.

Des suggestions sur la façon de se débarrasser de l'avertissement? De plus, si je soumets l'application pour examen, sera-t-elle rejetée? L'avertissement est-il pris en considération pour examen ou va-t-il simplement tester l'application sur une version iOS qui ne prend pas en charge UIWebView et voir si elle fonctionne normalement?

4
Ohto Pentikainen

Si vous utilisez useWebKit={true}, c'est-à-dire que vous utilisez WKWebView pas UIWebView du tout. Ensuite, vous pouvez faire ce qui suit pour résoudre le problème - Utilisation d'API dépréciée.

  1. Retirer 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

Maintenant, j'ai déjà téléchargé app.ipa sur AppStore avec succès sans aucun avertissement d'autorisation.

C'est tout. Je travaille pour moi. J'espère que ça aide.

0
Mohit Sharma