uni-app 云打包的iOS包还包含了UIWebView
uni-app 云打包的iOS包还包含了UIWebView
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | macOS 12.3.1 | HBuilderX |
iOS | iOS 15 | |
iPhone 13 pro |
产品分类:uniapp/App
PC开发环境操作系统:Mac
HBuilderX类型:正式
HBuilderX版本号:3.4.7
手机系统:iOS
手机系统版本号:iOS 15
手机厂商:苹果
手机机型:iPhone 13 pro
页面类型:nvue
vue版本:vue3
打包方式:云端
App下载地址或H5网址:https://ide.dcloud.net.cn/build/download/c600b440-cc3b-11ec-beea-d9169a0f59af
操作步骤:
每次选择云打包之后,下载ipa包,然后解压之后,进入目录,执行nm HBuilder | grep UIWebView
命令,会出现:U _OBJC_CLASS_$_UIWebView
。
也就是意味着还存在了UIWebView的引用。
预期结果:
不再包含UIWebView
实际结果:
还包含了UIWebView
bug描述:
使用了云打包之后,检测是否包含UIWebView的时候,还是会含有UIWebView。 已经按照文档配置,去掉了与UIWebView相关的配置,以及三方插件也已经确定不包含UIWebView了。 项目配置如下:
"kernel" : {
"ios" : "WKWebview"
},
检测结果如下:
U _OBJC_CLASS_$_UIWebView
默认是WKWebview,不需要额外配置
感谢,但是我测试过了,无论配置不配置,勾选不勾选,云打包出来的都会有UIWebView的引用。
回复 h***@cashgroup.cn: UNI ID 提供一下
是的,在过去的几年里,Apple 已经明确表示不再接受包含 UIWebView
的应用提交到 App Store。UIWebView
是 iOS 中用于显示网页内容的旧版组件,但已经被 WKWebView
取代。Apple 要求开发者使用 WKWebView
,因为它更安全、性能更好,并且符合现代 Web 标准。
如果 uni-app 云打包的 iOS 包仍然包含 UIWebView
,这可能会导致应用被 Apple 拒绝上架。为了避免这个问题,你需要确保你的 uni-app 项目使用 WKWebView
而不是 UIWebView
。
以下是一些可能的解决方案:
1. 更新 uni-app 版本
确保你使用的是最新版本的 uni-app。DCloud 团队通常会不断更新框架以适配最新的平台要求。新版本可能已经默认使用 WKWebView
。
2. 检查插件和依赖
某些第三方插件或依赖可能仍然使用 UIWebView
。检查你的项目中是否使用了这些插件,并尝试找到替代方案。
3. 修改配置文件
在 uni-app 项目中,你可以通过修改配置文件来强制使用 WKWebView
。具体步骤如下:
- 打开
manifest.json
文件。 - 在
"app-plus"
节点下,添加或修改以下配置:
"ios": {
"webview": "wkwebview"
}