Release模式下的 Xamarin.Forms iOS 应用程序社区工具包 TouchEffect 命令未触发

标签 xamarin xamarin.forms xamarin.ios

我有一个具有 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”,这似乎是发布应用程序时推荐的设置.

enter image description here

还有什么我可能遗漏的吗?

谢谢

最佳答案

因此,经过大量研究后,该错误确实与链接器有关,它从发布版本中剥离了一些社区工具包代码,尽管我在 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/

相关文章:

ios - UIPickerView,检测 "rolling wheel"起停?

android - 限制对服务器后端的访问

c# - 更改 Xamarin.Forms.Maps 中缩放按钮 (+-) 的位置

c# - 弹出式导航 - iOS

xamarin.ios - 为什么 xamarin 突然不让我部署到 iOS 设备

xcode - 在钥匙串(keychain)中找不到有效的 iOS 代码签名 key 。您需要申请一个代码签名证书

c# - Xamarin.Forms Collection View

c# - Xamarin Forms OAuth 2.0 和 Azure Active Directory - 错误 AdalServiceException : AADSTS7000218

c# - 单点触控 : getting NSDictionary value

java - 如何调试: JNI DETECTED ERROR IN APPLICATION: use of invalid jobject