Сбой из регистра вызовов AsSystemApp iOS 11.3

У меня есть CustomClass: UIApplication

в main.m

retVal = UIApplicationMain(argc, argv, NSStringFromClass([CustomClass class]), NSStringFromClass([AppDelegate class]));

Когда я запускаю в iOS 11.2.2 все нормально. Если я запускаю в iOS 11.3, бета-версия приложения вылетает по причине:

+[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 CustomClass

.час

@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>

SIGABRT

1 ответ

Решение

Проблема заключалась в том, что мой класс в проекте был назван MBApp(это CustomClass), получается, что это имя пересекается с классом из MobileBackup.framework который уже имеет этот класс. Поэтому метод registerAsSystemApp был вызван из MobileBackup.framework и естественно не нашел его там. То есть решением для меня было поменять имя моего MBApp учебный класс. Единственная загадка - почему этого не произошло раньше, поскольку библиотека с классом существует в iOS 5. Спасибо за помощь и извините, что я не написал оригинальное имя класса, потому что это конфиденциальная информация.

Другие вопросы по тегам