【问题标题】:Xcode build never finishes when using Firebase upload-symbols in Build Phase Run Script在构建阶段运行脚本中使用 Firebase 上传符号时,Xcode 构建永远不会完成
【发布时间】:2020-09-13 04:54:19
【问题描述】:

我在我的应用中启用了 Firebase Analytics 和 Crashlytics。根据Firebase website,我在 Xcode 的构建阶段下的运行脚本中实现了以下内容:

find dSYM_directory -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /path/to/GoogleService-Info.plist -p platform \{\}

我从 Xcode 收到以下输出:

Running upload-symbols in Build Phase mode
Validating build environment for Crashlytics...
Validation succeeded. Exiting because upload-symbols was run in validation mode

Console.app 中所报告的,据称该脚本成功完成了它的工作。请参阅附加的屏幕截图以获取输出。

在 Xcode 中收到上述消息后,构建进度不会进一步进行。它卡在Building 2069 of 2081 tasks。在分发了新的应用程序版本后,我可以手动成功运行此脚本。但 Google 为 Firebase 提供此脚本的全部目的是自动化整个过程。

有没有人成功地在他们的运行脚本中实现了上传符号脚本?任何想法为什么我的 Build 会停止并且永远不会完成?

【问题讨论】:

  • 你的输入文件路径是什么样的?

标签: ios xcode firebase crashlytics run-script


【解决方案1】:

我发现了另一个可靠的选项。将您的运行脚本修改为以下内容:${PODS_ROOT}/FirebaseCrashlytics/upload-symbols -bp 就是这样,只需一行。我们通过从终端运行 upload-symbols --help 发现了这一点。其中关于 -bp, --build-phase 命令行参数的说明如下。 “构建阶段模式旨在作为 Xcode 运行脚本构建阶段运行。它从构建环境变量中找到 dSYM 和平台,而不是让调用者将它们传入。使用此标志, 和 --platform 可以省略。”

您还可以添加 -d 标志,该标志记录大量但似乎非常相关的信息。在这个过程中通常很难找到。

【讨论】:

    【解决方案2】:

    我意识到我需要为运行脚本添加一个输入文件。请参阅下面的实现。

    【讨论】:

    • 我有一个和你类似的问题,你改变了我的运行脚本看起来像 "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    • 如果您将运行脚本设置为与我在答案中的完全相同,然后确保将您所拥有的内容添加到输入文件路径
    • 你在 fireBase 上遇到崩溃了吗?添加 runscript 应用程序后存档,但我没有看到 firebase 崩溃,并且 dsym 文件仍然没有上传
    • 我一开始也有同样的问题。需要强制崩溃,看这篇文章firebase.google.com/docs/crashlytics/force-a-crash
    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 2020-09-04
    • 2019-04-11
    • 2010-11-23
    • 2015-01-18
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多