• 一个诡异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

  • 相关阅读:
    poj2975(nim游戏取法)
    hdu5785(极角排序求所有锐角钝角个数)
    hdu5787(数位dp)
    划分树模板
    Struts配置文件
    Struts2 调用非execute方法
    Struts简单的实例
    Struts简介
    linux yum 命令
    Linux vi/vim
  • 原文地址:https://www.cnblogs.com/mindyme/p/4509998.html
Copyright © 2020-2023  润新知