【问题标题】:How to fix UIWebView deprecated Ionic 3如何修复 UIWebView 已弃用的 Ionic 3
【发布时间】:2020-10-26 06:17:34
【问题描述】:

在收到苹果关于 UIWebView 的消息后

ITMS-90809:不推荐使用的 API - Apple 将停止接受使用 UIWebView API 的应用提交。请参阅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

【问题讨论】:

    标签: cordova ionic3 cordova-ios


    【解决方案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 的第三方框架。 您也可以使用outlined here 进行检查,但过程会稍微复杂一些:

    • 在 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 应用程序中删除该插件。

    【讨论】:

    • 谢谢!我尝试并在platforms/ios/Pods/Flurry-iOS-SDK 中找到了一些参考资料。希望很快能得到该插件的更新。
    猜你喜欢
    • 2020-01-13
    • 1970-01-01
    • 2020-02-02
    • 2023-02-19
    • 1970-01-01
    • 2022-10-22
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多