一个或多个对 UIKit.UIWebView 类型的引用

Posted

技术标签:

【中文标题】一个或多个对 UIKit.UIWebView 类型的引用【英文标题】:One or more reference to type UIKit.UIWebView 【发布时间】:2020-06-04 11:53:32 【问题描述】:

我们知道,在 Xamarin.ios 中,UIWebView 很快就会被弃用,并且应用程序将不会被弃用的版本接受。

我创建了一个新项目here。我已经按照document here 以及互联网上的其他帖子删除了 UIWebkit 并用 WKWebview 替换它,但它不起作用。

由于它是一个新项目,因此没有使用可能具有 UIWebView 的 nuget 包。但是当我在 mtouch 参数中添加 --warn-on-type-ref=UIKit.UIWebView 标志时仍然出现错误:

一个或多个类型“UIKit.UIWebView”的引用已经存在 在'Xamarin.Forms.Platform.iOS,版本=2.0.0.0,文化=中性, 链接 WebViewTest.iOS 之前的 PublicKeyToken=null'

如何从基本项目中删除 UIWebview complete,以便我的应用可以在 testflight/appstore 上被接受。

我正在使用 Visual Studio 16.5.5 和 Xamarin.iOS 版本 13.16,并且我已经在 Xamarin 表单 4.4 和 4.6 上进行了测试

【问题讨论】:

这个过程记录得相当详尽 - devblogs.microsoft.com/xamarin/… @Jason 我已遵循该指南。唯一不同的是我处于调试模式并且该文档用于发布模式。你认为这会引起问题吗? @Jason 刚刚在发布模式下测试过,同样的错误 不,不管是 Debug 还是 Release。您至少需要 Forms 4.5,并且需要设置参数,就像文章中所述。 @MihailDuchev 请检查我的项目,我已经添加了这些参数并在发布时进行了测试。这些其他参数仅用于显示我理解的警告,不应干扰链接器 【参考方案1】:

在项目文件WebViewTest.iOS.csproj 中删除--warn-on-type-ref=UIKit.UIWebView -warnaserror:1502 -warnaserror:1503

应该是这样的

<MtouchExtraArgs>--optimize=experimental-xforms-product-type</MtouchExtraArgs>

使用最新的 Visual Studio for Mac

还将链接器行为设置为仅SDK框架全部 - 这很重要

【讨论】:

以上是关于一个或多个对 UIKit.UIWebView 类型的引用的主要内容,如果未能解决你的问题,请参考以下文章

集合框架

在关系数据库中对相同实体之间的多个多对多关系进行建模

#yyds干货盘点# Redis数据类型:5种基础数据类型详解

GraphQLError:类型查询必须定义一个或多个字段。使用类型鹅

对复合集合进行排序

“类型 RootQueryType 必须定义一个或多个字段。”