记录苹果构建吃包,苹果报itms-90809,cordova 需要将UIWebView转为WKWebView

记录苹果构建吃包,苹果报itms-90809,cordova 需要将UIWebView转为WKWebView

  • 参考链接
  • 步骤
    • 1. 添加cordova-ios 需要是5.1.1 以上
    • 2.增加cordova-plugin-wkwebview-engine
    • 3. 修改config.xml
    • 4. 旧有cordova plugin处理
    • 5.排查项目中的UIWebview
    • 6.打包文件中排查
    • 7. 其他

参考链接

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 [email protected] --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//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==================
菜鸟也想飞的更高

你可能感兴趣的:(cordova)