Firebase 碰撞分析 | Swift 包管理器 (SPM) 运行 脚本?

Firebase Crashlytics | Swift Package Manager (SPM) Run Script?

我想使用 Swift 包管理器将 Crashlytics 添加到我的应用程序。

现在,由于安装 Firebase 的通常方法是通过 CocoaPods,因此 tutorial 如何正确设置 Crashlytics 也针对 [=15] 进行了调整=].

换句话说 - 我们应该从教程中复制的 运行 脚本与 SPM 不兼容,正如您在此处看到的那样:

${PODS_ROOT}/FirebaseCrashlytics/run

那么如何使用 SPM 找到 Crashlytics 的文件位置以获得正确的 运行 脚本?

谢谢!

原来它在 DerivedData 文件夹中:

~/Library/Developer/Xcode/DerivedData/YOURAPP-.../SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

为方便起见,您可以使用构建变量来概括文件夹路径:

${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

最后,您的 运行 脚本应如下所示:

如果使用非默认名称的 firebase 配置文件,另一件非常重要的事情。 需要这个标志来表示它:

-gsp ${PROJECT_DIR}/PATH-TO-CONFIG/GoogleService-Info-Dev.plist

因此最终的脚本应该是这样的

${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run -gsp ${PROJECT_DIR}/PATH-TO-CONFIG/GoogleService-Info-Dev.plist

其中PATH-TO-CONFIG是项目中firebase配置文件的路径。

感谢您的建议。我无法完成这项工作。我遇到崩溃和以下错误消息:

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

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

在 Xcode 的菜单栏中 selecting FileAdd Packages… 添加一个包。

使用存储库的 URL:

搜索 Firebase Apple SDK
https://github.com/firebase/firebase-ios-sdk.git

接下来,将 Dependency Rule 设置为 Up to Next Major Version 并指定 8.10.0 作为下限。

然后,select 添加包。

选择您要在应用中安装的 Firebase 产品。

如果您安装了 FirebaseAnalytics,请将 -ObjC 选项添加到 Build Settings 选项卡中的 Other Linker Flags

这对我有用,但我必须更改项目设置。

"${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"