如何修复 UIWebView 弃用的 Ionic 3
How to fix UIWebView deprecated Ionic 3
收到苹果关于 UIWebView 的消息后
ITMS-90809:弃用 API 用法 – Apple 将停止接受使用 UIWebView APIs 的应用提交。有关详细信息,请参阅 https://developer.apple.com/documentation/uikit/uiwebview。
要修复它已更新 Cordova 10 和 cordova-ios 6.1.1。它修复了 IOS 平台中的大部分 UIWebView 引用,但它仍然在核心包中显示了很少的引用(我猜)
任何人都可以帮助我如何修复剩余的 UIWebView 引用?
我正在使用 cordova: 10.0.0 / ionic: 3.9.2 / cordova-ios: 6.1.1
你截图中匹配的UIWebView
字符串指的是vendor.js
。这些并不重要,因为 Apple 只关心您的应用程序引用 UIWebView 的本机 (Objective-C/Swift) 代码。
要仅搜索相关文件类型的源文件,试试这个:
grep -inr --include \*.h --include \*.m --include \*.swift UIWebView platforms/ios
如果此 returns 没有结果,则您应用的源代码没有 UIWebView 引用。
但是,如果您在将二进制文件上传到 App Store Connect 时仍然收到 ITMS-90809 警告,这可能是因为您的 Cordova 应用程序中的插件 include/depend 在第 3 方框架上引用了 UIWebView。
您也可以将其检查为 outlined here,但过程稍微复杂一些:
- 将您的应用存档在 Xcode
- Right-click 在管理器中 window 并在 Finder 中显示
- 然后在
.xcarchive
上 right-click 并显示包装内容
- 在此位置打开终端 window 并导航至
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 应用程序中删除该插件。
收到苹果关于 UIWebView 的消息后
ITMS-90809:弃用 API 用法 – Apple 将停止接受使用 UIWebView APIs 的应用提交。有关详细信息,请参阅 https://developer.apple.com/documentation/uikit/uiwebview。
要修复它已更新 Cordova 10 和 cordova-ios 6.1.1。它修复了 IOS 平台中的大部分 UIWebView 引用,但它仍然在核心包中显示了很少的引用(我猜)
任何人都可以帮助我如何修复剩余的 UIWebView 引用?
我正在使用 cordova: 10.0.0 / ionic: 3.9.2 / cordova-ios: 6.1.1
你截图中匹配的UIWebView
字符串指的是vendor.js
。这些并不重要,因为 Apple 只关心您的应用程序引用 UIWebView 的本机 (Objective-C/Swift) 代码。
要仅搜索相关文件类型的源文件,试试这个:
grep -inr --include \*.h --include \*.m --include \*.swift UIWebView platforms/ios
如果此 returns 没有结果,则您应用的源代码没有 UIWebView 引用。
但是,如果您在将二进制文件上传到 App Store Connect 时仍然收到 ITMS-90809 警告,这可能是因为您的 Cordova 应用程序中的插件 include/depend 在第 3 方框架上引用了 UIWebView。 您也可以将其检查为 outlined here,但过程稍微复杂一些:
- 将您的应用存档在 Xcode
- Right-click 在管理器中 window 并在 Finder 中显示
- 然后在
.xcarchive
上 right-click 并显示包装内容 - 在此位置打开终端 window 并导航至
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 应用程序中删除该插件。