如何在启用链接器并解决依赖关系的情况下构建 Xamarin Forms 应用程序?

How to build Xamarin Forms App with Linker enabled and resolved dependency?

我开发了许多 Xamarin Forms 应用程序,但这次我遇到了一个大问题,因为我无法减小应用程序的大小。我已经集成了许多其他 nuget 包和 sdk,例如用于推送通知的 onesignal,用于文件上传和显示的 Amazon AWS S3 等。问题是,当我将 SDK 集成到测试应用程序中时,它成功构建并完成了所有工作,但在我的主要项目我有错误。在 Android 中,Onesignal 显示错误,因此当我禁用链接器时它可以正常工作,而在 iOS Amazon S3 SDK 中显示错误,当我禁用链接器时它可以正常工作。但是应用程序的大小增加太多,这是不可接受的。我也试过跳过 assemblys 选项,但那还是行不通。 :(

如何解决这个问题?

是的。这是一个常见问题。如果没有关于 Debug 和 Release 之间构建配置选项的更多详细信息,您可以尝试在代码中显式引用该库:

(来源:https://lostechies.com/jimmybogard/2014/11/11/dealing-with-the-linker-in-xamarin-apps/

public class LinkerPleaseInclude
{
    public void Include()
    {
        var x = new System.ComponentModel.ReferenceConverter (typeof(void));
    }
}

我还建议您阅读以下文档以获取帮助,您可以做很多事情:

https://developer.xamarin.com/guides/ios/advanced_topics/linker/