一个iOS 10 beta 版 系统Crash

引言

近期在玩弄iOS 10 的本地通知,遇到了一个让本人很无奈的系统bug,以此记录并提醒下大家。

事情是这样的:

本人拿了一个power键失灵(同事闲置)的iPhone5刷了iOS 10 beta版系统。
原因:熟悉和测试iOS10新增的接口。

然而。。。。

触发bug的时候是这样的:

一个iOS 10 beta 版 系统Crash_第1张图片
AA2B5C31-F32C-4212-A57D-247C5159DEFF.png

后来!发现开机变成 一直这样了:

一个iOS 10 beta 版 系统Crash_第2张图片
7560AE8C-176A-491A-AD74-E7969F71E6D6.png

由于power键无法使用,所以。。。。
大家千万别手贱

原因:

调用iOS 10 的创建本地通知方法,requestWithIdentifier传入一个空字符串(其实是从一个文本框传入Identifier值,只是。。。我忘记输入了。。。),具体代码:

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
        if (granted) {
            [[UIApplication sharedApplication] registerForRemoteNotifications];
        }
    }];
    center.delegate = self;
     
    UNNotificationAction *action1 = [UNNotificationAction actionWithIdentifier:@"action1" title:@"action1" options:UNNotificationActionOptionForeground];
    UNNotificationAction *action2 = [UNNotificationAction actionWithIdentifier:@"action2" title:@"action2" options:UNNotificationActionOptionForeground];
    
    UNNotificationCategory *category = [UNNotificationCategory categoryWithIdentifier:@"category" actions:@[action1, action2] intentIdentifiers:@[] options:UNNotificationCategoryOptionCustomDismissAction];
    
    [[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:[NSSet setWithObject:category]];
    
    
    // conent
    UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init];
    content.title = @"Introduction to Notifications";
    content.subtitle = @"Session 707";
    content.body = @"Woah! These new notifications look amazing! Don’t you agree?";
    content.sound = [UNNotificationSound defaultSound];
    content.badge = @1;
    content.userInfo = @{@"name" : @"zhangsan"};
    content.categoryIdentifier = @"category";
    
    // trigger

    UNTimeIntervalNotificationTrigger *trigger1 = [UNTimeIntervalNotificationTrigger triggerWithTimeInterval:10 repeats:YES];
    
    // request
    NSString *requestIdentifier = @"707";
    UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"" content:content trigger:trigger1];
    [[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
        
    }];
    

如何正确进入DFU刷机教程

转自:http://www.cnmo.com/os/340307.html

一、背景知识:
DFU模式:DFU的全称是Development FirmwareUpgrade,实际意思就是iPhone固件的强制升降级模式。
恢复模式:屏幕上会显示iTunes和数据线图标的模式
  两种最大的区别是DFU模式没有启动Mac OS系统,iTunes无法决定iPhone的恢复过程是否中断,因为系统未启动,相关服务无法启用。应该能够肯定的是,DFU模式下恢复的iPhone会更加彻底。
二、刷机前准备工作:   
将手机电量充满,充至100%以后,再充几分钟,能解决部分电量显示错误问题。
三、刷机步骤:

1.手动进入DFU模式:开机状态,用数据线跟电脑连接好。先按住关机键2秒,然后,同时按住关机键和Home键8-10秒;最后,只按住Home键15秒。   
2.检查否正确进入DFU模式:在DFU模式下,手机是黑屏的。如果没有成功,请重新进行第一步。   
3.进入DFU状态后,iTunes检验到处于一个恢复状态的iPhone,你可以看见有一个恢复的按钮,此时你按住键盘的shift键,然后鼠标左键点击“恢复”。此时出现一个窗口,找到固件的路径后,然后双击你下载好的的固件,最后iTunes会自动恢复的。切记,过程中千万别拔数据线,别动你的iphone,只要静静等候即可。
4.iTunes恢复完成后会弹出一个窗口,大致内容是“你的iPhone已经恢复完成,本窗口会在10秒后自动关闭”。关闭这个窗口,然后拔开数据线,不要用电脑激活iPhone,在手机端激活系统会纯净些。

你可能感兴趣的:(一个iOS 10 beta 版 系统Crash)