2012-01-15 21 views
5

Kończę aplikację na iOS 3.0 i uruchamiam na iPhonie i iPodzie Touch. To dobrze działa na iOS4.0 iw górę, ale kiedy backtest go na drugiej generacji iPod touch z systemem iOS 3.0 pokazy obrazów uruchamiania i ja spotkaliśmy się z następujących czynności:iOS i cofanie archiwizacji plików xib

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x4e, 0x49, 0x42, 0x41, 0x72, 0x63, 0x68, 0x69)' 
2012-01-15 09:35:53.025 MyApp[3026:207] Stack: (
    808001701, 
    805397928, 
    807551015, 
    807550919, 
    810902709, 
    815043196, 
    815042704, 
    814682908, 
    814682012, 
    814970032, 
    814968048, 
    814966908, 
    839149932, 
    807750263, 
    807747947, 
    814678868, 
    814672532, 
    61527, 
    10764 
) 
terminate called after throwing an instance of 'NSException' 
(gdb) backtrace 
#0 0x31dd594c in __kill() 
#1 0x31dd5940 in kill() 
#2 0x31dd5934 in raise() 
#3 0x31deccfe in abort() 
#4 0x374ef848 in __gnu_cxx::__verbose_terminate_handler() 
#5 0x300166c0 in _objc_terminate() 
#6 0x374ecf3c in __cxxabiv1::__terminate() 
#7 0x374ecfb4 in std::terminate() 
#8 0x374ed0dc in __cxa_throw() 
#9 0x300165e4 in objc_exception_throw() 
#10 0x30224026 in +[NSException raise:format:arguments:]() 
#11 0x30223fc6 in +[NSException raise:format:]() 
#12 0x305564b4 in -[NSKeyedUnarchiver initForReadingWithData:]() 
#13 0x3094927c in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:]() 
#14 0x30949090 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:]() 
#15 0x308f131c in -[UIApplication _loadMainNibFile]() 
#16 0x308f0f9c in -[UIApplication _runWithURL:sourceBundleID:]() 
#17 0x309374b0 in -[UIApplication handleEvent:withNewEvent:]() 
#18 0x30936cf0 in -[UIApplication sendEvent:]() 
#19 0x3093687c in _UIApplicationHandleEvent() 
#20 0x3204696c in PurpleEventCallback() 
#21 0x30254a76 in CFRunLoopRunSpecific() 
#22 0x3025416a in CFRunLoopRunInMode() 
#23 0x308f0354 in -[UIApplication _run]() 
#24 0x308eea94 in UIApplicationMain() 
#25 0x0000f056 in main (argc=1, argv=0x2ffff7c8) at ...... Classes/main.m:16 
Current language: auto; currently objective-c 

Jakieś pomysły co to jest i jak to naprawić?

Buduję w Xcode 4.2.1.

PS - Problem nie został rozwiązany przez wyczyszczenie kompilacji lub odtworzenie plików .xib. Czasami aplikacja przechodzi przez ten etap, ale ulega awarii z pozornie z tego samego powodu, gdy widzi później. Xib, na przykład podczas ładowania kontrolera widoku.

+0

Jak mówisz, próbowali czyszczenia budować i resaving stalówki-plików, zakładam, że masz też próbował kasowania zawartości i ustawień w symulatorze? – Emil

+0

Nie, ponieważ próbuję uruchomić na urządzeniu. Aplikacja działa poprawnie w symulatorze (symulatory iOS 4.3 i iOS 5.0). – SK9

+0

Nie masz symulatora 3.0? Proponuję pobrać starszą wersję Xcode i spróbuj ją tam zbudować, aby sprawdzić, czy to pomaga. – Emil

Odpowiedz

2

Ta odpowiedź uważam, że obejmuje to, co dał Ikuragames (nie jest przy swoim komputerze). W jego imieniu, aby rozwiązać problem w Xcode 4.2.1, kliknij plik .xib i w panelu właściwości pliku po prawej stronie, ustaw wdrożenie na "iOS 3.0" (w moim przypadku), a programowanie na "Interface Builder" 3.0 "(znowu w moim przypadku). Zrób to dla każdego pojedynczego pliku .xib w projekcie.

Warto pamiętać, że Xcode 4.2.1 może ustawić domyślne ustawienia "iOS 5.0" dla wdrożenia tutaj, aby dopasować bieżący pakiet SDK i "Xcode 4.1" dla typu dokumentu. Dlaczego Xcode nie pasuje tylko do celu wdrożenia z docelowym wdrożeniem projektu Nie jestem pewien ...

Jeśli to nadal nie działa lub jesteś bardzo paranoiczny na tym etapie, złap wyjątek podniesiony przez NSKeyedUnarchiver podczas ładowania pliku .xib i tam programowo utworzyć widok.

enter image description here

+0

Cieszę się, że to działa - powodzenia w projekcie :-) – ikuramedia

+0

@ikuragames: Jeśli nie masz nic przeciwko, mogę zaakceptować tutaj własną odpowiedź (nawet jeśli jest naprawdę Twoja!). – SK9

+2

z pewnością, nie ma problemu. – ikuramedia