Ladění aplikací Xamarin.iOS
Aplikace Xamarin.iOS je možné ladit pomocí integrovaného ladicího programu v Visual Studio pro Mac nebo sadě Visual Studio.
Pro ladění jazyka C# a dalších spravovaných jazyků použijte nativní podporu ladění Visual Studio pro Mac a použijte LLDB, pokud potřebujete ladit kód C, C++ nebo Objective C, který můžete propojit s projektem Xamarin.iOS.
Poznámka:
Při kompilaci aplikací v režimu ladění bude Xamarin.iOS generovat pomalejší a mnohem větší aplikace, protože každý řádek kódu musí být instrumentován. Před vydáním se ujistěte, že provedete sestavení vydané verze.
Ladicí program Xamarin.iOS je integrovaný do integrovaného vývojového prostředí a umožňuje vývojářům ladit aplikace Xamarin.iOS vytvořené pomocí libovolného spravovaného jazyka podporovaného Xamarin.iOS v simulátoru a na zařízení.
Ladicí program Xamarin.iOS používá mono soft debugger, což znamená, že vygenerovaný kód a modul runtime Mono spolupracují s integrovaným vývojovém prostředím a poskytují prostředí ladění. To se liší od pevných ladicích programů, jako je LLDB nebo MDB, které řídí program bez znalosti nebo spolupráce z laděného programu.
Nastavení zarážek
Až budete připraveni spustit ladění aplikace, prvním krokem je nastavení zarážek aplikace. Uděláte to tak, že kliknete do oblasti okrajů editoru vedle čísla řádku kódu, na který chcete zalomit:
Všechny zarážky nastavené v kódu můžete zobrazit tak, že přejdete na panel Zarážky:
Pokud se panel Zarážky nezobrazuje automaticky, můžete ho zobrazit výběrem možnosti Zobrazit ladicí > zarážky systému Windows > .
Než začnete ladit jakoukoli aplikaci, vždy se ujistěte, že je konfigurace nastavená na Ladění, protože obsahuje užitečnou sadu nástrojů pro podporu ladění, jako jsou zarážky, použití vizualizérů dat a zobrazení zásobníku volání:
Spuštění ladění
Ladění spustíte tak, že v integrovaném vývojovém prostředí vyberete cílové zařízení nebo podobné:
Pak aplikaci nasaďte stisknutím tlačítka Přehrát .
Když se dostanete na zarážku, kód se zvýrazní žlutě:
Nástroje pro ladění, jako je kontrola hodnot objektů, se dají v tomto okamžiku použít k získání dalších informací o tom, co se děje ve vašem kódu:
Podmíněné zarážky
Můžete také nastavit pravidla, která diktují okolnosti, za kterých se má zarážka objevit. To se označuje jako přidání podmíněné zarážky.
Pokud chcete nastavit podmíněnou zarážku, přejděte k okno Vlastnosti zarážky, kterou lze provést dvěma způsoby:
Pokud chcete přidat novou podmíněnou zarážku, klikněte pravým tlačítkem myši na okraj editoru, vlevo od čísla řádku pro kód, na který chcete nastavit zarážku, a vyberte Nový zarážku:
Pokud chcete přidat podmínku do existující zarážky, klikněte pravým tlačítkem myši na zarážku a vyberte Vlastnosti zarážky nebo v oblasti Zarážky vyberte tlačítko vlastnosti znázorněné níže:
Potom můžete zadat podmínku, pod kterou chcete zarážku provést:
Procházení kódu
Po dosažení zarážky vám nástroje ladění umožňují získat kontrolu nad prováděním programu. Integrované vývojové prostředí (IDE) zobrazí čtyři tlačítka, která vám umožní spustit kód a procházet ho.
V Visual Studio pro Mac budou vypadat takto:
Jedná se o:
- Play/Stop – Tím začnete nebo přestanete spouštět kód až do další zarážky.
- Krok nad – Tím se spustí další řádek kódu. Pokud je dalším řádkem volání funkce, krok přes spustí funkci a zastaví se na dalším řádku kódu za funkcí.
- Krok do – Tím se také provede další řádek kódu. Pokud je dalším řádkem volání funkce, krok Do se zastaví na prvním řádku funkce, což vám umožní pokračovat v ladění funkce po řádcích. Pokud další řádek není funkce, bude se chovat stejně jako krok přes.
- Krok ven – Tím se vrátíte na řádek, kde byla volána aktuální funkce.
Zarážky
Je důležité zdůraznit, že iOS dává aplikacím jen pár sekund (10) ke spuštění a dokončení FinishedLaunching
metody v delegátu aplikace. Pokud aplikace tuto metodu nedokončí za 10 sekund, iOS proces zastaví.
To znamená, že téměř nemožné nastavit zarážky na spouštěcí kód programu. Pokud chcete ladit spouštěcí kód, měli byste zpozdit některé jeho inicializace a vložit ji do metody vyvolané časovačem nebo v jiné formě metody zpětného volání, která se spustí po ukončení FinishedLaunching.
Diagnostika zařízení
Pokud při nastavování ladicího programu dojde k chybě, můžete povolit podrobnou diagnostiku tak, že do dalších argumentů mtouch v možnostech projektu přidáte -v -v. Tím se do konzoly zařízení zobrazí podrobné informace o chybě.
Bezdrátové ladění
Výchozí v Xamarin.iOS je ladění aplikace na zařízeních přes připojení USB. Někdy může být potřeba zařízení USB k otestování nebo odpojení kabelu pro vývoj aplikací s technologií ExternalAccessory. V takových případech můžete použít ladění přes bezdrátovou síť.
Další informace o bezdrátovém nasazení a ladění najdete v průvodci nasazením bezdrátové sítě .
Technické podrobnosti
Xamarin.iOS používá nový softwarový ladicí program Mono. Na rozdíl od standardního ladicího programu Mono, což je program, který řídí samostatný proces pomocí rozhraní operačního systému k řízení samostatného procesu, funguje ladicí program soft debugger tak, že modul runtime Mono zpřístupní funkci ladění prostřednictvím přenosového protokolu.
Při spuštění aplikace, která se má ladit, kontaktuje ladicí program a ladicí program začne fungovat. V Xamarin.iOS pro Visual Studio funguje agent Xamarin Mac jako prostřední muž mezi aplikací (v sadě Visual Studio) a ladicím programem.
Tento měkký ladicí program vyžaduje při spuštění na zařízení schéma kooperativního ladění. To znamená, že binární sestavení při ladění budou větší, protože kód je instrumentovaný tak, aby obsahoval nadbytečný kód v každém sekvenci, aby podporoval ladění.
Přístup ke konzole
Protokoly chybových ukončení a výstup třídy konzoly se odešlou do konzoly i Telefon. K této konzole můžete přistupovat pomocí Xcode pomocí organizátora a výběrem zařízení z organizátora.
Nebo pokud nechcete spustit Xcode, můžete k přímému přístupu ke konzole použít Nástroj konfigurace Apple i Telefon. To má přidaný bonus, který můžete získat přístup k protokolům konzoly z počítače s Windows, pokud ladíte problém v poli.
Pro uživatele sady Visual Studio je v okně Výstup k dispozici několik protokolů, ale podrobnější a podrobnější protokoly byste měli přepnout na svůj Mac.
Ladění knihoven tříd monofonní třídy
Xamarin.iOS se dodává se zdrojovým kódem knihoven tříd Mono a můžete ho použít k jednomu kroku z ladicího programu a zjistit, jak věci fungují pod kapotou.
Vzhledem k tomu, že tato funkce spotřebovává více paměti během ladění, je ve výchozím nastavení vypnutá.
Chcete-li tuto funkci povolit, ujistěte se, že kód projektu ladění pouze; nezakročujte do možnosti kódu architektury, je v nabídce Visual Studio pro Mac > Preferences > Debugger zrušen, jak je znázorněno níže:
Jakmile to uděláte, můžete aplikaci spustit a krokovat do libovolné knihovny základních tříd Mono.