【问题标题】:ITMS-90809: Deprecated API Usage — Apple will stop accepting submissions of apps that use UIWebView APIs When upload myAppITMS-90809:不推荐使用的 API 使用 — 当上传 myApp 时,Apple 将停止接受使用 UIWebView API 的应用程序的提交
【发布时间】:2020-02-14 23:10:16
【问题描述】:

我尝试将应用上传到 App Store,但出现了问题。我收到一封电子邮件,告诉我不要使用UIWebView,但被拒绝了。

App Store Connect 尊敬的开发者,

我们发现您的应用最近交付的一个或多个问题, “游戏主” 1.0.0 (1)。您的交付成功,但您可以 希望在您下次交付时更正以下问题:

ITMS-90809:不推荐使用的 API - Apple 将停止接受 提交使用 UIWebView API 的应用程序。看 https://developer.apple.com/documentation/uikit/uiwebview 了解更多 信息。

纠正问题后,您可以使用 Xcode 或 Application 加载程序将新的二进制文件上传到 App Store Connect。

最好的问候,

App Store 团队

但我不使用UIWebView,我只使用WKWebView。所以我做了一个完整的搜索,看看图书馆是否在使用它。但是什么也没搜到。有什么问题?

shift + command + F的搜索结果

Web 视图使用类

import Foundation
import UIKit
import WebKit
import Toaster
import StoreKit
import MobileCoreServices
import Alamofire

class kWebViewController: UIViewController, WKUIDelegate, WKScriptMessageHandler, UIImagePickerControllerDelegate, UINavigationControllerDelegate,  NASWallDelegate, SKProductsRequestDelegate {

 @IBOutlet weak var indicator: UIImageView!
    @IBOutlet var kWebView: WKWebView!

podfile

# Uncomment the next line to define a global platform for your project
platform :ios, '12.0'

target 'gamemain' do
    # Comment the next line if you don't want to use dynamic frameworks
     use_frameworks!

    # Pods for DeleteMe
    pod 'SwiftSVG', '~> 2.0'
    pod 'Toaster'
    pod 'BigInt', '~> 4.0'
    pod 'CryptoSwift'
    pod 'RealmSwift'
    pod 'web3.swift.pod', '~> 2.2.0'
    pod 'Firebase'
    pod 'Firebase/Messaging'
    pod 'Firebase/Auth'
    pod 'Firebase/Core'
    pod 'Alamofire', '~> 4.8.2'
end

我相信你会解决这个问题的。

【问题讨论】:

  • 尝试pod update 一次,然后尝试上传。也许框架更新了。
  • @NiravKotecha 这不是福特问题对我造成的问题。 Object-C 文件夹中的 naswall.a 文件有问题。

标签: ios swift iphone cocoapods app-store


【解决方案1】:

我执行了grep -r "uiwebview" . 命令,它显示了许多文件,如附图所示。

对于最终的 pod,我知道我应该更新它们,但是我的项目中的文件呢?但是我确信我的项目中根本没有 uiwebview

【讨论】:

    【解决方案2】:

    我按照这些步骤发现了问题

    • ? 在 Xcode 上打开 ios 项目并搜索 UIWebView
    • ?结果会显示哪个依赖项正在使用UIWebView
    • ?然后尝试更新你的依赖。
    • 在第一步?之后,确保新的依赖没有使用 UIWebView

    对于我来说,这个库使用 UIWebView flutter_facebook_login: ^2.0.1 并替换了 flutter_facebook_auth: ^0.2.3

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      在 mac 中,这个命令对我有用

      sudo grep -wil -r “uiwebview” .
      

      您可以转到您的项目文件夹并运行上述命令。 它会列出所有使用 UIWebview 的文件

      【讨论】:

        【解决方案4】:

        Apple 最近推出了新的应用提交警告 ITMS - 90809,表明我们正式弃用 UIWebView。如果您的应用程序代码或任何框架仍然包含UIWebView 的引用,那么您肯定会收到警告。

        WKWebViewUIWebView 的替代品,我相信苹果很快就会开始拒绝仍然使用UIWebView 的应用程序。所以要为此做好准备。

        通过执行以下终端命令,您可以轻松了解哪个库仍在使用UIWebView 参考(不要错过 .(点))。

        $ grep -r "UIWebView" .
        

        框架匹配的输出

        ./<ANY>.framework/Headers/ANY.h:#define ANYUseUIWebView ANY_NAME_PASTE(ANY_PREFIX_NAME, ANYUseUIWebView)
        

         库匹配的输出

        Binary file ./<FRAMEWORK-NAME>.framework/<LIB-FILE>.a matches
        

        如果您看到一些匹配项,则意味着是时候升级这些库了。

        我希望它有所帮助。干杯

        编辑

        Apple 更新

        The App Store will no longer accept new apps using UIWebView as of 
        April 2020 and app updates using UIWebView as of December 2020.
        

        参考:https://developer.apple.com/news/?id=12232019b

        【讨论】:

        • 您在 2020 年 4 月的最后期限内完全替换 UIWebview 的来源是什么?
        • @PatrickCavanagh 当我向一位苹果工程师提出这个问题时我才知道,现在我觉得把它写成截止日期没有意义,所以我编辑了答案。感谢您的评论。
        • @PatrickCavanagh 现在是官方的developer.apple.com/news/?id=12232019b
        猜你喜欢
        • 2020-01-03
        • 2020-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-22
        相关资源
        最近更新 更多