ITMS-90809:弃用 API 用法 - 不再接受使用 UIWebView 的现有应用程序
ITMS-90809: Deprecated API Usage - existing app that use UIWebView are no longer accepted
ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliability.
我正在尝试更新现有应用程序,而不是新应用程序。我仍然无法上传该应用程序。我通过电子邮件收到此错误:
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
?
在终端中,运行 您的 iOS 项目文件夹中的此命令:
grep -r "UIWebView" .
它将显示所有使用 UIWebview 的文件。更新任何文件以使用 WKWebView。如果你的 pod 库显示它有 UIWebView。同时更新 pods 文件。
仅供参考,我花了 6 个小时来修复我的项目以使用 WKWebView,因为我必须更新 pods 文件并且必须修复大量代码。
是的,Apple 确实更改了政策
你在用离子吗?如果是这样,请安装这些:
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'。但是上面的方法对我有用,我的应用程序现在在应用程序商店
我在 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
几天前我的 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
将此添加到 config.xml 文件的 ios 部分下。
<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 也 :
关注此 link 了解更多信息:
https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation/
谢谢。
facebook4、googleplus、fcm 这些旧版本的 cordova 插件也使用 UIWebView。需要使用最新版本
我按照以下步骤摆脱了这个问题(在 react-native 项目中)-
第 1 步:
Search “UIWebView” in xcode project directory
第 2 步:
Right click (on RCTWebView.m) and select “Reveal In Project Navigator”
第 3 步:
Scroll down and delete the following four files only:
1. RCTWebView.h
2. RCTWebView.m
3. RCTWebViewManager.h
4. RCTWebViewManager.m
然后清理项目和存档。
N.B:如果您使用 'react-native-community/react-native-webview' 库,则更新为最新版本,否则就完成了。
对于 Xamarin Form 项目,修复如下:
转到您的 iOS 项目,打开项目属性并在附加的 mtouch 参数字段中添加此标志:--optimize=experimental-xforms-product-type
此标志与设置为 SDK Only 或 All 的链接器行为一起使用。
阅读来自 Microsoft 的更多信息:https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/
在我的例子中,我的项目中没有 UIWebView
但 apple 仍然显示上述错误。然后我使用以下步骤找出包含 UIWebView 的文件。
步骤1.Open终端
步骤 2. cd 然后按回车键。
步骤 3. 粘贴此命令
grep -r "UIWebView" .
然后你会找到文件列表。
以我为例。我从项目中删除了 GoogleAdMobSDK,然后使用 pod 再次安装它。
https://developers.google.com/admob/ios/quick-start
如果您从未使用过 pod,请在 youtube 上学习“如何使用 pod”。
安装 pod 后。 Apple 接受了我的项目。
嗯。终于解决了
答案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
更新您的包(例如 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.
的消息
我遇到了同样的问题并通过以下步骤解决了:
- 更新网络视图插件
cordova plugin add cordova-plugin-ionic-webview@latest
npm install @ionic-native/ionic-webview
- 向
config.xml
文件添加一些配置
<allow-navigation href="http://localhost:8080/*" />
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<allow-intent href="itms:*" />
<preference name="WKWebViewOnly" value="true" />
<preference name="InAppBrowserStatusBarStyle" value="lightcontent" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
- 删除或更新社交分享插件(如果您使用它)
ionic cordova plugin add cordova-plugin-x-socialsharing@latest --save
npm install @ionic-native/social-sharing@latest --save
- 删除并重新添加 iOS 平台
ITMS-90809: Deprecated API Usage - Apple will no longer accept submissions of new apps that use UIWebView as of April 30, 2020 and app updates that use UIWebView as of December 2020. Instead, use WKWebView for improved security and reliability.
我正在尝试更新现有应用程序,而不是新应用程序。我仍然无法上传该应用程序。我通过电子邮件收到此错误:
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
?
在终端中,运行 您的 iOS 项目文件夹中的此命令:
grep -r "UIWebView" .
它将显示所有使用 UIWebview 的文件。更新任何文件以使用 WKWebView。如果你的 pod 库显示它有 UIWebView。同时更新 pods 文件。
仅供参考,我花了 6 个小时来修复我的项目以使用 WKWebView,因为我必须更新 pods 文件并且必须修复大量代码。
是的,Apple 确实更改了政策 你在用离子吗?如果是这样,请安装这些:
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'。但是上面的方法对我有用,我的应用程序现在在应用程序商店
我在 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
几天前我的 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
将此添加到 config.xml 文件的 ios 部分下。
<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 也 :
关注此 link 了解更多信息:
https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation/
谢谢。
facebook4、googleplus、fcm 这些旧版本的 cordova 插件也使用 UIWebView。需要使用最新版本
我按照以下步骤摆脱了这个问题(在 react-native 项目中)-
第 1 步:
Search “UIWebView” in xcode project directory
第 2 步:
Right click (on RCTWebView.m) and select “Reveal In Project Navigator”
第 3 步:
Scroll down and delete the following four files only:
1. RCTWebView.h
2. RCTWebView.m
3. RCTWebViewManager.h
4. RCTWebViewManager.m
然后清理项目和存档。
N.B:如果您使用 'react-native-community/react-native-webview' 库,则更新为最新版本,否则就完成了。
对于 Xamarin Form 项目,修复如下:
转到您的 iOS 项目,打开项目属性并在附加的 mtouch 参数字段中添加此标志:--optimize=experimental-xforms-product-type
此标志与设置为 SDK Only 或 All 的链接器行为一起使用。
阅读来自 Microsoft 的更多信息:https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/
在我的例子中,我的项目中没有 UIWebView
但 apple 仍然显示上述错误。然后我使用以下步骤找出包含 UIWebView 的文件。
步骤1.Open终端
步骤 2. cd 然后按回车键。
步骤 3. 粘贴此命令
grep -r "UIWebView" .
然后你会找到文件列表。
以我为例。我从项目中删除了 GoogleAdMobSDK,然后使用 pod 再次安装它。 https://developers.google.com/admob/ios/quick-start
如果您从未使用过 pod,请在 youtube 上学习“如何使用 pod”。
安装 pod 后。 Apple 接受了我的项目。
嗯。终于解决了
答案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
更新您的包(例如 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.
的消息我遇到了同样的问题并通过以下步骤解决了:
- 更新网络视图插件
cordova plugin add cordova-plugin-ionic-webview@latest
npm install @ionic-native/ionic-webview
- 向
config.xml
文件添加一些配置
<allow-navigation href="http://localhost:8080/*" />
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<allow-intent href="itms:*" />
<preference name="WKWebViewOnly" value="true" />
<preference name="InAppBrowserStatusBarStyle" value="lightcontent" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
- 删除或更新社交分享插件(如果您使用它)
ionic cordova plugin add cordova-plugin-x-socialsharing@latest --save
npm install @ionic-native/social-sharing@latest --save
- 删除并重新添加 iOS 平台