5

Entschuldigung, im Voraus für diese lange Frage, aber ich habe 3 Tage vergeblich vergeblich versucht, eine Xamarin.iOS-Entwicklungsumgebung einzurichten, die es mir ermöglicht, auf einem debuggen physisches Gerät (kein iPhone-Simulator) und ich weiß nicht, was ich als nächstes versuchen soll.Debuggen einer Xamarin.iOS App auf einem physischen iOS-Gerät

Ich glaube, mein Setup ist eine ziemlich Standard Xamarin Konfiguration:

  • Windows-10-PC mit Visual Studio 2015 und Xamarin v4.2.0.703
  • HTC Handy USB-verbunden mit dem PC für Android-Debugging (funktioniert gut)
  • MacBook mit OS X 10.11 mit Xamarin Studio v6.1.1 und Xcode v8.0
  • iPhone oder iPad USB-verbunden mit dem Mac für iOS Debuggen

Ich begann mit der Erstellung einer Xamarin-Lösung in Visual Studio, die ich ursprünglich auf Android entwickelt und debuggt hatte.

Um zum iOS-Debugging zu gelangen, habe ich dann den Mac mit Xcode und Xamarin Studio eingerichtet, für die Remote-Anmeldung aktiviert und ein Dummy-Xcode-Projekt mit der gleichen Paketkennung wie meine Xamarin.iOS-App erstellt. Ich habe auch versucht, den recht komplizierten Prozess des Erstellens eines Signaturidentitäts- und Bereitstellungsprofils für die App und des Herunterladens/Installierens auf dem Mac durchzuführen. Dieser Prozess ist so unintuitiv (und das visuelle Feedback in Xcode ist so schlecht), dass ich nicht sicher bin, ob ich es richtig gemacht habe. Allerdings kann ich das Dummy-Xcode-Projekt auf dem iPhone ausführen, also nehme ich an, dass es in Ordnung sein muss?

auf dem Windows-PC, die Xamarin>iOS Optionen Fenster in Visual Studio-Einstellungen bestätigt, dass Visual Studio auf den Mac und dem angeschlossenen iPhone auch als Kandidat Zielgerät aufgeführt verbunden ist, so ist es, dass alles scheint ist für das Debugging auf dem Gerät eingerichtet.

Wenn ich versuche, die App auf dem iPhone-Simulator von Visual Studio zu debuggen, funktioniert es korrekt. Doch das Debuggen auf dem physischen iPhone schlägt mit dem folgenden nicht hilfreich Nachricht:

Xamarin.Messaging.Exceptions.MonotouchException: error MT1006: Could not install the 
application '/Users/Tim/Library/Caches/Xamarin/mtbs/builds/Test.iOS/c4f40041b6c58fc579a727bccfc18614/bin/iPhoneSimulator/Debug/TestiOS.app' 
on the device 'Tim’s iPhone': AMDeviceSecureInstallApplicationBundle returned: 0xe8008001. 

Als Vergleich habe ich versucht, auch direkt auf dem Mac Debuggen Xamarin Studio. Auch hier funktioniert der iPhone-Simulator zwar einwandfrei, aber es ist sogar unmöglich, eine Debug-Sitzung mit dem physischen Gerät zu starten, da das angeschlossene iPhone nicht als Kandidatenzielgerät für das Debug | aufgeführt ist iPhone Konfiguration.

Wenn ich Projektoptionen öffnen und navigieren Sie zu der iOS Debug Ansicht, kann ich sehen, dass die Plattform im Zusammenhang mit der Debug Konfiguration ist iPhoneSimulator. Ändern Sie es in iPhone und Speichern der Konfiguration scheint es funktioniert, aber die Änderungen werden nicht tatsächlich gespeichert. Ich denke, das ist der Grund, warum mein Testgerät nicht aufgeführt ist, aber ich bin nicht sicher, was ich tun muss, um Xamarin Studio dazu zu bringen, meine Änderungen zu akzeptieren.

Also, nach all diesen Experimenten bin ich völlig verloren. Es wäre hilfreich, ein komplettes, robustes A-Z-Tutorial für diesen Setup-Prozess zu haben, aber ansonsten würden Vorschläge, was ich als nächstes versuchen sollte, sehr geschätzt werden.

