cordova - 如何修复 UIWebView 已弃用的 Ionic 3
问题描述
在收到苹果关于 UIWebView 的消息后
ITMS-90809:不推荐使用的 API - Apple 将停止接受使用 UIWebView API 的应用程序的提交。有关更多信息,请参阅https://developer.apple.com/documentation/uikit/uiwebview。
为了修复它,更新了 Cordova 10 和 cordova-ios 6.1.1。它修复了 IOS 平台中的大部分 UIWebView 引用,但它仍然在核心包中显示很少的引用(我猜)
谁能帮助我如何修复剩余的 UIWebView 引用?
我正在使用科尔多瓦:10.0.0 / 离子:3.9.2 /科尔多瓦-ios:6.1.1
解决方案
您屏幕截图中的UIWebView
字符串匹配参考vendor.js
。这些并不重要,因为 Apple 只关心您的应用程序的本机(Objective-C/Swift)代码,即 UIWebView。
要仅搜索相关文件类型的源文件,请尝试以下操作:
grep -inr --include \*.h --include \*.m --include \*.swift UIWebView platforms/ios
如果这没有返回任何结果,则您的应用程序的源代码没有 UIWebView 引用。
但是,如果您在将二进制文件上传到 App Store Connect 时仍然收到 ITMS-90809 警告,可能是因为您的 Cordova 应用程序中的插件包含/依赖于引用 UIWebView 的第三方框架。您也可以按照此处概述的方式进行检查,但过程稍微复杂一些:
- 在 Xcode 中归档您的应用程序
- 在管理器窗口中右键单击它并在 Finder 中显示
- 然后右键单击
.xcarchive
并显示包内容 - 在此位置打开一个终端窗口并导航到
Products/Applications/MyAppName.app
- 然后运行以下命令来扫描应用程序中包含的框架以获取 UIWebView 引用:
for framework in Frameworks/*.framework; do
fname=$(basename $framework .framework)
nm $framework/$fname | grep UIWebView
done
如果有任何匹配项,您需要找到包含该框架的 Cordova 插件。然后将插件版本更新为包含不使用 UIWebView 的新框架版本的版本,或者如果不存在,请针对插件提出问题,自行修复并提出 PR,或者如果其他所有方法都失败,则删除该版本Cordova 应用程序中的插件。
推荐阅读
- c# - 从对象中的字符串数组中过滤字符串数组
- flutter - 使用 geolocator 和 provider 以及 flutter_maps 获取位置
- r - R ggplot geom_point 基于变量的颜色渐变
- javascript - 视图或模板文件中的 JavaScript 代码
- android - 在运行时获取权限 (ACCESS_FINE_LOCATION) 的问题
- python - 遍历 URL 中的页码 - Python Curl API
- php - 当前主机从 htaccess 到 user.ini
- sql - Hive 嵌套查询左连接
- php - 无法将高级自定义字段(ACF)获取到 Laravel
- java - 如何识别执行请求的客户端应用程序