全部。由于这个问题,我已经敲了几个小时的头。我有一个混合了 iPhone 和 iPad 项目的通用项目。我将这些代码库放在通用项目中,经过大量“ #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200
”检查,让项目在 iPhone(OS 3.0 到 3.1.3)和 iPad 模拟器中运行。在对我加载的外部库的项目设置进行了更深入的研究之后,我将应用程序加载到了 iPhone(运行 OS 3.1.3)上。
但是,当我在 iPad 上运行该应用程序时,我会立即收到 SIGABRT 错误。我尝试在Debug和Release下使用armv6 和 armv7 的Active Architecture运行它。我已经检查并再次检查了该应用程序是否设置了正确的 nib 文件(但同样,该应用程序在模拟器中运行良好)。我浏览了我正在使用的外部库,并将它们设置为具有相同的基础 SDK (3.2)、相同的架构(优化 (armv6 armv7))、相同的目标设备系列(iPhone/iPad)和相同的iPhone OS 部署目标(iPhone OS 3.0)。
所以,总结一下......我有一个通用应用程序,可以在 iPhone 和 iPad 的模拟器中运行,在实际的 iPhone 上运行,但不能在 iPad 上运行。它在 iPad 上并没有走多远——有一个立即 SIGABRT 错误会停止执行。帮助??
编辑以下 Jason 的建议,这是我的应用程序的堆栈跟踪:
#0 0x30c8e0a0 in __kill ()
#1 0x30c8e096 in kill ()
#2 0x30c8e088 in raise ()
#3 0x30ca2210 in abort ()
#4 0x32944a22 in __gnu_cxx::__verbose_terminate_handler ()
#5 0x335657ca in _objc_terminate ()
#6 0x32942df4 in __cxxabiv1::__terminate ()
#7 0x32942e48 in std::terminate ()
#8 0x32942f18 in __cxa_throw ()
#9 0x335646aa in objc_exception_throw ()
#10 0x32c91c9c in -[NSException raise] ()
#11 0x32b57db2 in -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] ()
#12 0x32b1b9da in _NSSetUsingKeyValueSetter ()
#13 0x32b1ae40 in -[NSObject(NSKeyValueCoding) setValue:forKey:] ()
#14 0x32b1adac in -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] ()
#15 0x315db6b6 in -[UIRuntimeOutletConnection connect] ()
#16 0x32c27bc6 in -[NSObject performSelector:] ()
#17 0x32c25a18 in -[NSArray makeObjectsPerformSelector:] ()
#18 0x315d5746 in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] ()
#19 0x315d53c0 in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] ()
#20 0x314d5d50 in -[UIApplication _loadMainNibFile] ()
#21 0x314d5a7e in -[UIApplication _runWithURL:payload:launchOrientation:] ()
#22 0x31521962 in -[UIApplication handleEvent:withNewEvent:] ()
#23 0x315212e0 in -[UIApplication sendEvent:] ()
#24 0x31520d2a in _UIApplicationHandleEvent ()
#25 0x30d62b32 in PurpleEventCallback ()
#26 0x32c23d9c in CFRunLoopRunSpecific ()
#27 0x32c234e0 in CFRunLoopRunInMode ()
#28 0x314d54a8 in -[UIApplication _run] ()
#29 0x314d39f2 in UIApplicationMain ()
#30 0x00002f62 in main (argc=1, argv=0x2ffff5d8)
如您所见,它并没有脱离 main.m 中的 main 函数。