iOS Firebase 崩溃报告 - 错误 运行 构建脚本

iOS Firebase Crash Reporting - Error running build script

运行使用脚本上传符号文件时出现以下错误(每次我尝试构建我的项目时):

upload-sym-util.bash:351: error: symbolFileUploadLocation: The API Key and the authentication credential are from different projects.

这是我的构建脚本:

if [ "$CONFIGURATION" == "Debug" ]; then
    GOOGLE_APP_ID=<app-id>
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json
else
    GOOGLE_APP_ID=<app-id>
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi

我拥有的东西 done/checked:

  1. GOOGLE_APP_IDCrashReportingKey*.json 与同一个项目关联。
  2. 我的 GoogleService-Info*.plist 文件有 API_KEY 字段。
  3. 选中 "Run script only when installing" 框,这允许我 运行 应用程序,但实际上 运行 开发环境中的脚本。所以崩溃被发送到 Firebase,但它们没有被符号化。

我愿意接受任何想法。谢谢!

问题出在 GoogleService-Info.plist 文件的名称上。

在我的项目中,我有以下文件:

  • GoogleService-Info.plist
  • GoogleService-Info-Dev.plist
  • CrashReportingKey.json
  • CrashReportingKey-Dev.json

Firebase 崩溃报告上传脚本始终准确查找名为 GoogleService-Info.plist 的文件。因为它找到了一个,并且我告诉脚本使用 CrashReportingKey-Dev.json,它抛出了项目不匹配错误。

根据我的研究,无法告诉 Firebase 崩溃报告上传脚本您想使用哪个 *Info.plist 文件,因此我决定只为发布版本上传符号文件,这很好。

我的 运行 脚本现在如下所示,并且可以正常工作。

if [ "$CONFIGURATION" == "Release" ]; then
    GOOGLE_APP_ID=<app-id>
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi

然后我从我的项目中删除了 CrashReportingKey-Dev.json

您说得对,无法覆盖 GoogleService-Info.plist。然而,仍然有一种方法可以覆盖上传脚本使用的来自该文件的信息片段。

  1. 打开.json.
  2. 对应的GoogleService-Info.plist
  3. 搜索 GOOGLE_APP_ID 和 API_KEY。
  4. 像这样调整构建脚本:

    export FIREBASE_APP_ID=<GOOGLE_APP_ID>
    export FIREBASE_API_KEY=<API_KEY>
    
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "ServiceAccount.json"
    

在您的情况下,您的最终脚本应如下所示:

    if [ "$CONFIGURATION" == "Debug" ]; then
        export FIREBASE_APP_ID=<app-id>
        export FIREBASE_API_KEY=<API_KEY for dev>
        "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json
    else
        export FIREBASE_APP_ID=<app-id>
        export FIREBASE_API_KEY=<API_KEY for release>
        "${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
    fi

我解决了:

在终端中: rm $HOME/Library/Preferences/com.google.SymbolUpload*

Xcode : 产品 -> 清洁

就我而言,我必须通过 运行 此命令重置我的 OAuth 凭据: rm $HOME/Library/Preferences/com.google.SymbolUpload*

如此处所述:https://firebase.google.com/docs/crash/ios

现在对我来说很好用!

我今天遇到这个错误。 我找到了这个配置,只需将这个 GOOGLE_APP_ID 替换为你的 GoogleService 中的值-Info.plist

在此处查看图片,抱歉,我没有 post 图片的权限 Replace GOOGLE_APP_ID