我有一个具有 Android 和 iOS 版本的 Xamarin.Forms 应用程序。 Android 版本在 Debug 和 Release 模式下都运行良好。事实上,Android 版本已经在 Play 商店中。
但是 iOS 版本有一个奇怪的问题。在 Debug模式下,它工作得很好,但是在 Release模式下,我到处使用 Xamarin Toolkit TouchEffect 来将命令附加到元素,但不会触发。
<buttons:BackButton xct:TouchEffect.Command="{Binding BackCommand}" xct:TouchEffect.NativeAnimation="True" />
我在网上查了一下,显然这可能是链接器问题,因为链接器可能会从最终版本中剥离这段代码,但是我将其设置为“仅链接框架 SDK”,这似乎是发布应用程序时推荐的设置.
还有什么我可能遗漏的吗?
谢谢
最佳答案
因此,经过大量研究后,该错误确实与链接器有关,它从发布版本中剥离了一些社区工具包代码,尽管我在 xaml 中使用该工具包。需要注意的一件事是,我仅在 Xaml 中使用工具包。
通过使用以下代码在 iOS 项目文件中简单地创建一个类,链接器发现我确实需要这个包并且不会剥离它的代码。
public class LinkerPleaseInclude
{
public void Include(Xamarin.CommunityToolkit.Effects.TouchEffect arg)
{
var dummyCommand = arg.Command;
var dummyCommandParameter = arg.CommandParameter;
var dummyNativeAnimation = arg.NativeAnimation;
}
}
编辑:这可能不足以解决问题。如果它仍然存在,请尝试在 iOS 构建屏幕的附加 mtouch 参数中包含“--linkskip=Xamarin.CommunityToolkit”。应该这样做。
关于 Release模式下的 Xamarin.Forms iOS 应用程序社区工具包 TouchEffect 命令未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71283062/