Ionic应用上传App Store遇UIWebView被拒 需替换为WKWebView
IONIC应用适配App Store WKWebView审核要求操作指南
苹果当前已完全禁止新上架应用包含UIWebView相关代码,所有web容器逻辑必须切换为WKWebView,以下是完整修改步骤:
1. 升级核心框架依赖
- 若为Cordova架构项目,将cordova-ios平台升级到*6.0+*稳定版本,执行命令:
ionic cordova platform remove ios && ionic cordova platform add ios@latest - 若为Capacitor架构项目,将@capacitor/ios升级到*2.0+*版本,执行命令:
npm install @capacitor/ios@latest && npx cap sync ios - 升级webview核心插件cordova-plugin-ionic-webview到*5.0+*版本,该版本已完全移除UIWebView相关逻辑。
- 若使用的是IONIC 1等极老版本框架,优先整体升级到IONIC 5+版本,否则无法完全移除UIWebView依赖。
2. 清理第三方插件的UIWebView引用
绝大多数审核不通过的情况都是第三方旧插件隐含UIWebView调用,需按以下步骤排查:
- 执行全局搜索命令确认UIWebView引用位置:
grep -r UIWebView ./platforms/ios/ - 常用插件升级要求:
- cordova-plugin-inappbrowser升级到*4.0+*版本
- 废弃cordova-plugin-file-transfer插件,改用fetch API或最新版@ionic-native/http插件
- 所有自定义插件如果存在UIWebView头文件引用、相关方法调用,全部替换为WKWebView对应API
- 若遇到停止维护的第三方插件依赖UIWebView,直接替换为同功能的新版插件,或手动修改插件源码删除所有UIWebView逻辑。
3. 新增强制WKWebView配置
- 在项目根目录的config.xml中添加以下全局配置:
<preference name="WKWebViewOnly" value="true" /> <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
- 用XCode打开iOS项目,在Build Settings中搜索
WK_WEB_VIEW_ONLY,将值设置为YES,强制编译时屏蔽所有UIWebView相关代码路径。
4. 重新打包验证
- 清空项目缓存:删除node_modules、plugins、platforms文件夹后重新执行
npm install安装所有依赖 - 重新添加iOS平台打包后,再次全局搜索UIWebView,确认无任何引用后再提交App Store审核。
内容的提问来源于stack exchange,提问作者PrafulPravin
相关产品推荐
相关产品推荐

