最近在尝试使用 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$
网友评论
我的Xcode中并没有Debug Information Format这一项,只有Enable Bitcode这个,怎么增加 Debug Information Format呢