2013-03-15 11 views
17

Moja aplikacja ma możliwość czyszczenia wszystkich kontaktów i wydarzeń kalendarza. Działało dobrze, o ile nie przeprowadziliśmy testów warunków skrajnych.Problem z jasnością podczas testów warunków skrajnych

Podczas tego, że był obserwatorem że jasność urządzenia idzie w dół, gdy wykonujemy następujący przypadek użycia

  1. Sync Facebook, Gmail itp rachunkach urządzenia tak, że istnieje wiele zapisów w kontaktach i kalendarzu. W naszym przypadku mieliśmy około 477 kontaktów i 1500 wydarzeń kalendarzowych.
  2. Wydaj polecenie czyszczenia
  3. Podczas wycierania wyłącz urządzenie i włącz je ponownie.
  4. Zgodnie z projektem aplikacji pyta serwer, czy były jakieś oczekujące polecenia i ponownie uruchamia czyszczenie.
  5. Teraz, gdy przełączam się między kartami aplikacji, jasność urządzenia nagle spada. Jeśli przejdę do ustawień i sprawdzę poziom jasności, nie zmieni się. Nie zrobiliśmy nic w aplikacji, która zmieni jasność urządzenia.

To jest dla nas dziwne i niełatwe do zrozumienia. Jeśli ktokolwiek ma jakąś wskazówkę, odpowiedz.

Najpierw pomyślałem, że iOS może to zmienić, ponieważ automatyczna jasność jest włączona. Jeśli więc aplikacja pobiera więcej zadań przetwarzania, może to robić w celu oszczędzania energii. Ale problem nadal występuje, nawet gdy automatyczna jasność jest wyłączona.

Drugi problem polega na tym, że dzieje się tak, gdy WYŁĄCZAM n NA urządzeniu. Więc po wyłączeniu, tracę sesję debugowania. Tak trudno znaleźć powód

Uwaga: przez wyłączenie - mam na myśli całkowite wyłączenie urządzenia. Długie naciśnięcie przycisku zasilania, przesuń, aby wyłączyć urządzenie. Awaria nie występuje, jeśli wykonamy kroki podczas wymazywania kontaktów. Występuje tylko wtedy, gdy usuwamy zdarzenia z kalendarza:

Dodawanie kolejnych szczegółów. Dostaję również awarię, po której występuje powyższy problem. Poniżej znajdują się szczegółowe informacje o zdarzeniu

`Incident Identifier: 297BD243-B9D9-414F-A9FB-3C02CAAF8A89 
CrashReporter Key: e2ff53439e90b377dadf9c750793f23cac739930 
Hardware Model:  iPhone4,1 
Process:   SpringBoard [293] 
Path:   /System/Library/CoreServices/SpringBoard.app/SpringBoard 
Identifier:  SpringBoard 
Version:   ??? (???) 
Code Type:  ARM (Native) 
Parent Process: launchd [1] 

Date/Time:  2013-03-21 16:30:25.137 +0530 
OS Version:  iOS 6.1 (10B142) 
Report Version: 104 

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Crashed Thread: 21 

blah ... blah ... blah ... all thread info 

Thread 21 name: Dispatch queue: com.apple.eventkit.eventstore.registered 
Thread 21 Crashed: 
0 libsystem_kernel.dylib   0x396e8350 __pthread_kill + 8 
1 libsystem_c.dylib    0x3965f11e pthread_kill + 54 
2 libsystem_c.dylib    0x3969b96e abort + 90 
3 libc++abi.dylib     0x38c39d4a abort_message + 70 
4 libc++abi.dylib     0x38c36ff4 default_terminate() + 20 
5 libobjc.A.dylib     0x391eaa74 _objc_terminate() + 144 
6 libc++abi.dylib     0x38c37078 safe_handler_caller(void (*)()) + 76 
7 libc++abi.dylib     0x38c37110 std::terminate() + 16 
8 libc++abi.dylib     0x38c3850e __cxa_throw + 118 
9 libobjc.A.dylib     0x391ea9ba objc_exception_throw + 90 
10 CoreFoundation     0x314cd158 +[NSException raise:format:arguments:] + 96 
11 Foundation      0x31da2ab2 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 86 
12 EventKit      0x31bb1882 -[EKObjectID entityName] + 382 
13 EventKit      0x31bb1604 -[EKEventStore _addFetchedObjectWithID:] + 52 
14 EventKit      0x31bfb95e __68-[EKEventStore registerFetchedObjectWithID:defaultLoadedProperties:]_block_invoke_0 + 78 
15 libdispatch.dylib    0x396014b4 _dispatch_client_callout + 20 
16 libdispatch.dylib    0x396059f2 _dispatch_barrier_sync_f_invoke + 26 
17 EventKit      0x31bb150c -[EKEventStore registerFetchedObjectWithID:defaultLoadedProperties:] + 156 
18 EventKit      0x31c039ce __41-[EKPredicateSearch startWithCompletion:]_block_invoke_0 + 514 
19 EventKit      0x31bb8830 -[EKDaemonConnection _processReplyWithID:data:finished:] + 264 
20 EventKit      0x31bb871e CADReceiveReply + 94 
21 EventKit      0x31bb86a2 _XReply + 118 
22 EventKit      0x31bb8626 ClientCallbacks_server + 90 
23 libdispatch.dylib    0x39609a02 dispatch_mig_server$VARIANT$mp + 114 
24 EventKit      0x31c00c84 __43-[EKDaemonConnection initWithOptions:path:]_block_invoke_016 + 36 
25 libdispatch.dylib    0x39608134 _dispatch_source_invoke$VARIANT$mp + 248 
26 libdispatch.dylib    0x3960691a _dispatch_root_queue_drain + 182 
27 libdispatch.dylib    0x39606abc _dispatch_worker_thread2 + 80 
28 libsystem_c.dylib    0x39636a0e _pthread_wqthread + 358 
29 libsystem_c.dylib    0x396368a0 start_wqthread + 4 


Thread 21 crashed with ARM Thread State (32-bit): 
    r0: 0x00000000 r1: 0x00000000  r2: 0x00000000  r3: 0x3b1af534 
    r4: 0x00000006 r5: 0x07494000  r6: 0x1f96a044  r7: 0x074932b4 
    r8: 0x1f96a020 r9: 0x00000300  r10: 0x1f9594a0  r11: 0x1fa97b00 
    ip: 0x00000148 sp: 0x074932a8  lr: 0x3965f123  pc: 0x396e8350 
    cpsr: 0x00000010` 

