一个诡异bug---symbol not found: objc_setProperty_atomic

bug描述

用户反馈,最新版的百度音乐HD安装闪退。删除后安装仍然闪退。
从用户设备上导出的log如下:

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread: 18

Dyld Error Message:
Symbol not found: _objc_setProperty_atomic
Referenced from: /var/mobile/Applications/689E98D3-93F1-4FF9-AF14-8F16BE854104/MusicHD.app/MusicHD
Expected in: /usr/lib/libobjc.A.dylib
Dyld Version: 199.6

Thread 18 Crashed:
0 dyld 0x2fe3e080 dyld_fatal_error + 0
1 dyld 0x2fe40efc dyld::halt(char const*) + 72
2 dyld 0x2fe40fda dyld::fastBindLazySymbol(ImageLoader**,unsigned long) + 214
3 libdyld.dylib 0x32e083ec dyld_stub_binder + 12

bug跟踪

从log来看,是运行时动态链接库未能找符号objc_setProperty_atomic。可是为什么会导致该符号找不到呢?属性不是OC 2.0支持的么

bug解决

最后经过在stackoverflow等网站上查找,原来是我们使用的第三方库的deployment target高于MusicHD的deployment target. 在用户设备的系统上,虽然可以安装上MusicHD, 但当运行时调用了第三方库的方法时crash。

结语

决定能否在某系统上安装app的,是app的deployment target;但app所使用的第三方库的deployment target若高于该系统, 会导致虽然能安装成功,但运行时crash, 出现objc_setProperty_atomic符号找不到的诡异bug

转载于:https://www.cnblogs.com/mindyme/p/4509998.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值