Closed 0linatan0 closed 4 years ago
same problem.
just add -ObjC in other-link-flag .
see http://blog.csdn.net/u012371575/article/details/78652718
clang --help | grep "\-ObjC"
we already added -ObjC in other-link-flag , but the problem still exists.
同样的崩溃日志, 用otool查看是 advertisingIdentifier为00000000-0000-0000-0000-000000000000, 触发assert异常崩溃的.
取不到advertisingIdentifier时不能跳到idfv吗? 为什么直接就assert崩溃?
@SolaWing 你这个能稳定的重现吗 我把广告追踪去除之后 也无法稳定复现...
@huakucha 正常复现不了. 只有线上的崩溃日志. 但通过替换系统advertisingIdentifier返回000可以复现. 我反汇编后替换实现, 把Assert换成默认值后, 线上没再出现类似的崩溃.
+ (NSString*)fix_weibo_getUniqueStrByUUID {
ASIdentifierManager *m = [ASIdentifierManager sharedManager];
NSString *identifier = nil;
if ([m isAdvertisingTrackingEnabled]) {
identifier = [[m advertisingIdentifier] UUIDString];
if ([identifier isEqualToString:@"00000000-0000-0000-0000-000000000000"]) {
DDLogError(@"empty idfa when tracking enable!");
identifier = nil;
}
}
if (!identifier) {
identifier = [[[self currentDevice] identifierForVendor] UUIDString];
if ([identifier isEqualToString:@"00000000-0000-0000-0000-000000000000"]) {
DDLogError(@"empty idfv when tracking enable!");
identifier = nil;
}
}
if (!identifier) {
// 该方法必须返回一个值, 不然weibo会崩溃
identifier = [NSUUID UUID].UUIDString;
}
if (!identifier) {
// 实在取不到了, 返回一个空字符串吧
identifier = @"";
}
return identifier;
}
@SolaWing fix_weibo_getUniqueStrByUUID 这个方法 要aop到哪个位置
@huakucha 程序启动, 调用weibo前就行.
Class c = [UIDevice class];
method_exchangeImplementations(class_getClassMethod(c, @selector(fix_weibo_getUniqueStrByUUID)),
class_getClassMethod(c, @selector(getUniqueStrByUUID)));
@SolaWing 我用msgsend稳定复现了 已经解决 谢谢了...
same issue
请使用最新sdk
注册微博sdk的时候发生crash