开发者社区 问答 正文

一个很奇怪的OC问题,获取IDFA闪退

+ (NSString *)getDeviceId
{
    static NSMutableString *did = nil ;
    if (did == nil) {
        did = [[NSMutableString alloc] initWithCapacity:32];
        // Check whether iOS version is greater than or equal to 7.0.
        if (kIOS7_OR_LATER) {
            NSString *idfa = [[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString] lowercaseString];
            [did setString:[idfa md5Hash]];
        } else {
            ...
        }
    }
    return did;
}
 

md5方法

 
- (NSString*)md5Hash {
    return [[self dataUsingEncoding:NSUTF8StringEncoding] md5Hash];
}
 

用户设备 4th Gen iPad, CDMA+LTE 、iOS7.1.1。所以else部分我省略了。crash出现在 [did setString...] 这里。问题发生在部分越狱设备,非越狱设备还不知道,因为苹果还在审核。

展开
收起
杨冬芳 2016-06-29 12:45:36 2886 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    用户不允许使用idfa,需要增加判断。

    2019-07-17 19:48:58
    赞同 展开评论
问答分类:
问答地址: