2016-11-18 69 views
1

我想混淆我的應用程序,但我找不到用於商業用途的免費混淆器。我看到mono支持AOT編譯,那麼是否需要使用社區版Xamarin提前編譯我的應用程序?Xamarin - 在社區版編譯AOT?

如果不是:是否有免費的C#(xamarin)商用混淆器?

注: 我針對Android的

+0

爲什麼你關於編譯AOT的問題如果你也在問關於混淆的問題? –

+0

@JonDouglas因爲如果在社區版本中不可行,那麼我想知道是否有免費的混淆器用於商業用途。 – UUioP

回答

3

的AOT編譯選項需要一個企業許可證或更高。 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

+0

雖然mono支持AOT,但它不可能與社區版一起使用? – UUioP

+0

我知道Dotfuscator,但實際上我正在爲**商業**使用尋找免費的混淆器。 – UUioP

2

AOT在Xamarin:

這取決於你是否針對Android或iOS。

正如@Jon Douglas在他的回答中所述,Android Xamarin中的AOT目前僅限於Enterprise許可證。 (提示:您可以通過限時企業許可證試用測試這個企業的特徵。)

的iOS AOT在Xamarin,在另一方面,是每部iOS構建的一部分,所以你與社區得到它免費許可證。但是請注意,完整的.Net程序集仍然包含在iOS發行版中,因此在iOS中擊敗了AOT「混淆」的目的。 :/

混淆:

ConfuserEx是一個偉大的.Net開源混淆器與一個MIT許可:

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

我仍然沒有測試ConfuserEx端至端在Xamarin的應用程序,但它看起來很有希望至今...(請注意,因爲很多人指出,ConfuserEx是有點「混亂」來使用......)

+1

我針對Android,我會在我的回答中提及它。 – UUioP

+0

感謝您使用ConfuserEx! – UUioP

2

我想澄清的許可restric tions與Dotfuscator社區版(CE)一起提供。UUioP寫道「我知道Dotfuscator,但我實際上是在尋找一個免費的混淆器用於商業用途」Dotfuscator CE肯定帶有許可限制,排除大多數商業使用場景,但有一個例外(授予 - 它是一個非常狹窄的例外,但可能適用於某些例外)。如果被混淆的代碼由Dotfuscator CE用戶編寫並擁有,Dotfuscator CE可用於發佈商業軟件。換句話說,如果您開發自己的應用程序(它是您的應用程序 - 而不是您的僱主的應用程序),則可以使用Dotfuscator CE來混淆您的應用程序 - 即使它用於銷售或其他「商業/生產」用途。請參閱(Re) Introducing Dotfuscator CE - 許可條款在帖子末尾解釋。

+0

我正在使用一些庫,所以Dotfuscator不適合我。 – UUioP

+0

爲什麼你使用庫不包含Dotfuscator?既然你已經回覆了我的評論 - 我能否認爲從你的角度來看這是一個授權問題?假設是,如果寫圖書館的第三方要求你混淆他們的圖書館以更好地保護他們的代碼,那麼是的,你是對的 - 這不是CE許可證的意圖。如果你想混淆調用這些庫的代碼 - 而且你不會混淆他們的代碼 - 只有你的代碼 - 這將允許使用CE。 – Sebastian