How do you Publish a Xamarin.Android App that's Obfuscated with ConfuserEx?
我已经使用Xamarin.Forms PCL创建了一个Android应用,现在我想在发布前对其进行保护。我正在使用ConfuserEx,尽管我也尝试过.NET Reactor并遇到相同的问题。
我遇到的问题不是混淆器本身,它对我的??AppName.dll文件正确执行了它需要做的事情,将混淆后的dll放入文件夹
这是我当前的设置:
-
我创建了名为
NormalObfuscate.crproj 的ConfuserEx文件,并放入
它与我的解决方案在文件夹中。 - 在我的Android项目的属性中,在构建事件下,放置以下构建后事件:
if /I"$(ConfigurationName)" =="Release""$(SolutionDir)ConfuserEx\\Code\\Confuser.CLI.exe""$(SolutionDir)NormalObfuscate.crproj"
if /I"$(ConfigurationName)" =="Release" xcopy /Y"$(SolutionDir)AppName\\AppName.Droid\\bin\\Confused\\AppName.dll""$(SolutionDir)\\AppName\\AppName.Droid\\bin\
elease\\AppName.dll"if /I"$(ConfigurationName)" =="Release" xcopy /Y"$(SolutionDir)AppName\\AppName.Droid\\bin\\Confused\\AppName.dll""$(SolutionDir)\\AppName\\AppName.Droid\\obj\
elease\\linksrc\\AppName.dll"
- 我重建了解决方案
- 我存档了该项目,并通过单击分发然后对apk进行了签名来发布了该项目。
完成所有这些操作后,我能够卸载apk,并且混淆的dll不在其中,即使它位于我的垃圾箱中\\
删除文件夹。有谁知道在压缩和发布应用程序时如何使存档管理器使用混淆的dll?
我最终使它以一种更round回的方式工作。
首先,在App.Droid的项目文件中的
还在项目文件中将以下行添加到项目中:
1 2 3 | <Target Name="Obfuscate" AfterTargets="_CopyIntermediateAssemblies" Condition="'$(Configuration)' == 'Release'"> <Exec Command="ObfuscateRelease.bat" WorkingDirectory="$(SolutionDir)" /> </Target> |
这将在名为
我的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | echo running ObfuscateRelease.bat :: Call Confuser ex to obfuscate your project START /WAIT"Obfuscating App.dll""<Path to Confuser>\\ConfuserEx\\Code\\Confuser.CLI.exe""<Path to Confuser Ex file>\ ormalObfuscate.crproj" :: copy confused files into the release folders so it is packaged into the app echo starting to copy copy"<Path to App>\\App\\App.Droid\\bin\\Confused\\App.dll""<Path to App>\\App\\App\\App.Droid\\bin\ elease" copy"<Path to App>\\App\\App.Droid\\bin\\Confused\\App.dll""<Path to App>\\App\\App.Droid\\obj\ elease\\linksrc" copy"<Path to App>\\App\\App.Droid\\bin\\Confused\\App.Droid.dll""<Path to App>\\App\\App.Droid\\bin\ elease" copy"<Path to App>\\App\\App.Droid\\bin\\Confused\\App.Droid.dll""<Path to App>\\App\\App.Droid\\obj\ elease\\linksrc" echo finished copying echo finished ObfuscateRelease.bat |
然后重建您的项目。您应该在构建输出中看到回显的行。构建完成后,您将拥有已签名(带有调试别名)和未签名版本的应用程序。然后,您可以手动对应用进行签名。 (我制作了另一个bat文件,以更轻松地执行此操作中的步骤。)