App stürzt beim Debuggen auf dem Gerät ab

9

Meine Anwendung debuggt einwandfrei auf dem iOS-Simulator, und es läuft gut, wenn ich eine ipa-Datei auf dem Gerät erstellen und bereitstellen. Wenn ich jedoch versuche, auf dem Gerät zu debuggen (iPhone 9.3.1 und iPad 9.3), stürzt die App beim Start sofort ab. Ich benutze Visual Studio mit Xamarin. Das Problem scheint Build / Konfiguration / Version bezogen zu sein, da es gut funktioniert auf den Simulator und IPA-Dateiversionen, aber ich kann das Problem einfach nicht herausfinden.

Visual Studio 2013-Update 5 Xamarin 4.0.3.214 Xamarin.iOS 9.6.1.8

Projektkonfigurationen zwischen Builds, die funktionieren und nicht funktionieren:

%Vor%

Absturzbericht:

%Vor%     
Zach Green 21.04.2016, 13:45
quelle

3 Antworten

1

Ich antworte auf der Grundlage der nativen App, dies kann passieren, wenn Sie Adhoc Provisional Profile auf die Option Debug in den Build-Einstellungen des Projekts setzen. Das bedeutet, dass Sie zum Debuggen Ihres Codes das provisorische Debug-Profil für das Debug-Profil festlegen müssen, nicht für das provisorische Adhoc-Profil.

    
Dharmendra Chaudhary 26.04.2016 10:04
quelle
1

Dies ist keine direkte Antwort auf Ihre Frage, sondern die MvvmCross-Quelle für MvxIosSystem.BuildVersion , Zeile 27 scheint die ToArray auszuführen, bei der App beim Zugriff auf ungültige Adressen abstürzt:

%Vor%

Könnte UIDevice.CurrentDevice.SystemVersion etwas überraschend Unerwartetes durch das MvvmCross-Framework zurückgeben?

i.e. Wie würde version.Split('.').Select(int.Parse).ToArray() diesen ungültigen Zugriff verursachen?

Vielleicht könnten Sie eine ähnliche Codezeile in Ihrer App verwenden, bevor der MvvmCross-Start erfolgt, um den Versionswert und hoffentlich mehr Hinweise zum Debuggen zu erhalten.

Ich habe dies in einem kleinen Xamarin.iOS-Projekt versucht, direkt in Main.cs, konnte aber nichts sehen, was das Problem verursachen würde - version kam zurück "9.3.1" und parts war ein Array int[3] :

%Vor%

Ich habe auch versucht, einige Creative-Werte für version anstelle von UIDevice.CurrentDevice.SystemVersion zu ersetzen, aber alles, was ich generieren konnte, waren unbehandelte String-Format- oder Null-Referenz-Exceptions mit einem anderen iOS-Absturzprotokoll als das, was du gepostet hast.

Ich frage mich, ob das Zurücksetzen des Geräts das Problem beheben könnte, von dieser SO-Antwort auf eine ähnliche Frage.

    
Mark Larter 26.04.2016 03:46
quelle
0
%Vor%

Dies kann erforderlich sein. Gehen Sie zu Build-Optionen, erweiterte Registerkarte, und kreuzen Sie das Kästchen auf der rechten Seite an. Es sollte im Debug-Modus / Simulator angekreuzt sein. Also ticket es auch in debug / device.

    
Softlion 23.04.2016 23:40
quelle

Tags und Links