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

最近在尝试使用 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$ 

你可能感兴趣的:(记录一次 xcodebuild 无法生成 dSYM 文件 的解决步骤)