记录苹果构建吃包,苹果报itms-90809,cordova 需要将UIWebView转为WKWebView
参考链接
cordova官网
https://cordova.apache.org/howto/2020/03/18/wkwebviewonly.html
cnblogs
https://www.cnblogs.com/VoiceOfDreams
stackoverflow
https://stackoverflow.com/questions/57722616/itms-90809-deprecated-api-usage-apple-will-stop-accepting-submissions-of-app
步骤
1. 添加cordova-ios 需要是5.1.1 以上
cordova platform add ios@5.1.1 --save
2.增加cordova-plugin-wkwebview-engine
cordova plugin add cordova-plugin-wkwebview-engine
根据参考链接cnblogs使用wkwebview 会有跨域问题,需要增加cordova plugin add cordova-plugin-wkwebview-file-xhr
cordova plugin add cordova-plugin-wkwebview-file-xhr
我在引入cordova-plugin-wkwebview-engine后启动app白屏,后面引入cordova-plugin-wkwebview-file-xhr后问题解决。
3. 修改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" />
<preference name="InterceptRemoteRequests" value="all" />
</platform>
4. 旧有cordova plugin处理
最好移除重新添加。升级旧的plugin。避免plugin中有使用UIWebview
5.排查项目中的UIWebview
在项目目录下执行grep -r UIWebview .
查找包含UIWebview的文件,大体都是注释了的代码
6.打包文件中排查
(由参考链接评论中找到的方法)
cd ~/Library/Developer/Xcode/Archives/<date>/myapp.xcarchive/Products/Applications/myapp.app
nm myapp | grep UIWeb
for framework in Frameworks/*.framework; do
fname=$(basename $framework .framework)
echo $fname
nm $framework/$fname | grep UIWeb
done
7. 其他
xcode 项目下CordovaLib.xcodeproj下移除UIWebview相关代码(本步骤不清楚是否一定要执行,执行完上面的步骤提交苹果还报itms-90809可以试试看,另外参考链接的评论中也提供了其他的方法可以参考看看)
==========================end==================
菜鸟也想飞的更高