Ich denke über die Portierung einer .NET-basierten Desktop-Anwendung auf Mac mit der Xamarin.Mac-Plattform nach. Ich kann anscheinend keine Informationen über die Deployment-Größe der resultierenden Anwendung finden. Ist es wie die Xamarin iOS-Entwicklung, d. H. Der C# -Code wird nativ in Mac-Code kompiliert und ich muss mich nicht um die Verteilung der .NET-Laufzeit kümmern? Wenn nein, wie groß ist dann die .NET-Laufzeit, die ich mit meiner Anwendung verteilen muss?Xamarin-basierte Mac OSX-App-Implementierungsgröße
Antwort
Xamarin.Mac
Apps sind in sich abgeschlossen und erfordern kein separates Mono-Framework, das installiert werden muss. Nur die Teile des Frameworks, die von Ihrer App verwendet werden, sind im App-Paket enthalten, um die Größe so klein wie möglich zu halten.
A x86_64 Xamarin.Mac
Cocca Hallo Welt Xamarin.Mac Mobil-Framework basierte App mit dem Linker auf:
- Nicht-Link: ~ 48MB
- Link-Framework-SDKs Nur: ~ 20mb
- Link-All: ~ 20MB
: Größen basierend auf Xamarin.Mac
2.9.2.81
Hinweis: Mit den anderen Xamarin.Mac
Frameworks werden natürlich etwas größere Gebindegrößen produzieren ...
Hinweis: Dies ist ein nichts App tun, so Sobald Sie mit dem Hinzufügen von Assets, Inhalten, Code, externen Paketen usw. begonnen haben, wird Ihre App-Größe wachsen.
Xamarin.Mac
Apps werden nicht über LLVM
in Bit-Code und/oder Maschinencode wie Apps kompiliert. Es gibt einige alte E-Mail-Threads schweben herum, dass dies begann zusammen mit AOTing betrachtet, aber ich angenommen Mangel an Nachfrage vs Engineering Zeit erforderlich war nie gerechtfertigt.
Hinweis: Es ist möglich, ein benutzerdefiniertes OS-X-Mono-Build zu verwenden, das LLVM-fähig ist. Dies ist jedoch nicht in x86_64-basierten Mono OS-X-Apps für die App Store-Verteilung, sondern nur in lokalen Apps für den privaten Vertrieb erfolgt . Dies ist alles außerhalb von Xamarin Studio und nicht eine unterstützt Konfiguration. Das heißt, und mit beginnen Open-Source jetzt, wenn Sie Xamarin.Mac Mobile Framework in Ihrer OS-X-App, die das gemeinsame Unified-Framework ist, können Sie eine Mono/LLVM-basierte Build-Umgebung, aber wieder verdrahten , keine von Xamarin unterstützte Konfiguration.