UPDATE: Wenn ich die Projektkonfiguration Ad-Hoc (in Visual Studio oder Xamarin Studio) verwende, wird die App auf dem Gerät ordnungsgemäß ausgeführt und gestartet, der Debugger wird jedoch nicht angehängt. Wenn ich das Debuggen explizit in der Ad-Hoc-Projektkonfiguration aktiviere, ignoriert Xamarin Studio es, aber Visual Studio hängt den Debugger an, trifft aber keine Haltepunkte. Klingt das alles richtig? Bietet es irgendwelche Hinweise, was ich ändern muss, um die echte Debug Config korrekt zu funktionieren?

+0

Es klingt nicht so, als hätten Sie Ihr iPhone/iPad bereitgestellt: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/ – SushiHangover

+0

@SushiHangover: Danke. Mit Xcode> Fenster> Geräte habe ich gerade überprüft, dass auf dem iPhone ein Provisioning-Profil installiert ist. Ich überprüfte das installierte Profil in meinem Apple-Konto und es enthält meine Entwickler-ID und listet 3 Geräte auf, von denen das iPhone ist, auf dem ich versuche zu debuggen. –

+0

Seltsam .... Wir haben einen Stapel von Androids, die nicht mit Xamarins Debugger funktionieren (aber mit A.S.), aber nie ein iOS-Problem hatten, wenn sie bereitgestellt werden. Welche iOS Versionen sind auf den iDevices (10?)? – SushiHangover

Antwort

1

Für jeden, der mit einem ähnlichen Problem konfrontiert ist, führte die Lösung, die ich schließlich einführte, zu einem "Brute-Force" -Ansatz.

Ich begann mit dem Erstellen einer neuen Xamarin.Forms-Lösung (mit der Standard Visual Studio Vorlage) und Entfernen der unerwünschten Plattform-Projekte (UWP und Windows Phone). In diesem Anfangszustand habe ich überprüft, dass es Debugging sowohl auf Android- als auch auf iOS-Geräten sowie deren jeweiligen Emulatoren/Simulatoren starten konnte. Alles funktionierte einwandfrei und bestätigte, dass mein Mac-Setup korrekt war. Außerdem wurde mir genau die iOS-Projektkonfiguration bereitgestellt, die für das Debugging erforderlich ist.

An dieser Stelle nahm ich an, dass ein Konfigurationsproblem für meine früheren Probleme verantwortlich sein muss, also replizierte ich genau jedes Detail der Arbeitskonfiguration in meiner ursprünglichen Lösung. Trotzdem weigerte es sich, auf iOS zu debuggen.

Ich begann dann zu vermuten, dass ein referenziertes Nuget-Paket das Problem verursachte, also fügte ich alle referenzierten Pakete von der ursprünglichen Implementierung in die neue Testlösung ein. Ich habe erwartet, dass dies das Debugging auf iOS bricht, aber es hat nicht funktioniert.

Schließlich transplantierte ich sorgfältig den gesamten Inhalt meiner ursprünglichen Lösung (XAML & Code-Behind-Dateien, Modelle, Ressourcen, etc.) in die Testlösung und es wurde weiterhin korrekt debuggen.

Also, in Ermangelung einer lebensfähigen Diagnose-Verfahren, löste ich effektiv das Problem, indem ich meine Lösung von Grund auf neu aufzubauen. Kein Code wurde geändert und meines Wissens wurden keine Konfigurationseinstellungen geändert, aber die neue Implementierung ist jetzt in allen Zielumgebungen zuverlässig debuggbar.

+0

Sie müssen das Bereitstellungsprofil in VS möglicherweise manuell in den Eigenschaften des IOS-Projekts im Bereich iOS-Bundle-Signierung wie im folgenden Artikel beschrieben einstellen: https://developer.xamarin.com/guides/ios/getting_started/installation/device_provisioning/free-provisioning/#Launching_your_App (es ist der 10 Schritt) – nrudnyk

Verwandte Themen