zoukankan      html  css  js  c++  java
  • 一个诡异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

  • 相关阅读:
    poj 3320 Jessica's Reading Problem
    uva 120 C
    vim使用教程-转自
    2015 俄罗斯网络赛 D. Boulevard
    HTML转义字符大全
    介绍个好点的,JAVA技术群
    JAVA学习路线
    linux常用命令大全(转)好东西要分享
    Jqprint 轻量级页面打印插件
    hadoop集群搭建
  • 原文地址:https://www.cnblogs.com/mindyme/p/4509998.html
Copyright © 2011-2022 走看看