【问题标题】:Using xamarin forms, still getting warning for UIWebView deprecation in app store "ITMS-90809: Deprecated API Usage"使用 xamarin 表单,仍然在应用商店“ITMS-90809:不推荐使用的 API 使用”中收到 UIWebView 弃用警告
【发布时间】:2020-12-09 17:54:10
【问题描述】:

我已删除所有 UIWebView 引用并现在使用 WKWebView。 我希望有人能在我遇到困难时帮助我。

苹果贬值警告依旧 即使在遵循上述步骤后仍然存在 https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/.

我的 nugets 已根据文章更新。并从中删除“obj”和“bin”文件夹 ios 项目只是不使用以前的引用。

我有以下详细信息:

MacMini 操作系统:macOS-10.15 (Catalina) 视觉工作室:8.6.2 Xamarin.iOS:13.18.2.1 X代码:11.5 Xamarin.Forms:4.8.0.1269 Xamarin.Forms.Maps:4.8.0.1269 Xamarin.Essentials:4.5.3.2 Xamarin.Auth:1.7.0

但它仍然给我

以下 dll 中的 UIKit.UIWebView 参考

内部仍然存在一个或多个用于键入“UIKit.UIWebView”的引用 'Xamarin.Forms.Platform.iOS,版本=2.0.0.0,文化=中性,PublicKeyToken=null

一个或多个用于键入“UIKit.UIWebView”的引用仍然存在于“Xamarin.Auth”中, 版本=2.0.0.0,文化=中性,PublicKeyToken=null

一个或多个类型 UIKit.UIWebView 的引用仍然存在于内部 'Xamarin.Forms.Platform.iOS,版本=2.0.0.0,文化=中性,PublicKeyToken=null

一个或多个用于键入“UIKit.UIWebView”的引用仍然存在于“Xamarin.Auth”中, 版本=2.0.0.0,文化=中性,PublicKeyToken=null

在这个阶段,我无法弄清楚我错过了什么

【问题讨论】:

标签: xamarin xamarin.forms xamarin.ios uiwebview wkwebview


【解决方案1】:

正如您收到的错误消息中所说,

在“Xamarin.Auth”中仍然存在一个或多个用于键入“UIKit.UIWebView”的引用,

因此,您需要停止使用“Xamarin.Auth”,因为它仍然引用 UIWebView。

还有那个 nuget 的 issue filed in the Github。即使有一个 PR already submitted 来解决这个问题,但他们不会修复它,因为 Xamarin.Auth 使用不安全。他们已经明确表示不推荐使用该库,因此您必须开始使用 Xamarin Essentials 提供的SecureStorage。他们甚至写了一个migration guide 来帮助你。

因此,请迁移并删除该 Xamarin.Auth 包。确保将软件包更新到最新版本,然后重新提交。

【讨论】:

  • 我已经从我的项目中删除了 Xamarin.Auth 包,并将所有 3rd 方库也更新到了最新版本,但它仍然在 Xamarin.Forms.Platform.iOS、Xamarin.iOS 中显示参考。 dll , Xamarin.iOS.pdb 文件 我已经使用链接器行为到 SDK 或全部链接,然后添加了额外的参数:--optimize=experimental-xforms-product-type,还尝试了 force-rejected-types-removal。
  • 也许有不同的问题,您是否正确设置了所有内容?您是否将参数放在 Release|iPhone 配置或 Debug iPhoneSimulator 中?
  • 我的论点在 Release/iPhone 中。为了检查它在哪里给了我参考,我在 Debug/iPhoneSimulator 中使用了 --optimize=experimental-xforms-product-type --warn-on-type-ref=UIKit.UIWebView 的参数。我已将所有第 3 方库更新为最新版本,即使 Mac 上的 VS 是最新版本,.NetStandard 版本也已更新(2.0 到 2.1),并创建了只有 Xamarin.Forms nuget(8.2.0.1364)的新 POC,也不使用 WKWebView,而是使用“grep -r UIWebView”。此 POC 还在 Xamarin.Forms.Platform.iOS.dll 文件中提供参考。你能帮我吗@Saamer。
  • @PrajaktaAhire 你能弄清楚吗?您能否在 GitHub 上分享一个示例,我可以用它来复制您的问题?
【解决方案2】:

这似乎是 iOS 上 Xamarin.forms 的现有问题。

  1. 确保 Xamarin.Forms 版本为 4.6 或更高版本,Xamarin.iOS 版本为 13.10.0.17 或更高版本。
  2. 将链接器行为更改为仅 SDK 或全部链接,然后添加 附加参数:--optimize=experimental-xforms-product-type 请检查所有这些都已在发布下设置 配置和 iPhone 平台。

更多细节可以参考 https://devblogs.microsoft.com/xamarin/uiwebview-deprecation-xamarin-forms/

【讨论】:

  • 谢谢,但我已经有 Xamarin.Forms 4.8 版,Xamarin.iOS 是 13.18.2.1。还有链接器 Link All 和附加参数: -optimize=experimental-xforms-product-type 在 Release/iPhone 下。并且还从 ios 项目中删除了 obj 和 bin 文件夹,但一点运气都没有。我还有什么需要做的吗?
  • @PrajaktaAhire 你找到解决方案了吗?您在使用 HockeyAppsdk,请将其替换为应用中心。
【解决方案3】:

您好,我通过删除 Xamarin Auth 包解决了我的问题。并将 mTouch 参数设置为 AppStore/iPhone iOS 构建配置。它现在正在工作。我没有收到来自苹果的任何警告信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 2022-01-25
    • 2021-08-10
    • 2020-08-30
    相关资源
    最近更新 更多