ITMS-90809:不推荐使用的API用法-不再接受使用UIWebView的现有应用程序

时间:2020-05-14 06:16:02

标签: ios uiwebview app-store app-store-connect wkwebview

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

10 个答案:

答案 0 :(得分:25)

是的,苹果确实改变了政策 您在使用离子吗?如果是这样,请安装这些:

  1. cordova plugin add cordova-plugin-ionic-webview@latest
  2. 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收到此警告。

enter image description here

我通过以下步骤解决了“ UIWebView”问题。希望它也对您有用。

请按照以下步骤操作:

  1. 运行以下命令以删除现有平台。

    ionic cordova platform rm ios

  2. 删除现有的Web视图插件并安装最新的插件。

    ionic cordova plugin rm cordova-plugin-ionic-webview

    ionic cordova plugin add cordova-plugin-ionic-webview@latest

  3. 也安装此。

    npm install @ionic-native/ionic-webview@latest

  4. 将此添加到ios部分下的config.xml文件中。

    <preference name="WKWebViewOnly" value="true" /> <feature name="CDVWKWebViewEngine"> <param name="ios-package" value="CDVWKWebViewEngine" /> </feature> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

  5. 检查您的"cordova-ios": "^5.1.1"版本。它应该是5.1.x或更大。

  6. 然后运行此命令以再次构建。

    ionic cordova platform add ios

    ionic cordova prepare ios

    ionic cordova build ios

仅此而已。它对我有用。


我的Package.json文件:

enter image description here

enter image description here

还共享我的config.xml:

enter image description here

点击此链接以获取更多信息:

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)

这些Cordova插件的

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

more details

构建我的项目,测试一切仍然有效并提交给 Apple。 这次没有任何关于使用折旧 API 的消息。