Artykuł

freeimages.com freeimages.com
gru 09 2016
0

Jak sprawnie budować aplikacje w Xamarinie

Xamarin może rozwiązać wiele problemów technologicznych związanych z samym procesem pisania aplikacji, ale może również wygenerować sporo nowych tematów m.in. w obszarze budowania programów, czy też obsługi tzw. błędów runtime. Proces buildu jest w tym przypadku dość złożony, ponieważ najpierw musi nam się udać kompilacja kodu napisanego w C#, a dopiero później powstaje wynikowy kod natywny upakowany do pliku apk w Androidzie czy pliku ipa w iOS. Jeśli dodamy do tego temat obfuskacji kodu, to szybko może się okazać, że temat budowania może nie pójść tak gładko, jak reklamowane jest to na stronie Xamarina.

Dlatego też warto poznać kilka reguł, które mocno zredukują prawdopodobieństwa wystąpienia błędów na etapie kompilacji, czy też testowania wersji debug.

Odpowiednia wersja SDK

Jeśli pracujesz sam, na jednym komputerze to tak właściwie ten temat Cię nie dotyczy. Jeśli jesteś w sytuacji w której do developmentu używane są przynajmniej dwa komputery (niezależnie czy Twoje, czy współpracowników), to jest spora szansa, że może dojść do konfliktowej sytuacji. W tym przypadku musicie w zespole zadbać o równe wersje SDK na wszystkich komputerach (a także na serwerach jeśli używacie CI). Poniżej elementy na które warto zwrócić uwagę:

  • SDK Xamarin (Xamarin, Xamarin.Android, Xamarin.iOS) - SDK powinno mieć zawsze ten sam numerek (datę wydania). Ponieważ instalator jest inny dla Windowsa i MacOS, można zasugerować się datą wydania
  • Xcode
  • Android SDK
  • Java SDK (JDK)

Warto również pomyśleć nad zablokowaniem mechanizmu automatycznej aktualizacji wyżej wymienionych elementów.

Odczekaj z aktualizacją Nugeta

Xamarin wydaje nowe, stabilne paczki nugetowe co kilka miesięcy. Przeważnie pomiędzy poszczególnymi wersjami stabilnymi trafi się również kilka bet. Jeśli cenicie sobie spokój, a Wasze aplikacje działają dobrze i jednocześnie nie potrzebujecie wdrażać żadnej z wprowadzonych funkcjonalności, to proponuję zastanowić się dwa razy, zanim dokonacie aktualizacji paczki nugetowej. Nowe wersje często wprowadzają rozmaite poprawki i usprawnienia, ale niejednokrotnie generują również błędy we funkcjonalnościach, które działały wcześniej.

Swego czasu nowe wersje potrafiły również powodować problemy z kompilacją wcześniej działającego kodu. Na szczęście ostatnimi czasy takie sytuacje zdarzają się coraz rzadziej.

Przy okazji aktualizacji nugeta, warto się również upewnić, że nie używasz żadnych konstrukcji, które Xamarin oznaczył jako deprecated.

Opcja Clean Solution Twoim przyjacielem

Sporą liczbę problemów mona również rozwiązać poprzez wyczyszczenie folderów bin i obj. Można w tym celu napisać sobie skrypt, lub skorzystać z opcji Clean Solution, którą można znaleźć np. w Visual Studio.

Na niektóre problemy może pomóc również prosta zasada wyłącz-włącz. Restart Visual Studio potrafi zdziałać cuda.

Odinstaluj aplikację

W przypadku gdy korzystamy z aplikacji w trybie debugowania, to może pojawić się kilka problemów - szczególnie na Androidzie w sytuacji gdy mamy włączona opcję Fast deployment. Po aktywacji tej opcji, deployowane są tylko te assembly, które IDE uważa że zostały zmienione. Może to skutkować tym, że nasz zmodyfikowany kod, tak faktycznie nie odpali się na emulatorze/urządzeniu. Jeśli macie wrażenie, że Wasz program powinien działać, to warto odinstalować aplikację, lub odznaczyć wspomnianą wyżej opcję w ustawieniach projektu. Trzeba jednak zauważyć, że po odznaczeniu tej opcji może wydłużyć się czas deployowania programu.

Innym problemem z tego samego obszaru trapiącym Androida, jest błąd:

INSTALL_FAILED_UPDATE_INCOMPATIBLE

Który pojawia się w logach budowania podczas próby deployu (głównie na urządzenie). Jeśli otrzymacie taki komunikat, to w większości przypadków pomaga deinstalacja aplikacji. Program może w takiej sytuacji nie być widoczny w launcherze, ale powinien znajdować się w menadżerze aplikacji (często pod nazwą pakietu). Jeśli go tam nie będzie, to ostateczną deską ratunku może być deinstalacja przez adb.

W przypadku jakichkolwiek błędów, najlepiej wypróbować sprawdzony scenariusz:

  • Odinstalować aplikację
  • Wyczyścić solucję
  • Wywołać opcję Rebuild solution

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus