调用 registerAsSystemApp iOS 11.3 时崩溃
Crash from call registerAsSystemApp iOS 11.3
我有 CustomClass: UIApplication
在 main.m
retVal = UIApplicationMain(argc, argv, NSStringFromClass([CustomClass class]), NSStringFromClass([AppDelegate class]));
当我在 iOS 11.2.2 启动时没问题。如果我在 iOS 中启动 11.3 beta 应用程序崩溃,原因是:
+[CustomClass registerAsSystemApp]: unrecognized selector sent to class 0x1b4ff8648
Call stack: (
0 CoreFoundation 0x00000001836bc250 <redacted> + 252
1 libobjc.A.dylib 0x00000001828845ec objc_exception_throw + 56
2 CoreFoundation 0x00000001836c9488 <redacted> + 0
3 CoreFoundation 0x00000001836c1a74 <redacted> + 1380
4 CoreFoundation 0x00000001835a7b0c _CF_forwarding_prep_0 + 92
5 UIKit 0x000000018dbcb744 <redacted> + 852
6 UIKit 0x000000018d9cc1e8 UIApplicationMain + 184
7 company.product 0x0000000100ceb264 main + 176
8 libdyld.dylib 0x0000000183021fc0 <redacted> + 4
) libc++abi.dylib: terminate_handler unexpectedly threw an exception
我不明白为什么?
UPD
在模拟器中 iOS 11.3 工作得很好...但是我从设备上崩溃了
UPD2自定义类
.h
@interface CustomClass : UIApplication {
TCBIdleService *_idleService;
LocationManager *_locationManager;
TCBUserSession *_userSession;
}
+ (CustomClass *)sharedApp;
+ (NSString *)pushNotificationTokenKey;
- (void)loginWithUserInfo:(UserInfoMto *)userInfo;
- (void)logout;
- (void)registerPushNotifications;
.m
@interface CustomClass ()<TCBIdleServiceObserving, UIAlertViewDelegate, QCSSendListener>
问题是我的class在项目中被命名为MBApp
(这是CustomClass),结果发现这个名字与[=11]中的class相交=] 已经有这个 class。所以,registerAsSystemApp
这个方法是从MobileBackup.framework
调用的,自然没有在那里找到。也就是说,我的解决方案是更改我的 MBApp
class 的名称。唯一的困惑是为什么它以前没有发生,因为带有 class 的库与 iOS 一起存在 5. 感谢所有帮助,很抱歉我没有写原始的 class 名称,因为这是机密信息。
我有 CustomClass: UIApplication
在 main.m
retVal = UIApplicationMain(argc, argv, NSStringFromClass([CustomClass class]), NSStringFromClass([AppDelegate class]));
当我在 iOS 11.2.2 启动时没问题。如果我在 iOS 中启动 11.3 beta 应用程序崩溃,原因是:
+[CustomClass registerAsSystemApp]: unrecognized selector sent to class 0x1b4ff8648
Call stack: (
0 CoreFoundation 0x00000001836bc250 <redacted> + 252
1 libobjc.A.dylib 0x00000001828845ec objc_exception_throw + 56
2 CoreFoundation 0x00000001836c9488 <redacted> + 0
3 CoreFoundation 0x00000001836c1a74 <redacted> + 1380
4 CoreFoundation 0x00000001835a7b0c _CF_forwarding_prep_0 + 92
5 UIKit 0x000000018dbcb744 <redacted> + 852
6 UIKit 0x000000018d9cc1e8 UIApplicationMain + 184
7 company.product 0x0000000100ceb264 main + 176
8 libdyld.dylib 0x0000000183021fc0 <redacted> + 4
) libc++abi.dylib: terminate_handler unexpectedly threw an exception
我不明白为什么?
UPD 在模拟器中 iOS 11.3 工作得很好...但是我从设备上崩溃了
UPD2自定义类
.h
@interface CustomClass : UIApplication {
TCBIdleService *_idleService;
LocationManager *_locationManager;
TCBUserSession *_userSession;
}
+ (CustomClass *)sharedApp;
+ (NSString *)pushNotificationTokenKey;
- (void)loginWithUserInfo:(UserInfoMto *)userInfo;
- (void)logout;
- (void)registerPushNotifications;
.m
@interface CustomClass ()<TCBIdleServiceObserving, UIAlertViewDelegate, QCSSendListener>
问题是我的class在项目中被命名为MBApp
(这是CustomClass),结果发现这个名字与[=11]中的class相交=] 已经有这个 class。所以,registerAsSystemApp
这个方法是从MobileBackup.framework
调用的,自然没有在那里找到。也就是说,我的解决方案是更改我的 MBApp
class 的名称。唯一的困惑是为什么它以前没有发生,因为带有 class 的库与 iOS 一起存在 5. 感谢所有帮助,很抱歉我没有写原始的 class 名称,因为这是机密信息。