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?
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.
Libraries/RNCWebView.xcodeproj/RNCUIWebView.h、RNCUIWebView.m、RNCUIWebViewManager.h、RNCUIWebViewManager.m
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.