首页 > 解决方案 > Xamarin Android 使用“将程序集捆绑到本机代码”和“混淆”

问题描述

我正在尝试结合混淆我的 xamarin android 项目,然后使用 Visuals Studio 2017 Pro 选项将程序集捆绑到本机代码中。

我能够使用本教程https://blog.noser.com/xamarin-android-code-obfuscation/混淆我的程序集

不幸的是,混淆的程序集无法进入本机捆绑包。

可能我在错误的地方拦截了构建过程。

<Target Name="Obfuscate" AfterTargets="_CopyIntermediateAssemblies" Condition="'$(Configuration)' == 'Release'">

有谁知道如何将混淆的程序集合并到本机包中?Thx 提前寻求帮助。

标签: xamarin.androidobfuscationmsbuild-task

解决方案


我帮助开发了另一个 .NET 混淆/保护工具 Dotfuscator。我们编写了一个 Xamarin 生成集成,它可以在正常生成过程中自动处理保护,因此您不必手动编写自己的 MSBuild 目标或复制文件。官方 Xamarin 文档建议使用 Dotfuscator 来保护 Android 版本,但这种集成也适用于 iOS 和 UWP。

由于 Dotfuscator 的社区版包含在 Visual Studio中,您可以免费试用此集成。我为 Xamarin 博客写了一篇客座文章,解释了如何做到这一点。

编辑问题中的设置:我做了一些有限的测试,Dotfuscator 可以很好地与“将程序集捆绑到本机代码”设置中。我安装了最新版本的 Visual Studio 2017 Enterprise,版本 15.7.2,但发现该版本存在与此设置相关的错误。为了解决这个问题,我使用了该链接中提到的非官方 VSIX 安装。然后我打开了一个 Dotfuscator-Xamarin 示例应用程序并启用了本机代码设置。我还在示例中添加了代码以显示应用程序使用的类的名称。然后我将应用程序部署到模拟器。该应用程序正常运行,并且日志记录语句显示该类的混淆名称,表明 Dotfuscator 在将应用程序捆绑到本机代码之前正确保护了该应用程序。


推荐阅读