感謝您抽出一些時間來閱讀我的問題。 我有這個應用程序(在蘋果蠹),其中約有10%的用戶與iOS 3.0,所以我想在我的下一次更新中支持他們。加載主XIB使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)
我已閱讀並試圖this和this。因此,我將所有的部署版本設置爲3.0,並開發到Interface Builder 3.0,但仍然沒有運氣。
你有一箇舊的XCode SDK?你有沒有試過用這種sdk的InterfaceBuilder打開筆尖? – 2012-03-05 09:19:11
感謝@Peter,我認爲有一些進展,我遵循了你的建議,幸運的是我有權訪問Xcode 3.2,我在那裏編譯我的項目,經過一些修復後,它可以在iOS 3.0設備上運行,然後我複製了精確的同樣的項目到Xcode 4.2,我從以前得到同樣的錯誤,我想這是關於新的Xcode編譯項目的方式。 – Emanuel 2012-03-05 20:01:42
我不是100%確定,但我認爲我已經閱讀過某些地方,xcode 4.2筆尖只能向下兼容到iOS 3.2。我試着將最小需求目標設置爲3.2 - 或者嘗試使用用舊sdk創建的nib而不用在XCode 4.2中重新編譯它們。 – 2012-03-06 04:55:52