首页 > 解决方案 > 在构建阶段运行脚本中使用 Firebase 上传符号时,Xcode 构建永远不会完成

问题描述

我在我的应用中启用了 Firebase Analytics 和 Crashlytics。根据Firebase 网站,我在 Xcode 的 Build Phases 下的 Run Script 中实现了以下内容:

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. 请参阅附加的屏幕截图以获取输出。 上传符号脚本的 Console.app 输出

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

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

标签: iosxcodefirebasecrashlyticsrun-script

解决方案


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

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

在此处输入图像描述


推荐阅读