Xamarin - 在社区版中编译AOT?

时间:2016-11-18 19:15:17

标签: c# xamarin xamarin.android obfuscation

我想混淆我的应用程序,但我找不到商业用途的免费混淆器。我看到mono支持AOT编译,所以有没有提前使用社区版Xamarin编译我的应用程序?

如果没有:C#(xamarin)有免费的混淆商用于商业用途吗?

注意: 我定位Android

3 个答案:

答案 0 :(得分:3)

  

AOT编译选项需要Enterprise许可证或更高版本。 AOT编译仅在项目配置为发布模式时可用,默认情况下禁用。

来源: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#AOT_Compilation

至于混淆,Xamarin.Android不支持开箱即用的混淆。您需要使用第三方混淆工具,如Dotfuscator。他们有关于here的教程。

许多人认为Proguard会在Xamarin.Android项目中混淆他们的代码,但它只适用于Java端。

  

Xamarin.Android ProGuard配置不会混淆APK,即使使用自定义配置文件,也无法通过ProGuard启用模糊处理。如果您希望使用模糊处理,请参阅Application Protection with Dotfuscator

<强>来源: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#ProGuard

答案 1 :(得分:3)

我想澄清Dotfuscator Community Edition(CE)附带的许可限制。 UUioP写道“我知道Dotfuscator,但我实际上正在寻找一个商业用途的免费混淆器。”Dotfuscator CE肯定带有许可限制,排除大多数商业用途场景,但有一个例外(授予 - 这是一个非常狭窄的例外,但可能适用于某些例外)。如果被混淆的代码由Dotfuscator CE用户编写和拥有,则Dotfuscator CE可用于发布商业软件。换句话说,如果您开发自己的应用程序(它是您的应用程序 - 而不是您的雇主),您可以使用Dotfuscator CE来混淆您的应用程序 - 即使它是出售或其他“商业/生产”用途。请参阅(Re) Introducing Dotfuscator CE - 在帖子结尾处解释许可条款。

答案 2 :(得分:2)

Xamarin的AOT:

这取决于您是针对Android还是iOS。

正如@Jon Douglas在回答中所述, Android Xamarin的AOT目前仅限于企业许可证。 (提示:您可以使用限时企业许可试用版测试此企业版功能。)

iOS 另一方面,Xamarin中的AOT是每个iOS版本的一部分,因此您可以免费获得社区许可。但请注意,完整的.Net程序集仍包含在iOS发行版中,因此无法实现AOT&#34;混淆&#34;在iOS中。 :/

<强>模糊处理:

ConfuserEx是一个伟大的.Net开源混淆器,具有MIT许可证:

https://github.com/yck1509/ConfuserEx/

我还没有在Xamarin应用程序中端到端测试ConfuserEx,但到目前为止看起来很有希望......(注意,很多人都指出,ConfuserEx有点&#34;令人困惑&# 34;使用......)