xamarin.android - 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 提前寻求帮助。
解决方案
我帮助开发了另一个 .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 在将应用程序捆绑到本机代码之前正确保护了该应用程序。
推荐阅读
- javascript - React fetch / doPost 没有返回数据
- javascript - IIS 仍然加载旧的 javascript 文件。如何更新或告诉 iis 加载/获取新的 javascript 文件?
- android - 从 AdapterPager 结果中的当前视图中删除最近的项目到异常错误
- android - kotlin flatten 返回多个订单项
- rust - 错误[E0308]:类型不匹配 - 预期结构 `Test`,发现 `&Test`
- android - 有什么方法可以将 Flutter 与 Google 助手集成
- visual-studio - 如何从 Visual Studio 解决方案将 routes.json 放入 Web 应用程序
- javascript - 如何使用 Titanium 在 Android 中录制小尺寸语音文件?
- r - 如何处理:一个输入窗口和 2 个或更多操作按钮,但选择了不同的输入
- swift - 如何在不破坏 UI 的情况下将搜索放在另一个线程中?