MonoDevelop und MonoTouch ziehen um

Ich habe einen neuen Mac als Entwicklungsrechner. Wer schon einmal von einem Mac auf einen anderen gewechselt ist, der kennt das: Migrations-Programm auf beiden starten, ne halbe Stunde warten und fertig. Nur leider zieht MonoTouch nicht so richtig mit.

Worum gehts?

MonoTouch ist ein Framework, das man nutzen kann, um z.B. auf einem Mac mit MonoDevelop in C# code zu schreiben, der dann durch MonoTouch in nativen iOS-Code übersetzt wird. So gesehen ist es also eine super Alternativen zum kruden Programmier-Ansatz in XCode, der Visual-Studio-Leuten immer sehr uneingänglich ist (um es vorsichtig auszudrücken). Die VS-Kompatibilität geht so weit, das sogar die Projektdateien (sln, csproj) im MSBuild-Format des Originals vorliegen.

MonoDevelop ist lizenzkostenfrei. MonoTouch ist es nicht. Mit der kostenfreien Variante kann man erste Tests machen. Was man nicht kann, ist, die Apps dann auf ein Telefon zu deployen oder in den AppStore zu stellen. Dafür muss man für 999 $ eine Lizenz bei Xamarin erwerben.

Hat meine eine Lizenz für MonoTouch erworben, muss diese auf einem Gerät aktiviert werden. Beim ersten Setup geschieht dies noch automatisch.

Wechselt man dann aber irgendwann die Maschine, wird auch die Lizenz ungültig. Man erkennt das ziemlich schnell, wenn man versucht, ein Projekt in MonoDevelop zu kompilieren. Da kommt dann eine Meldung á la „mt exited with code 99“ oder ähnlich. Soll heißen: MonoTouch hat keine gültige Lizenz.

Dieser Artikel will nun zeigen, was man dann tun muss.

Wo ist die Lizenz?

Genau das ist eigentlich auch schon die komplizierteste Frage. Erstmal die einfache Antwort:

Die Lizenzdatei license.v oder license.v2 befindet sich im Ordner ~/Library/MonoTouch.

Diese scheinbar einfache Antwort wirft (vor allem für Windows-User) einige Schwierigkeiten auf. Zunächst einmal geht man unter Mac in den Finder, wählt im Menu „Gehe zu“ und dort auf „Computer“. Jetzt bekommt man nach einigem Geklicke Folgendes:

Abb. 1: Kein Ordner „MonoTouch“ in Library?

Wie wir sehen, sehen wir nichts! Keine Angst, die Installation ist noch in Ordnung! Wir sind einfach im falschen „Library“-Ordner. Das Problem: den richtigen Ordner können wir standardmäßig nicht im Finder sehen. Der würde sich nämlich unterhalb des User-Ordners befinden.

Jetzt rein in den „Terminal“ (am besten über Spotlight suchen) und Folgendes eingegeben:


chflags nohidden ~/Library/

Die Tilde gibt man auf dem Mac über Alt + N + Leerzeichen ein!

Jetzt erscheint der Ordner „Library“ mit dem Unterordner „MonoTouch“ im Finder unterhalb des Benutzer-Ordners. Dort hinein findet man nun die alte (ungültige) Lizenz.

Lizenz aktualisieren

Jetzt logt man sich bei Xamarin ein und sieht unter „Account“ bei „My Purchases“ nach. Dort sollte die bisher gültige Lizenz erscheinen. Man könnte sie nun neu downloaden aber das bringt nichts, weil sie mit der alten Maschine verheiratet ist.

Stattdessen klickt man auf den Link „Problem Activating?“ und erhalt einen Dialog, in dem man eine neue Lizenz erstellen kann. Der Dialog erfordert einen System-Bericht, den man den Anweisungen in dem Dialog entsprechend erstellen und uploaden kann:

Abb. 2: Neuen Rechner aktivieren

Ist das Ganze abgeschlossen, kann man die bisherige Lizenz über den „Recycle-Button“ daneben aufräumen.

Jetzt kann der Download der neuen Lizenzdatei erfolgen. Danach wird sie in den MonoTouch-Ordner des eben freigeschalteten Library-Ordners kopiert und damit die alte Lizenz ersetzt.

MonoTouch sollte nun funktionieren, was man dadurch testen kann, das man einfach ein MonoDevelop-Projekt öffnet und kompiliert. Ergibt das keinen Fehler 99, sollte alles ok sein.

Library-Ordner wieder verstecken

Wer auf Nummer sicher gehen möchte sollte abschließend im Termin folgendes ausführen:


chflags hidden ~/Library/

Fazit

Man kann sich das Leben auch schwerer machen, als nötig! Xamarin bekleckert sich hier meiner Meinung nach nicht gerade mir Ruhm. Die Webseite ist schwer zu durchschauen, mit keinem Wort wird der versteckte Library-Ordner erwähnt und die Hilfe ist allgemein dürftig für ein 1.000-Dollar-Produkt. Zum Glück kommt man irgendwie aber doch zum Ergebnis, nur nicht so, wie man das als MS-Entwickler erwarten würde :-).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.