mob*_*kie 37 ios firebase crashlytics swift
我正在尝试按照Firebase Docs上的说明上传缺少的必需 dSYM。但是我坚持运行上传程序脚本。
在我的构建阶段,我有
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -gsp${SRCROOT}/GoogleService-Info.plist -p ios ${SRCROOT}/appDsyms"
当我尝试使用此构建 iOS 应用程序时,出现错误:
第 4 行:/path/to/Pods/FirebaseCrashlytics/upload-symbols -gsp/path/to/GoogleService-Info.plist -p ios /path/to/appDsyms:没有这样的文件或目录
命令 PhaseScriptExecution 失败,退出代码非零
当我尝试从终端运行脚本时,出现错误:
未提供 Google App ID 或 Google 服务文件
我已经验证我有一个 Google 服务文件,并且能够使用依赖它的其他 firebase 服务运行我的项目。我曾经能够将 Dysm 文件直接上传到 Firebase 控制台,但在 3 月 1 日发生了变化。
此命令应该作为 XCode 脚本运行还是作为终端命令运行?而且,更重要的是,有人知道如何解决这个问题吗?
Vis*_*ane 56
截至 2020 年 5 月:
后Fabrics关机,许多开发商面临着这样的问题,因为织物自动创建脚本上传dSYM的文件Xcode,我们从来没有重视起来。
现在作为Fabric替换为FirebaseCrashlytics,为了实现这种自动机制,您可以创建一个新的运行脚本并将此脚本粘贴到那里:
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
此脚本将获取 dSYM 文件并将它们上传到 Firebase 服务器,以便您可以看到崩溃。
对于多个方案:
如果您的项目有多个方案,您可以通过更改 Google Plist 文件的路径来简单地创建多个此类脚本。
注意:您也可以dSYM使用upload-symbols工具[Check here]手动上传文件,但最好尽可能自动执行此过程。
编辑:2020 年 7 月:
当您在Crashlytics仪表板中看到丢失的崩溃 dSYM 文件时,您可以在dSYM提交构建文件以供 Apple 审查或通过 Test Flight 进行测试后立即上传构建文件,而不是收到该文件的电子邮件。
显示缺失dSYM是因为bitCode启用时,App Store Connect处理二进制文件上传并生成新的 dSYM 文件。
您可以从该文件的dSYMActivity的部分App Store Connect。
Xys*_*Xys 21
2020 FirebaseCrashlytics 解决方案
您有两种解决方案:
1)从命令行
转到您的项目文件夹并运行:
./Pods/FirebaseCrashlytics/upload-symbols -gsp GoogleService-Info.plist -p ios <path_to_your_dsyms_zip>
您可以在 Xcode 管理器中获取 dsym > 右键单击存档 > 在 Finder 中显示 - > 显示内容 - > 转到 dsymm 文件夹并对其进行压缩
2) 从 Xcode 构建阶段
如此处(Firebase 文档)所述,您可以使用以下内容在 Xcode 中添加运行脚本阶段:
"${PODS_ROOT}/FirebaseCrashlytics/run"
您还必须在运行脚本下添加这两个输入文件:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
和
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
Key*_*gar 19
经过几个小时的努力,这个问题终于用这种方法解决了:
在终端中使用此命令: /path/to/pods/directory/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
重要的是,/path/to/pods/directory您不应在应用程序文件夹中输入 pods 文件夹的路径,而不必/path/to输入项目文件夹中的 GoogleService-Info.plist 路径。最后一个是,而不是/path/to/dSYMs您应该输入格式为.xcarchive.
要找到.xcarchive路径,您应该首先归档您的应用程序,然后转到 XCode -> Organizer 并选择您的构建,然后右键单击它并选择“在查找器中显示”,然后右键单击您的.xcarchive文件并选择“显示包内容” . 就是这样,您可以复制此路径并粘贴它而不是/path/to/dSYMs然后按 Enter 开始上传到 Firebase Crashlytics。
查看此链接了解更多信息: Firebase Docs
小智 12
在为 Crashlytics 实施 FirebaseCrashlytics(目前处于测试阶段)时
从添加新的运行脚本Build Phases并添加以下内容:
"${PODS_ROOT}/FirebaseCrashlytics/run"
在Input Files部分添加  
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
和
$(SRCROOT)/path to/GoogleService-Info.plist
如果仍然dSYM丢失错误,请尝试从终端运行
/path/to/pods/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs
Forpath to FirebaseCrashlytics并GoogleService-Info.plist从实际位置拖放 For dSYMs 路径将是${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} 
要获得该命令,请使用您的项目 .xcodeproj 并定位xcodebuild -project YourProject.xcodeproj -target YourTarget -showBuildSettings
并替换您的特定路径
实施 Crashlytics 时请注意以下事项
1. 在发布模式下运行应用程序
2. 在测试断开设备与 mac 的连接时
3. 设置正确GoogleService-Info.plist
4. 如果您重命名它,请确保在需要时设置正确的文件名。
相信我,我花了一天时间但没有任何效果,
令人惊讶的是,很少有解决方案适用于我同事的几个项目,但我使用的是 Big Sur 和 Xcode 12.2,但对我来说没有任何作用。
尝试1:firebase文档中提到的每个步骤。
尝试2:尝试通过传递从终端上传符号path_to_pod_firebasecrshlytics/uploadsybol -gsp path_to/GoogleService-Info.plist -p ios path_to/dSYMs
但是,运气不佳,
以下技巧对我有用,
第 1 步:确保您使用的是最新的 firebase crashlytics 版本,提供项目路径并启动 cmdpod update
我使用的是 Firebase Crashlytics 版本 4.0.0-beta.1,但在 pod 更新后它是 8.2.0
第 2 步:进入构建阶段,在下面添加一个运行脚本来编译捆绑资源"${PODS_ROOT}/FirebaseCrashlytics/run"
第3步:添加DYSM脚本,"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/your_path/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
第四步:构建项目;
第 5 步:运行项目并停止或断开与故事板的连接
第6步:进行崩溃2-3次并等待2-5分钟。
干杯,一切就绪!
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/ additional_folder /GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
我在附加文件夹中替换了我的 GoogleService-Info.plist 并在 shell 脚本中进行了目录更改。可能你也应该这样做
对于终端命令,您最好在终端中拖放必要的文件,然后复制选定的路径
/path_to_pods/FirebaseCrashlytics/upload-symbols -gsp /path_to_google_service/GoogleService-Info.plist -p iOS /path_to_dSYMs
| 归档时间: | 
 | 
| 查看次数: | 21035 次 | 
| 最近记录: |