买买买!廉价版新MacBook暴光:支持指纹解锁

原标题:买买买!廉价版新MacBook暴露:帮助指纹解锁

title: 指纹解锁
date: 2015-9-16 11:39:45
categories: iOS
tags: 指纹解锁

来源| TechWeb


后天黎多美滋(Dumex)点钟就是苹果夏日新品的公布会了,这几天看TechWeb新闻的同伙也知道,TechWeb广播发布了一对一多苹果新Nokia的揭露新闻,从形状到配色到贩卖价格如故到发售时间,可以说发表会没开以前,音信已经被我们挖掘得一清二白了。

作者:秋儿(lvruifei@foxmail.com

虽说新华为是苹果公布会的侧重点,可是这场发表会并不仅仅唯有新黑莓。今后基于最新音信,苹果有名报料人郭明錤称,本次的揭橥会苹果还会带来最新的低价版的MacBook!看到这么些音信,应该多多的伴儿也会激动吧。

iOS8
指纹解锁的API,那篇小说诠释的要命精晓。

图片 1

正文紧要针对在实际上利用中相见的难点及缓解情势,假定已经明白指纹解锁API,如不通晓API,请先活动指纹解锁的API表达

郭明錤暴光图片

花色事先一贯使用的是手势密码,方今要追加 iOS8
新出的指印解锁功用。需要是在安装中添加指纹解锁开关

郭明錤在揭破中称:“苹果只怕不会在3月这一场发表会上揭橥那款新的最低价Mac台式机,但是它曾经真正做好了。”意思也算得,低价版的
MacBook
台式机苹果已经做好了,但是会不会在先天的发表会上公布那么些还不亮堂。同时,按照他的揭穿,那款
MacBook 将协助 Touch ID 指纹认证,可是并未 TouchBar
触控条,终归“低价”嘛,倒是可以知晓。

问题1:

在私有设置里面,添加指纹解锁开关项,此项仅在支撑TouchID 的设施中出现
很好,百度了下,拿到了之类消除方案

<font color=green>消除方案:</font>

LAContext *context = [LAContext new];
NSError *error = [NSError new];
BOOL isAvailable = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];

那是api给出的判定TouchID是或不是可用的办法,isAvailable == Yes 表达 TouchID
可用,反之,则不可用。
不过,当自家满心欢悦的行使的时候,难点来了

图片 2

问题2:

在6 Plus,未设置手机解锁密码或从不可用的螺纹时,用地点的方法判断
isAvailable == No,瞬间心都碎了。
此间照旧有缓解方案

<font color=green>缓解方案:</font>

if (!isAvailable) {
    NSString *str = nil;
    switch (error.code) {
        case LAErrorTouchIDNotEnrolled://无可用指纹

        case LAErrorPasscodeNotSet://设备未开启密码
        {
            isAvailable = YES;
            break;
        }
        case LAErrorTouchIDNotAvailable:
        default:
        {
            isAvailable = NO;
            break;
        }

    }
}

虽说仍旧把那些题材解决了。but,又生出了新的标题。

MacBook
是苹果公司在二〇一四年推出的全新台式机体系,它去掉了后缀直接就叫MacBook,在成品稳定上是一款介于
MacBook Air 和 MacBook Pro
之间的成品,国行贩卖价格大概在1万到1万三里边。

问题3:

接纳上述格局,在 iPod Touch 等不辅助 TouchID
的配备,未设置手机解锁密码意况下运维时,设置中的指纹解锁开关项居然出现了。

单步调试之,在 error.code 的 switch 中,进入的是 case
LAErrorPasscodeNotSet://设备未开启密码,执行了isAvailable =
YES;。然,大胆估量之,api
居然先判断的是有没有打开密码而不是装备档次和或系统是或不是帮忙,那使自身彻底无语~~~~

这时,作者再也不相信API了,果断本身写判断吧。

<font color=green>缓解方案:</font>

// 硬件设备不支持,或系统版本不支持 指纹解锁
if (![Utils isSystemModelSupportTouchID] || ![Utils isSystemVersionMoreThanVersion:7.0]) {
    return NO;
}

LAContext *context = [LAContext new];
NSError *error = [NSError new];
BOOL isDeviceSupportTouchId = [context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error];

if (!isDeviceSupportTouchId) {

    //不支持指纹识别

    switch (error.code) {

        case LAErrorTouchIDNotEnrolled:

        case LAErrorPasscodeNotSet:
        {
            isDeviceSupportTouchId = YES;
            break;
        }
        case LAErrorTouchIDNotAvailable:
        default:
        {
            isDeviceSupportTouchId = NO;
            break;
        }
    }
}


return isDeviceSupportTouchId;

硬件装备判断上花了一小点武术,版本判断显著很简短。

硬件配备判断思路:

1.赢得装备档次字符串,如One plus 5c,Motorola 6;
2.论断设备项目字符串是包括HTC ,iPod , GALAXY Tab,是金立则截取设备项目字符串中的第几位数字,平板电脑 有分mini 和Air,
截取设备档次字符串中的第三个人数字,然后数字比较判断是不是协理TouchID。

从这之后,TouchID 告一段落!在此,附上本文中的 德姆o
地址:LRFFingerPrintManager,欢迎各位读者对象提出提出。。




时间:2015年12月23日

不久前 iOS9.2 系统正式发布,有反应说App中应用指纹解锁在 iOS9.2
上会导致App崩溃。故,伊始了查找 bug 之旅。

而基于以前产业链分析师 吉米 Hsiao
的解析,那款入门级 MacBook 将会搭载与 MacBook Pro
相同尺寸的13.3寸Retina屏幕,而售卖价格方面将与 MacBook Air
一致,只怕会略高于 999 英镑(约合人民币 6315 元)。

问题4:

晋级手机9.2 版本后,使用指纹解锁,果然是崩溃了。手指放到 home
键上后,App 卡死,不可能点击页面上的控件,大致3,4秒后闪退至桌面。

出于测试机都不曾晋升,故先看了相关的代码,注意到在认证指纹成功后,
使用dispatch_sync(dispatch_get_main_queue(), ^{
})来调用主线程处理局地工作。遂,预计应该是那里出了难题,一般应采取dispatch_async,而非dispatch_sync。但不敢肯定,因为不能解释那样写就会崩溃,而且以前平素都以足以健康使用的。

<font color=brown>原因:</font>
iOS9.2
做了优化,使体验更通畅。或然在dispatch_async和dispatch_sync下了刀。

<font color=green>缓解方案:</font>

待用9.2连串的真机运营时,半信半疑的把其改用了dispatch_async,并从未崩溃。但利用dispatch_sync确实崩溃了。

图片 3

MacBook
与 MacBook Air | 图片来自CNET

若是说新款入门级 MacBook
真的是那种布局而且那种价格的话,毫无疑问一定会成为热卖爆款了啊,如此一来苹果又足以提振笔记本销量给股东交二个难堪的成绩单了。

两次三番结果到底是什么的啊?我们就静待后天苹果发表会发布了!

本文完回到博客园,查看越多

权利编辑:

发表评论

电子邮件地址不会被公开。 必填项已用*标注