FirebaseCrashlytics 自动上传符号问题

Ale*_*xZd 11 xcode ios crashlytics firebase-crash-reporting google-fabric

我正在尝试在我的 iOS 应用程序中实施新的 FirebaseCrashlytics,但遇到了一些问题,有些事情根本不清楚。

根据第 3 步中的升级文档,我必须添加以下运行脚本:

${PODS_ROOT}/FirebaseCrashlytics/run
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
Run Code Online (Sandbox Code Playgroud)

所以,就我而言,它是:

"${PODS_ROOT}/FirebaseCrashlytics/run"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols"
Run Code Online (Sandbox Code Playgroud)

但编译失败,因为:

Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Validation succeeded. Exiting because upload-symbols was run in validation mode
[31merror: No Google App ID or Google Services file provided[0m
Command PhaseScriptExecution failed with a nonzero exit code
Run Code Online (Sandbox Code Playgroud)

如果我删除upload-symbols行它工作正常,我会在仪表板中崩溃,但据我所知这upload-symbols必须上传dSYM应用程序用户的文件,所以我不担心这个。意味着我仍然需要它......

所以我试图替换它们:

"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols"
"${PODS_ROOT}/FirebaseCrashlytics/run" 
Run Code Online (Sandbox Code Playgroud)

它开始编译。

我发生了一次强制崩溃并在仪表板中得到了它,但我也得到了: 在此处输入图片说明

这是否意味着它不起作用,它必须在 之后run,所以我继续并完成了:

"${PODS_ROOT}/FirebaseCrashlytics/run"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}"
Run Code Online (Sandbox Code Playgroud)

现在我可以编译了,但dSYM在 Dashboard 中仍然是可选的。

现在我完全迷失了,如果有人能澄清它会很棒。

PS:我可以upload-symbols从终端使用,但这是一种手动工作。

还有几个问题作为讨论:

  1. 为什么在升级文档中它是runupload脚本,但仅在入门中run
  2. 升级文档中,它是确切的路径,${PODS_ROOT}/FirebaseCrashlytics/run但不完全是因为/path/to/pods/directory/FirebaseCrashlytics/upload-symbols它们是同一个文件夹,为什么不使用相同的?
  3. 入门文档中有输入文件,其中之一是$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)为什么要使用(,而不是{?
  4. 这个路径$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)Info.plist文件路径,而不是GoogleService-Info.plist他们为什么给它?)