React Expo(SDK v35)を使用したネイティブアプリを構築しています。バイナリを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": "[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"
WebViewが実際に使用されているアプリの唯一の部分は、react-native-signature-canvasモジュールです。これは、webviewバージョン> = 7.5.2を使用するだけでなく、useWebKit={true}
をプロップとして渡し、WKWebView
の使用を保証します、UIWebView
ではありません。
警告を取り除く方法に関する提案はありますか?また、レビューのためにアプリを送信した場合、拒否されますか?警告は検討のために考慮されますか、またはUIWebView
をサポートしないiOSバージョンでアプリをテストして、正常に実行されるかどうかを確認しますか?
useWebKit={true}
を使用している場合、つまりWKWebView
ではなくUIWebView
を使用しています。次に、問題を解決するために以下を実行できます-非推奨のAPIの使用法。
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
これで、許可警告なしでapp.ipaをAppStoreにアップロードしました。
それで全部です。私のために働いています。お役に立てば幸いです。