钉钉非官方客服端登录该如何解决?大多数人都死在这里! 来高手解答


#1


#2

查了很多相关资料都没解决,相信大家应该和我一样吧


#3

bundleid 保持一致


#4

都有UI显示了,,这个框是怎么弹出来的,为什么会弹出来。你往上跟就是了


#5

从弹框入手,很简单。


#6

已经解决谢谢大家!


#7

你现在打卡没问题了吗


#8

对的已经ok


#9

你打卡时,会不会提示“ 非官方钉钉,需要人脸识别” 类似的提示


#10

另外,可否把代码分享出来,膜拜膜拜


#11

出现非官方钉钉,需要人脸识别


#12

bundleID 的问题,和官方一样的可以了


#13

嗯这个问题解决了显示估计是又下发新策略了人脸识别


#14

一样了还是会弹出提示


#15

hook 包名


#16

只需要hook -[NSBundle bundleIdentifier]即可,但是要注意只能针对二进制DingTalk访问该方法时返回官方的bundleId(com.laiwang.DingTalk)其它包访问该方法还是返回真实的bundlId。

参考:
CHMethod(0, NSString *, NSBundle, bundleIdentifier) {
NSArray *address = [NSThread callStackReturnAddresses];
Dl_info info = {0};
if(dladdr((void *)[address[2] longLongValue], &info) == 0) {
return CHSuper(0, NSBundle, bundleIdentifier);
}
NSString *path = [NSString stringWithUTF8String:info.dli_fname];
if ([path hasPrefix:NSBundle.mainBundle.bundlePath]) {
return @“com.laiwang.DingTalk”;
} else {
return CHSuper(0, NSBundle, bundleIdentifier);
}
}