2016-11-18 6 views
1

Ich wollte meine Anwendung verschleiern, aber ich konnte keinen freien Obfuscator für den kommerziellen Gebrauch finden. Ich habe gesehen, dass Mono die AOT-Kompilierung unterstützt. Gibt es also eine Möglichkeit, meine App im Vorfeld mit der Community-Version von Xamarin zu kompilieren?Xamarin - Kompiliere AOT in der Community Edition?

Wenn nicht: Gibt es einen freien Obfuscator für C# (Xamarin) für kommerzielle Nutzung?

HINWEIS: Ich bin Targeting Android

+0

Warum ist Ihre Frage zum Erstellen von AOT, wenn Sie auch Fragen zur Verschleierung stellen? –

+0

@JonDouglas Wenn es in der Community Edition nicht möglich ist, dann möchte ich wissen, ob es einen kostenlosen Obfuscator für kommerzielle Zwecke gibt. – UUioP

Antwort

3

Die AOT Compilation Option erfordert eine Enterprise-Lizenz oder höher. Die AOT-Kompilierung ist nur verfügbar, wenn das Projekt für den Freigabemodus konfiguriert ist und standardmäßig deaktiviert ist.

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

Wie für Verschleierung, ist Xamarin.Android nicht Verschleierungs aus dem Kasten heraus unterstützen. Sie müssen ein Verschleierungstool von Drittanbietern wie Dotfuscator verwenden. Sie haben ein Tutorial zu diesem here.

Viele Leute denken, Proguard wird ihren Code in einem Xamarin.Android Projekt verschleiern, aber es funktioniert nur auf dem Java-Ende.

Die Xamarin.Android ProGuard-Konfiguration verschleiert die APK nicht, und es ist nicht möglich, die Verschleierung über ProGuard zu aktivieren, auch nicht mit benutzerdefinierten Konfigurationsdateien. Wenn Sie die Verschleierung verwenden möchten, lesen Sie bitte Application Protection with Dotfuscator.

Quelle: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/part_1_-_preparing_an_application_for_release/#ProGuard

+0

Also ist es nicht möglich mit der Community Edition obwohl Mono AOT unterstützt? – UUioP

+0

Ich weiß über Dotfuscator, aber ich war eigentlich auf der Suche nach einem kostenlosen Obfuscator für ** kommerzielle ** Verwendung. – UUioP

2

AOT in Xamarin:

Es hängt davon ab, ob Sie Android oder iOS zielen.

Wie @ Jon Douglas in seiner Antwort angibt, Android AOT in Xamarin ist leider derzeit auf Enterprise-Lizenzen beschränkt. (Tipp: Sie können diese Unternehmen Funktion eine zeitlich begrenzten Enterprise-Lizenz Studie mit auszutesten.)

iOS AOT in Xamarin, auf der anderen Seite, einen Teil von jedem iOS bauen, so dass Sie es mit der Gemeinschaft erhalten Lizenz kostenlos. Beachten Sie jedoch, dass die vollständigen .Net-Assemblys immer noch in den Builds von iOS-Versionen enthalten sind, wodurch der Zweck der AOT-Verschleierung in iOS besiegt wird. :/

Obfuscation:

ConfuserEx ein großes .Net Open-Source-obfuscator mit einer MIT-Lizenz ist:

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

Ich habe noch nicht getestet ConfuserEx End-to-End in einer Xamarin App, sieht aber bisher vielversprechend aus ... (Achtung, wie viele Leute darauf hinweisen, ist ConfuserEx ein wenig "verwirrend" zu benutzen ...)

+1

Ich ziele auf Android, ich werde es in meiner Antwort erwähnen. – UUioP

+0

Vielen Dank für ConfuserEx! – UUioP

2

Ich möchte die Lizenzbeschränkung klären die mit Dotfuscator Community Edition (CE) geliefert werden.UUioP schreibt "Ich weiß über Dotfuscator, aber ich war tatsächlich auf der Suche nach einem kostenlosen Obfuscator für die kommerzielle Nutzung." Dotfuscator CE kommt sicherlich mit Lizenz Einschränkungen, die am meisten kommerzielle Nutzung Szenarien ausschließen, aber es gibt eine Ausnahme (gewährt - es ist eine sehr enge Ausnahme, aber eine, die für einige funktionieren könnte). Dotfuscator CE kann verwendet werden, um kommerzielle Software freizugeben, wenn der Code, der verschleiert wird, vom Dotfuscator CE-Benutzer geschrieben und ihm gehört wird. Mit anderen Worten, wenn Sie Ihre eigene App entwickeln (und es ist Ihre App - nicht die Ihres Arbeitgebers), können Sie Dotfuscator CE verwenden, um Ihre App zu verschleiern - selbst wenn sie zum Verkauf oder für eine andere "kommerzielle/Produktion" verwendet wird. Siehe (Re) Introducing Dotfuscator CE - die Lizenzbedingungen werden gegen Ende der Post erläutert.

+0

Ich benutze einige Bibliotheken, daher ist Dotfuscator für mich keine Option. – UUioP

+0

Warum sollten Sie Dotfuscator ausschließen? Da Sie auf meinen Kommentar geantwortet haben - kann ich davon ausgehen, dass dies aus Ihrer Sicht ein Lizenzproblem ist? Angenommen, die dritte Partei, die die Bibliothek geschrieben hat, fordert Sie auf, ihre Bibliothek zu verschleiern, um ihren Code besser zu sichern, dann haben Sie Recht - das ist nicht die Absicht der CE-Lizenz. Wenn Sie Ihren Code, der diese Bibliotheken aufruft, verschleiern wollen - und Sie nicht ihren Code verschleiern - nur Ihren Code - wäre das mit CE erlaubt. – Sebastian

Verwandte Themen