У меня есть Three20 в моем приложении, которое поддерживает iOS 3.0 и выше.iPhone - приложение падает при запуске на iOS 3.x (_UIApplicationDidEnterBackgroundNotification)
Когда я запускаю приложение с iOS 3.0, iOS 3.1, приложение сразу же запускается при запуске.
Ниже мой отчет аварии:
Date/Time: 2012-06-26 10:38:36.761 -0600
OS Version: iPhone OS 3.1.3 (7E18)
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread: 0
Dyld Error Message:
Symbol not found: _UIApplicationDidEnterBackgroundNotification
Referenced from: /var/mobile/Applications/8E9E6F79-80BB-4CCD-A510-CCBF7BB78BE8/MyApp.app/MyApp
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit
Dyld Version: 149
Вы знаете, что происходит,
Я пропускаю что-то в настройках сборки?
UPDATE 1:
Так я делаю поиск для UIApplicationDidEnterBackgroundNotification
в моем проекте, и есть 3 результаты поиска в TTBaseNavigator.m файла.
один в этом сегменте
#ifdef __IPHONE_4_0
UIKIT_EXTERN NSString *const UIApplicationDidEnterBackgroundNotification
__attribute__((weak_import));
UIKIT_EXTERN NSString *const UIApplicationWillEnterForegroundNotification
__attribute__((weak_import));
#endif
и два в этом методе
- (id)init {
self = [super init];
if (self) {
_URLMap = [[TTURLMap alloc] init];
_persistenceMode = TTNavigatorPersistenceModeNone;
NSNotificationCenter* center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(applicationWillLeaveForeground:)
name:UIApplicationWillTerminateNotification
object:nil];
#ifdef __IPHONE_4_0
if (nil != &UIApplicationDidEnterBackgroundNotification) {
[center addObserver:self
selector:@selector(applicationWillLeaveForeground:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
}
#endif
}
return self;
}
Вы знаете, как настроить эту коду, так что приложение будет работает на прошивке 3.0 и прошивке 3.1.
UPDATE 2:
В настоящее время я не использую TTBaseNavigator поэтому я комментирую два #ifdef __IPHONE_4_0 блоков.
Это исправляет мою проблему, но мне интересно, есть ли у кого-нибудь другое решение, чтобы сделать эту работу, не комментируя код Three20.
Большое спасибо.
Что настроено в качестве цели развертывания вашего приложения в Xcode? Я бы подумал, что установка его на 3.x привела бы к тому, что компилятор проигнорировал бы этот код. –
Цель разработки iOS 3.0 –