Proszę rzucić trochę światła, jeśli masz jakąkolwiek wiedzę na ten temat.

+0

Z ciekawości; to dla iPhone'a z jailbreakiem, prawda? – viral

+0

nie ... To nie jest jailbreak iPhone. – Sagrian

+0

Czy można przywrócić jasność za pomocą [[UIScreen mainScreen] setBrightness: 1.0]? – Nuoji

Odpowiedz

0

Upewnij się, że po wyłączeniu urządzenia nie zmieniasz ilości światła wpadającego do czujnika światła otoczenia. Zauważyłem to zachowanie już wcześniej i przypisałem je do słabo zaimplementowanego wykrywania światła w imieniu systemu operacyjnego.

+0

emm .. nie mam pojęcia o czym mówisz. Nie bawimy się z żadnym czujnikiem w naszym kodzie. Czy mógłbyś bardziej rozwinąć swoją sugestię? – Sagrian

+0

Ach, przepraszam, powinienem określić. Odnoszę się do czujnika światła otaczającego, który domyślnie jest obsługiwany przez iOS. Jeśli po odblokowaniu urządzenia dłoń zasłoni czujnik światła otoczenia, system operacyjny (w aplikacji) może zmniejszyć jasność. Zajmuję się rozwiązywaniem możliwych rozwiązań, dla których aplikacja, która nie edytuje jasności ekranu, zmieni swój poziom jasności w trakcie oglądania. – woody121

+0

nie ... to nie jest problem ... zweryfikowany. Występuje również awaria, więc myślę, że jest jakiś inny problem. Podejrzewam, że występuje niezgodność stanu zdarzenia, jeśli wyłączymy urządzenie podczas funkcji removeEvent: span: error. Proszę podziel się, jeśli masz jakąś teorię na ten temat ... – Sagrian

1

Nie wierzę, że ma to coś wspólnego z awarią aplikacji i jest przeznaczone do wbudowania w iOS, gdy urządzenie się przegrzewa.

miałem to się stało w innych aplikacjach, jak również i to zazwyczaj ma miejsce, gdy:

  1. Aplikacja korzysta blisko 100% CPU (generuje ciepło)
  2. Ciepło nie może uciec (za pomocą pokrywy lub telefon leży na płótnie)
  3. urządzenie jest również ładowanie (tworzy dodatkowe ciepło)

brzmi jak urządzenie jest podłączone do rejestrowania dzienników. Spróbuj przetestować go bez podłączania go do procesora i zobacz, czy to robi różnicę.