2014-10-03 8 views
9

Moja aplikacja jest napisana przy użyciu sencha touch 2.4 i używa najnowszej wersji Cordova. Od czasu iOS8 mam problem z losową awarią aplikacji. Zdarza się to tylko wtedy, gdy całkowicie zamknę aplikację i tylko czasami. Awaria pojawia się bezpośrednio po wyświetleniu ekranu powitalnego. Ikony ładowania dotykowego sencha nie są wyświetlane, a aplikacja po prostu się zamyka. Jeśli spróbuję ponownie otworzyć aplikację, działa.Aplikacja Sencha touch/cordova losowo zawiesza się przy starcie w ios8

Używam localstorage prawie natychmiast, aby zapełnić nazwę użytkownika i takie, próbowałem ją usunąć, ponieważ przeczytałem, ponieważ spowodowało problemy, ale to nie pomogło.

Edit: Po więcej dochodzenia teraz uzyskać ten błąd:

[UIViewAnimationState release]: message sent to deallocated instance 0x17675080 

Wydaje się na przykład zupełnie nowego projektu dotykowym Cordova/Sencha, a także z systemów iOS 8. Czy wiesz, jaka może być tego przyczyna? Czy są jakieś wskazówki, w jaki sposób mogę debugować ten problem?

Edycja2: Sencha mówi, że nie będą oficjalnie wspierać ios8 przed następnym wydaniem, 2.4.1. http://www.sencha.com/forum/showthread.php?292883-Touch-2.4.0-apps-crashing-on-iOS8

Edit3: Myślę, że udało mi się to poprawić, postępując zgodnie z poradami w wątku na forum powiązanym powyżej. Zaktualizowałem system sencha touch, sencha cmd i cordova do najnowszej wersji i zainstalowałem plugin-plugin dla cordova. Nie miałem awarii podczas uruchamiania, mam nadzieję, że to rozwiązało problem.

+0

OK, wydaje się, że nie jest to bezpośrednio związane z 'Sencha Touch' i lub' Cordova', jak dowodzi ten https://bugzilla.xamarin.com/show_bug.cgi?id=23667 raport błędu na 'Xamarin'. 'Xamarin' to platforma' .NET' do budowania natywnych aplikacji mobilnych, więc to dowodzi, że nie jest to bug "Cordova/Phonegap", dodatkowo odtworzyli błąd ładowania strony internetowej do WebView i to dowodzi, że nie jest to "Sencha Touch" 'błąd. Wydaje się bardziej prawdopodobny bug 'JavaScriptCore'. –

Odpowiedz

3

Edit 24/03/2015

Odkryliśmy tej wtyczki https://github.com/Telerik-Verified-Plugins/WKWebView który naprawia losowe awarie przy użyciu nowego WKWebView zamiast starego UIWebView.


To nie wydaje się bezpośrednio związana Sencha Touch i czy Cordova, jak to bug report na Xamarin dowodzi.

Xamarin to platforma .NET do tworzenia natywnych aplikacji mobilnych, więc oznacza to, że nie jest to błąd Cordova/Phonegap, dodatkowo zgłaszający błąd powielił błąd ładowania strony internetowej http://www.xamarin.com do WebView i to dowodzi, że nie jest to błąd Sencha Touch . Stwierdza, że ​​"wydaje się bardziej prawdopodobny błąd JavaScriptCore".

Na plakacie raportu o błędzie ustawiono kilka testów z zewnętrzną stroną internetową, z aplikacją jQuery Mobile oraz z Sencha Touch, stwierdzając, że różne strony spowodowały awarię aplikacji z różnymi stawkami, w szczególności bardzo prosta aplikacja jQuery Mobile została bardziej stabilny z trzech.

Więc starałem się usunąć wszystkie biblioteki zewnętrznych z mojej aplikacji Sencha app.json (dawniej zależą Chart.js, jQuery i niektóre inne biblioteki) i zauważyłem, że bez włączenia ich stosowanie stało znacznie bardziej stabilny.

Przepisałem części kodu wymagające tych bibliotek, ponownie zaimplementowałem funkcje w prostym Javascriptu i zrobiłem kilka testów, dowiadując się, że podczas ładowania zewnętrznych bibliotek, które uległ awarii 1/2 razy, lżejsza wersja rozbiła się o 1/50 czasu (te statystyki zostały nabyte, uruchamiając aplikację 50 razy w każdej wersji).

Testy te sugerują, że błąd związany jest z wagą strony ładowanej do widoku WWW, im jaśniejsza jest ta strona, tym mniejsze prawdopodobieństwo jej awarii.

Mam nadzieję, że pomoże to, przynajmniej poprawi stabilność aplikacji, dopóki Apple nie naprawi WebView.

Powiązane problemy