Xamarin Android使用“Bundle assembly into native code”和“obfuscation”

时间:2018-05-25 09:45:11

标签: xamarin.android obfuscation msbuild-task

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

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

对我的程序集进行模糊处理

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

由于Dotfuscator的社区版是included in Visual Studio,您可以免费试用此集成。 我写了a guest post for the Xamarin Blog来解释如何做到这一点。

关于问题中的设置进行编辑:我做了一些有限的测试,Dotfuscator可以正常使用&#34; Bundle程序集到本机代码&#34;设置。我安装了最新版本的Visual Studio 2017 Enterprise 15.7.2版,但发现了that version has a bug related to this setting。为了解决这个问题,我使用了该链接中提到的非官方VSIX安装。然后我打开了a Dotfuscator-Xamarin sample app并启用了本机代码设置。我还在示例中添加了代码,以显示应用程序使用的类的名称。然后我将应用程序部署到模拟器。应用程序正常运行,日志记录语句显示该类的模糊名称,表明Dotfuscator在捆绑到本机代码之前正确保护了应用程序。