【发布时间】:2015-05-19 12:13:04
【问题描述】:
我的任务是混淆我的 Xamarin Android 项目(我们称之为 AndrProj)连同它引用的库:两个 PCL(我们称之为 PCL1 和 PCL2) 和 Android 库 (AndrLib)。 PCL2 和 AndrLib 也有对 PCL1 的引用。
我受到this 文章的启发,决定尝试使用Crypto Obfuscator For .Net v2015 演示版来实现我的目的。
我使用了它的“Visual Studio 项目集成向导”。 PCL1 设置为“第一个项目”,AndrProj 设置为“最后一个项目”。一开始只使用默认设置。现在,当我构建我的项目时,一切都很完美。 \bin\Release 文件夹中的 Dll 被混淆了。
如果我真的可以创建一个 .apk 文件并在 Android 设备上试用它,我会非常高兴。但是当我在 Xamarin Studio 中选择 Build -> Archive for Publishing 时,一段时间后我看到“Build FAILED”和
混淆时发生错误:- 程序集“AndrLib”是 已经使用 Crypto Obfuscator 进行了混淆。如果您已在 Visual Studio 项目上运行 Visual Studio 项目集成向导,则无法从 Crypto Obfuscator UI 进行混淆,除非您首先从 Crypto Obfuscator 的“项目”菜单 -->“启用/禁用 Visual”禁用此项目的自动混淆 Studio 集成”并在 Visual Studio 中重建您的解决方案以 生成未混淆的程序集。
我还尝试了从 Visual Studio 2013 中“导出 Android 包 (.apk)”,但它提供的输出较少并且仍然无法创建 .apk。
我相信它只会抱怨 AndrLib,因为它按字母顺序排在 PCL1、PCL2 和 AndrLib 之间。更全球性的问题是,创建 .apk 会迫使所有程序集再次被混淆一次。有没有办法跳过这第二次混淆?还是忽略这类问题?
【问题讨论】:
-
你已经在你的问题中发布了你自己的答案,它解释了不要单独混淆它们并使用构建来做到这一点
-
对不起@Martyn,我不明白你的想法。项目被设置为通过“Visual Studio 项目集成向导”进行模糊处理,其中指示了第一个和最后一个项目。此外,AndrProj 的构建没有错误。是包创建失败。
标签: c# android xamarin code-access-security crypto-obfuscator