使用 Swift 包管理器的 Firebase Crashlytics - 由于路径错误而崩溃

问题描述 投票:0回答:2

我已经通过 Swift Package Manager 为我的 iOS 项目安装了 Firebase,包括 Crashlytics。我已遵循这些说明并添加了构建阶段所需的脚本: https://firebase.google.com/docs/crashlytics/get-started?platform=ios

所以执行路径为: “${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run”

启动时(iPhone 模拟器),应用程序崩溃并显示以下错误消息:

/Users/[我的项目路径]/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run:没有这样的文件或目录命令 PhaseScriptExecution 失败,退出代码非零

我不明白为什么它试图在我的 Xcode 项目文件夹中查找 crashlytics 脚本,而不是在运行时在派生数据文件夹中查找。

我检查了派生数据文件夹并按照路径进行操作。事实上,Crashlytics 运行脚本位于预期路径。

感谢您提供正确方向的任何提示

ios firebase crashlytics
2个回答
1
投票

与此同时,我发现构建文件夹的路径是在 Xcode 首选项中全局设置的。由于某种原因,我不记得了,我的构建文件夹始终位于我在 Xcode 中处理过的所有项目的项目文件夹中......我确信这一点,因为我总是将构建文件夹添加到 .gitignore。 要将构建文件夹更改为项目的派生数据文件夹的子文件夹,请转到: Xcode -> Preferences -> Locations -> Advanced 并选择第一个选项。 Firebase 假定默认选择此选项(也许是这样,而我是个怪人......)。


0
投票

我拔出了头发试图解决这个问题并想出了

“${SDK_STAT_CACHE_DIR}”/*/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

SDK_STAT_CACHE_DIR 是您的 DerivedData 文件夹。 通配符必须位于引号之外,以便文件系统能够解析它。这是您的特定项目,具有难看的生成名称。奇怪的是我找不到它的符号,但它被埋在很多大的路径变量中。

现在,如果您有两个具有相同内容的项目,则不确定您会得到哪个:)

© www.soinside.com 2019 - 2024. All rights reserved.