美文网首页iOS 持续化集成JC专题首页投稿(暂停使用,暂停投稿)
记录一次 xcodebuild 无法生成 dSYM 文件 的解决

记录一次 xcodebuild 无法生成 dSYM 文件 的解决

作者: 酷酷的哀殿 | 来源:发表于2016-04-25 23:04 被阅读2447次

    最近在尝试使用 Jenkins + fir +BugHD 进行自动构建,但是符号表一直无法上传到 BugHD。于是开始寻找解决的办法。本文主要记录自己的解决步骤,如果发现本文有误,还请读者指正。

    查看fir如何进行编译

    我是通过下面的命令进行编译+上传。该命令的说明文档可以查看build_ipa.md

    fir build_ipa -w -S *** -p -T *** -M true -P ***

    通过源码build_ipa.rb可以看到
    fir 通过调用xcodebuild build -sdk iphoneos进行编译。

    查看是否由xcodebuild命令导致无法生成符号表

    第一步,先通过直接执行 xcodebuild build -sdk iphoneos -workspace '/path/to/***.xcworkspace' -scheme '***' TARGET_BUILD_DIR='/var/folders/yr/***/T/***' CONFIGURATION_BUILD_DIR='/var/folders/yr/***/T/***' DWARF_DSYM_FOLDER_PATH='/***/fir_build' 2>&1 命令进行编译,发现也无法生成 dSYM 文件。
    所以,猜测是 xcodebuild 命令出现了问题。

    通过修改变量解决问题解

    通过添加 DEBUG_INFORMATION_FORMAT='dwarf-with-dsym'变量,进行编译,发现可以正常的生成dSYM文件。问题得到解决。

    再次探究,Builld Settings

    通过 xcodebuild -showBuildSettings,可以发现,即使不添加DEBUG_INFORMATION_FORMAT='dwarf-with-dsym'变量,Builld Settings 中的 DEBUG_INFORMATION_FORMAT的值依然为dwarf-with-dsym。所以,猜测 xcodebuild命令并没有真正的使用xcodebuild -showBuildSettings打印出来的参数。

    通过查看项目的配置文件,我们可以发现只有 Release 模式配置了 dwarf-with-dsym 。所以猜测 xcodebuild 错误的使用了 Debug 模式中 DEBUG_INFORMATION_FORMAT的值 dwarf 而没有使用 Release模式中的值。

    以上测试的环境均为:

    localhost:~ L$ xcodebuild -version
    Xcode 7.3
    Build version 7D175
    localhost:~ L$ 

    相关文章

      网友评论

      • HEYRIX:Hi 想了解下。你编译的是针对 iOS 7以上,static framework吗?
        HEYRIX:@酷酷的哀殿 嗯。实践表明,只有IPA可以生成dSYM文件。
        酷酷的哀殿:之前是编译可执行文件,没有编译静态库
        HEYRIX:我编译lib为static的一直无法生成dSYM文件。
      • 58fe5465d15f:这个问题,我找了一个早上,终于找到原因了
      • CodeLuck:你好,请问XCode -> Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File
        我的Xcode中并没有Debug Information Format这一项,只有Enable Bitcode这个,怎么增加 Debug Information Format呢
        CodeLuck:@酷酷的哀殿 谢谢,找到了
        酷酷的哀殿:@王大仙是我 搜索框左侧有个显示所有配置的选项 ALL

      本文标题:记录一次 xcodebuild 无法生成 dSYM 文件 的解决

      本文链接:https://www.haomeiwen.com/subject/uwjxrttx.html