Swift Package Manager集成Firebase后能否自动上传dSYM?附异常脚本求助
SPM集成Firebase实现dSYM自动上传的解决方案
核心结论
- 完全可以通过SPM集成Firebase来实现dSYM自动上传,没必要非得用Cocoapods或Carthage。
你的脚本问题分析与修复
你的上传脚本失效主要是两个问题:
run命令的参数被换行拆分,导致参数传递不完整,系统无法正确识别参数关联关系- 路径引用的写法需要调整,避免解析错误
修正后的可用脚本
googleServiceFileName="GoogleService-Info" echo "Symbols Directory" echo "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}" # 用反斜杠换行保持可读性,确保所有参数属于同一个run命令 "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run" \ -gsp "${PROJECT_DIR}/project/GoogleServicesInfo/${googleServiceFileName}.plist" \ -p ios \ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
额外注意事项
- 先验证
GoogleService-Info.plist的路径是否正确:可以在脚本里加一行ls "${PROJECT_DIR}/project/GoogleServicesInfo/${googleServiceFileName}.plist",如果执行时提示文件不存在,就需要调整路径 - 确保Firebase SDK是最新版本,旧版SPM集成可能存在路径适配问题
- 在Xcode的Build Phases里添加脚本时,取消勾选「Run script only when installing」,这样每次构建(包括归档)都会执行上传
- 可以单独打印
${DWARF_DSYM_FOLDER_PATH}和${DWARF_DSYM_FILE_NAME},确认dSYM文件确实存在于这个路径下
内容的提问来源于stack exchange,提问作者Taimur Ajmal
相关产品推荐
相关产品推荐

