记录一次 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$ 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容