ITMS-90809:不推荐使用的API-自2020年4月30日起,Apple将不再接受使用UIWebView的新应用程序的提交以及从2020年12月起使用UIWebView的应用程序更新的提交。相反,请使用WKWebView来提高安全性和可靠性。
我正在尝试更新现有应用程序,而不是新应用程序。我仍然无法上传该应用程序。我通过电子邮件收到此错误:
We identified one or more issues with a recent delivery for your app, "App Name" 20202.421.1 (6). 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).
Apple是否更改了政策或其他措施?还是我需要更改UIWebView
?
答案 0 :(得分:25)
是的,苹果确实改变了政策 您在使用离子吗?如果是这样,请安装这些:
cordova plugin add cordova-plugin-ionic-webview@latest
npm install @ionic-native/ionic-webview
然后将其添加到ios平台下的 config.xml 中:
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">`
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
最后运行ionic cordova prepare ios
以反映更改
然后运行ionic cordova build ios --prod
PS:请确保您仅安装了一个webview插件。此插件或“ cordova-webviewengine”。但是上述方法对我有效,我的应用现在已在应用商店中
答案 1 :(得分:13)
在终端中,在您的iOS项目文件夹中运行以下命令:
grep -r "UIWebView" .
它将显示所有使用UIWebview的文件。更新任何文件以使用WKWebView。如果您的pod库显示它具有UIWebView。同时更新pods文件。
仅供参考,由于我不得不更新pods文件并不得不修复很多代码,因此花了6个小时来修复我的项目以使用WKWebView。
答案 2 :(得分:6)
几天前,我的IONIC 4项目也遇到了同样的问题。 当我上传IPA时,我从App Store Connect收到此警告。
我通过以下步骤解决了“ UIWebView”问题。希望它也对您有用。
请按照以下步骤操作:
运行以下命令以删除现有平台。
ionic cordova platform rm ios
删除现有的Web视图插件并安装最新的插件。
ionic cordova plugin rm cordova-plugin-ionic-webview
ionic cordova plugin add cordova-plugin-ionic-webview@latest
也安装此。
npm install @ionic-native/ionic-webview@latest
将此添加到ios部分下的config.xml文件中。
<preference name="WKWebViewOnly" value="true" /> <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
检查您的"cordova-ios": "^5.1.1"
版本。它应该是5.1.x
或更大。
然后运行此命令以再次构建。
ionic cordova platform add ios
ionic cordova prepare ios
ionic cordova build ios
仅此而已。它对我有用。
我的Package.json文件:
还共享我的config.xml:
点击此链接以获取更多信息:
https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation/
谢谢。
答案 3 :(得分:2)
就我而言,我的项目中没有 UIWebView
但苹果仍然显示上述错误。然后我使用以下步骤找出包含 UIWebView 的文件。
第一步,打开终端
步骤 2. cd 然后按回车键。
步骤 3. 粘贴此命令
grep -r "UIWebView" .
然后你会找到文件列表。
就我而言。我从项目中删除 GoogleAdMobSDK 并使用 pod 重新安装它。 https://developers.google.com/admob/ios/quick-start
如果您从未使用过 pod,请在 youtube 上学习“如何使用 pod”。
安装pod后。 Apple 接受了我的项目。
嗯。终于解决了。
答案 4 :(得分:1)
facebook4,googleplus,fcm旧版本也使用UIWebView。需要使用最新版本
答案 5 :(得分:1)
对于Xamarin Form项目,这是解决方法:
转到您的iOS项目,打开项目属性,然后将此标志添加到其他mtouch参数字段中:--optimize=experimental-xforms-product-type
与设置为“仅SDK”或“全部”的“链接器行为”一起使用。
从Microsoft了解更多信息:https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/
答案 6 :(得分:1)
答案 here 解决了我的问题
cordova prepare ios
npm install -g cordova-check-plugins
npm install -g npm
cordova-check-plugins --update=auto
npm update -g cordova
ionic cordova platform rm android
ionic cordova platform rm ios
npm i -g @ionic/cli
cordova plugin remove cordova-plugin-inappbrowser
cordova plugin add cordova-plugin-inappbrowser@3.2.0
ionic cordova platform remove ios && ionic cordova platform add ios@latest && ionic cordova build ios
答案 7 :(得分:0)
我在 Ionic 4 中遇到了同样的问题。
解决该问题所遵循的步骤列表
请更新您的IOS平台。和应用浏览器。
cordova plugin add cordova-plugin-wkwebview-engine
run cordova plugin add cordova-plugin-wkwebview-engine
detele node_modules , then reinstall by run yarn or npm install
run ionic cordova platform rm ios
run ionic cordova platform add ios@5.1.1
npm i cordova-plugin-inappbrowser@3.2.0
cordova plugin add cordova-plugin-inappbrowser@3.2.0
ionic cordova prepare ios.
ionic cordova build ios
答案 8 :(得分:0)
第1步:
在xcode项目目录中搜索“ UIWebView”
第2步:
右键单击(在RCTWebView.m上),然后选择“在Project Navigator中显示”
第3步:
向下滚动并仅删除以下四个文件:
1. RCTWebView.h
2. RCTWebView.m
3. RCTWebViewManager.h
4. RCTWebViewManager.m
然后清理项目和存档。
注意:如果您使用'react-native-community / react-native-webview'库,请使用最新版本进行更新。
答案 9 :(得分:0)
更新您的软件包(例如 react-native-device-info)。
它的工作
in package.json update device-info to latest
"react-native-device-info": "^8.0.8",
run this command in terminal
grep -r UIWebView node_modules/*
ignored for contexts returned by UIWebView. */
node_modules/react-addons-shallow-compare/node_modules/fbjs/lib/UserAgent.js.flow: * - UIWebView
node_modules/react-addons-shallow-compare/node_modules/fbjs/lib/UserAgent.js: * - UIWebView
node_modules/recyclerlistview/node_modules/fbjs/lib/UserAgent.js.flow: * - UIWebView
node_modules/recyclerlistview/node_modules/fbjs/lib/UserAgent.js: * - 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",
DT-67iMac-2:IGPSYARD stigasoft$
yarn upgrade react-addons-shallow-compare recyclerlistview ua-parser-jss
cd ios
rm -rf Pods # probably not needed. (delete pods and podfile.lock file and again pod install)
pod install
构建我的项目,测试一切仍然有效并提交给 Apple。 这次没有任何关于使用折旧 API 的消息。