在Xamarin中引入Crypto Obfuscator后,无法创建.apk文件.Android项目

本文关键字:创建 apk 文件 项目 Android Xamarin Obfuscator Crypto | 更新日期: 2023-09-27 17:49:39

我有一个任务混淆我的Xamarin Android项目(让它叫AndrProj)和它引用的库:两个PCL(让我们叫它们PCL1PCL2)和Android库(AndrLib)。PCL2AndrLib也有对PCL1的引用。

我受到这篇文章的启发,决定为我的目的尝试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的"项目"菜单->"启用/禁用可视化"中禁用此项目的自动混淆Studio Integration'并在Visual Studio中重新构建您的解决方案生成清晰的组件。

我还尝试了从Visual Studio 2013中导出Android包(.apk),但它给出的输出较少,仍然没有创建。apk。

我相信它只抱怨AndrLib,因为它在PCL1PCL2AndrLib中按字母顺序排在第一位。更全球性的问题是,创建.apk会迫使所有程序集再次混淆。有没有办法跳过这第二次混淆?还是忽视这类问题?

在Xamarin中引入Crypto Obfuscator后,无法创建.apk文件.Android项目

解决方案非常简单:我必须直接使用MSBuild.exe与目标SignAndroidPackage一起使用,而不是从IDE创建。apk。


这是一封来自技术支持的电子邮件,关于所描述的问题(可能对某人有用):

如果您的解决方案在执行MSBuild集成后无法构建,请尝试以下操作:

按如下方式更改构建输出日志的详细信息:Visual Studio Tools菜单-->选项-->项目和解决方案-->构建和运行--> MSBuild项目构建输出详细信息,将其设置为详细。

现在检查Visual Studio Output窗口,查看有关错误原因的任何提示或更多信息。

将MSBuild使用的线程数更改为1,如下所示:Visual Studio Tools菜单->选项->项目和解决方案->构建和运行->最大并行线程数:将其设置为1。

如果您得到类似于"程序集'XYZ'已经与Crypto Obfuscator混淆…"的错误信息,当您运行(CTRL+F5)或调试(F5)您的解决方案时,请尝试执行Clean (Visual Studio Build菜单-> Clean菜单项),然后执行Run (CTRL+F5)或Debug (F5)。

如果多次运行向导,每次选择不同的"第一个"项目,也可能发生构建失败。这个问题通常通过构建日志/输出中的"文件未找到"错误来呈现。要解决这个问题,从干净的非集成.csproj/开始。Vbproj文件(在修改项目文件之前,向导将原始的非集成项目文件复制到.backup_%timestamp%扩展名中;或者,您可以打开.csproj/。在文本编辑器中删除vbproj文件,并删除由向导添加的XML(可以在文件末尾找到)。然后再次运行向导,指定正确的第一个和最后一个项目。

我在归档时遇到了问题,在我将Visual Studio 2017 Professional从15.9.9降级到15.7.6后,问题就消失了。