美文网首页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