xcodebuild - 设置构建目录不会生成 dSYM

Posted

技术标签:

【中文标题】xcodebuild - 设置构建目录不会生成 dSYM【英文标题】:xcodebuild - setting build dir doesn't generate dSYM 【发布时间】:2014-02-18 10:05:29 【问题描述】:

我正在通过命令行使用 xcodebuild (xcode 5) 进行存档,如下所示:

xcodebuild -project MyProject.xcodeproj -scheme MyScheme -sdk iphoneos7.0 -configuration Release archive CODE_SIGN_IDENTITY="iPhone Distribution: My ID" -archivePath archive/MyArchive.xcarchive -xcconfig Config/MyReleaseConfig.xcconfig CONFIGURATION_BUILD_DIR=$SRCROOT/build/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME

当我运行它时,我得到了我的 xcarchive 生成​​并且控制台输出似乎没问题。但是,当我浏览存档的内容时,dSYM 下没有任何内容。项目设置验证正常。如果我运行与上面相同的命令但省略CONFIGURATION_BUILD_DIR 位,我会按预期得到 dSYM。你知道是否有解决方案(即是否应该设置其他任何东西)。我想控制构建目录。

编辑:

我已经尝试从命令行显式设置(而不是在我的方案设置中):

DEBUG_INFORMATION_FORMAT="dwarf-with-dsym"

和 后处理为YES。还是不开心。

谢谢。

【问题讨论】:

【参考方案1】:

再次检查构建设置。看看 Debug Information Format,它应该有 DWARF 和 dSYM 文件

更多信息请查看OS X Man Pages xcodebuild 和Xcode Build Setting Reference

【讨论】:

构建设置很好,当 CONFIGURATION_BUILD_DIR 被删除时,我得到了 dSYM。 尝试附加这个:DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" 也许,事实上,一个dSYM文件是在.app之外的地方生成的?检查环境变量,尤其是 DWARF_DSYM_FOLDER_PATH 和 DWARF_DSYM_FILE_NAME。要将 dSYM 嵌入到应用程序包中,只需将 DWARF_DSYM_FOLDER_PATH 设置为 $(CONFIGURATION_BUILD_DIR)/$(EXECUTABLE_FOLDER_PATH) 并将 DWARF_DSYM_FILE_NAME 设置为 $(EXECUTABLE_NAME).dSYM。 设置 DWARF_DSYM_FOLDER_PATH 效果很好 :) 谢谢,非常感谢! 如果您能更明确地说明您如何将DWARF_DSYM_FOLDER_PATH 合并到您的命令中,我将不胜感激。【参考方案2】:
xcodebuild -project MyProject.xcodeproj -scheme MyScheme -sdk iphoneos7.0 -configuration Release archive CODE_SIGN_IDENTITY="iPhone Distribution: My ID" -archivePath archive/MyArchive.xcarchive -xcconfig Config/MyReleaseConfig.xcconfig CONFIGURATION_BUILD_DIR=$SRCROOT/build/$CONFIGURATION$EFFECTIVE_PLATFORM_NAME

你在 MyReleaseConfig.xcconfig 中关于 DEBUG_INFORMATION_FORMAT 的配置是什么?

【讨论】:

MyReleaseConfig.xcconfig 是 Xcode 的配置,一般是 cocoaPods 生成的,我读的时候会记录一些链接信息等

以上是关于xcodebuild - 设置构建目录不会生成 dSYM的主要内容,如果未能解决你的问题,请参考以下文章

使用 xcodebuild 指定单个目标构建设置

iOS Xcodebuild

Xcodebuild 在 cordova ios 项目中停止

如何将旧版构建系统与 Xcode 10 的“xcodebuild”一起使用?

xcodebuild 不会编译项目,除非它至少使用 Xcode 打开一次用于 cocoapods 集成项目

Jenkins 中的 XcodeBuild 框架出现错误