Загрузка основного XIB приводит к сбою приложения на iOS 3.0 - PullRequest
0 голосов
/ 05 марта 2012

спасибо, что нашли время, чтобы прочитать мой вопрос. У меня есть это приложение (In Cydia), которое имеет около 10% пользователей с iOS 3.0, поэтому я хочу поддержать их в следующем обновлении.

Я тестировал его на реальных устройствах под управлением iOS 4.0 и 5.0.1; это работало нормально. Но на iOS 3.0 происходит сбой за исключением:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' -[NSKeyedUnarchiver initForReadingWithData:]: incomprehensible archive (0x4e, 0x49, 0x42, 0x41, 0x72, 0x63, 0x68, 0x69)

очевидно при загрузке основного XIB, вот обратный след исключения:

0  0x30016588 in objc_exception_throw ()
1  0x30224026 in +[NSException raise:format:arguments:] ()
2  0x30223fc6 in +[NSException raise:format:] ()
3  0x305564b4 in -[NSKeyedUnarchiver initForReadingWithData:] ()
4  0x3094927c in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] ()
5  0x30949090 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] ()
6  0x308f131c in -[UIApplication _loadMainNibFile] ()
7  0x308f0f9c in -[UIApplication _runWithURL:sourceBundleID:] ()
8  0x309374b0 in -[UIApplication handleEvent:withNewEvent:] ()
9  0x30936cf0 in -[UIApplication sendEvent:] ()
10 0x3093687c in _UIApplicationHandleEvent ()
11 0x3204696c in PurpleEventCallback ()
12 0x30254a76 in CFRunLoopRunSpecific ()
13 0x3025416a in CFRunLoopRunInMode ()
14 0x308f0354 in -[UIApplication _run] ()
15 0x308eea94 in UIApplicationMain ()
16 0x00003886 in main (argc=1, argv=0x2ffff74c)

Я прочитал и попробовал это и это . Итак, у меня есть все мои перья с версией развертывания 3.0 и разработкой для Interface Builder 3.0, но все же не повезло.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2012

Я второй ответ Эммануила выше. После многих недель выдергивания волос я придумал это решение: Создание универсального приложения для iOS 3.0 с использованием Xcode 4.3.x - исключение NSKeyedUnarchiver

0 голосов
/ 08 марта 2012

После прочтения некоторых документов стало ясно, что iOS версии 3.2 не будет загружать NIB из Xcode 4.2, поэтому я закончил сборку проекта с Xcode 3.2 и скопировал эти NIB в пакет, созданный с помощью Xcode 4.2 в каталоге DerivedData,хорошая часть в том, что я все еще могу отлаживать приложение с помощью Xcode 4.2, плохая часть в том, что это довольно странно, но у меня не было выбора.Спасибо.

...