ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性
Posted
技术标签:
【中文标题】ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性【英文标题】:ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability 【发布时间】:2020-10-18 22:27:27 【问题描述】:我使用 phonegal 构建,但今天将 .ipa 上传到苹果商店时出现此错误
ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用。相反,使用 WKWebView 来提高安全性和可靠性
然后我删除了 config.xml 中的所有 Cordova 插件,但仍然出现一些错误。我研究并找到了 monaca..在 monaca 配置选项中,我选择了 WKWebViewOnly 但仍然出现一些错误..这是我的 config.xml
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" id="com.demircode.bileteviniz" version="1.3.1">
<name>BiletEviniz</name>
<description>BiletEviniz</description>
<author/>
<content src="index.html"/>
<allow-navigation href="*"/>
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
<preference name="Orientation" value="default"/>
<preference name="loglevel" value="DEBUG"/>
<preference name="androidLaunchMode" value="singleTop"/>
<preference name="ErrorUrl" value=""/>
<preference name="Fullscreen" value="false"/>
<preference name="KeepRunning" value="true"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="1000"/>
<preference name="AllowInlineMediaPlayback" value="false"/>
<preference name="BackupWebStorage" value="cloud"/>
<preference name="FadeSplashScreenDuration" value="250"/>
<preference name="KeyboardDisplayRequiresUserAction" value="true"/>
<preference name="MediaPlaybackRequiresUserAction" value="false"/>
<preference name="SuppressesIncrementalRendering" value="false"/>
<preference name="TopActivityIndicator" value="gray"/>
<preference name="GapBetweenPages" value="0"/>
<preference name="PageLength" value="0"/>
<preference name="PaginationBreakingMode" value="page"/>
<preference name="PaginationMode" value="unpaginated"/>
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage"/>
</feature>
<preference name="UIWebViewDecelerationSpeed" value="normal"/>
<preference name="monaca:AndroidIsPackageNameSeparate" value="false"/>
<platform name="ios">
<preference name="orientation" value="portrait"/>
<icon src="lobbe.png"/>
<icon platform="ios" src="lobbe-76-76.png" />
<icon platform="ios" src="lobbe-120-120.png" />
<icon platform="ios" src="lobbe-152-152.png" />
<icon platform="ios" src="lobbe-1024-1024.png" />
<icon platform="ios" src="lobbe-40-40.png" />
<icon platform="ios" src="lobbe-167-167.png" />
<splash src="/res/ios/screen/Default@2x~universal~anyany.png"/>
<preference name="WKWebViewOnly" value="true"/>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine"/>
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine"/>
</feature>
<config-file platform="ios" parent="CFBundleLocalizations" target="*-Info.plist">
<array>
<string>tr</string>
<string>en</string>
</array>
</config-file>
</platform>
<preference name="WindowsStorePublisherName" value="My Name"/>
<preference name="WindowsStoreIdentityName" value="3e46a957-1e6e-2eb6-9380-b3b37c4dec02"/>
<preference name="ios-XCBuildConfiguration-TARGETED_DEVICE_FAMILY" value="1,2"/>
<preference name="AutoHideSplashScreen" value="true"/>
<preference name="FadeSplashScreen" value="true"/>
<preference name="ShowSplashScreenSpinner" value="false"/>
<access origin="bileteviniz.com"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="EnableViewportScale" value="false"/>
</widget>
这是 package.json
"name": "monaca-template-minimum",
"version": "2.0.7",
"displayName": "Monaca Template Minimum",
"dependencies":
"cordova-custom-config": "5.1.0",
"cordova-plugin-splashscreen": "5.0.2",
"cordova-plugin-whitelist": "1.3.3",
"monaca-plugin-monaca-core": "3.3.0"
,
"scripts":
"monaca:preview": "npm run dev",
"dev": "browser-sync start -s www/ --watch --port 8080 --ui-port 8081"
,
"cordova":
"plugins":
"cordova-plugin-whitelist": ,
"cordova-plugin-splashscreen": ,
"cordova-custom-config": ,
"monaca-plugin-monaca-core":
,
"devDependencies":
"browser-sync": "^2.26.7",
"cordova": "^9.0.0"
【问题讨论】:
仅仅不使用 UIWebView 是不够的,你的代码根本没有任何参考。您可能需要更新版本的 monaca 插件 我删除了所有插件并添加了你可以在config.xml中看到的monaca 【参考方案1】:您的 config.xml 应该如下所示:
<platform name="ios">
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform>
<plugin name="cordova-plugin-wkwebview-engine"/>
<plugin name="cordova-plugin-inappbrowser"/>
您的其他插件之一可能调用 UIWebView。您可能需要尝试将可疑插件排除在外,直到问题消失,然后查看是否有插件的更新版本。
(上面的config.xml代码来自VoltBuilder docs)
【讨论】:
以上是关于ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性的主要内容,如果未能解决你的问题,请参考以下文章
ITMS-90809:不推荐使用的 API 使用 - Apple 将停止接受使用 UIWebView API 的应用程序的提交
ITMS-90809:不推荐使用的 API - 不再接受使用 UIWebView 的新应用程序。相反,使用 WKWebView 来提高安全性和可靠性
ITMS-90809:框架上的 UIWebView API 弃用
ITMS-90809:使用 react-native-html-to-pdf 时已弃用 API 使用警告