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

coh*_*air 8 ios firebase swift firebase-crash-reporting

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

upload-sym-util.bash:351:错误:symbolFileUploadLocation:API密钥和身份验证凭据来自不同的项目.

这是我的构建脚本:

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
Run Code Online (Sandbox Code Playgroud)

我做过/检查的事情:

  1. GOOGLE_APP_IDCrashReportingKey*.json与同一项目关联.
  2. 我的GoogleService-Info*.plist文件有该API_KEY字段.
  3. 选中"仅在安装时运行脚本"框,允许我运行应用程序,但实际上并不在开发环境中运行脚本.因此崩溃会发送到Firebase,但它们不是象征性的.

我对任何想法持开放态度.谢谢!

Eri*_*ieh 8

你是正确的,没有办法覆盖GoogleService-Info.plist.但是,仍然有一种方法可以覆盖上载脚本从该文件中使用的信息.

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

    export FIREBASE_APP_ID=<GOOGLE_APP_ID>
    export FIREBASE_API_KEY=<API_KEY>
    
    "${PODS_ROOT}"/FirebaseCrash/upload-sym "ServiceAccount.json"
    
    Run Code Online (Sandbox Code Playgroud)

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

    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
Run Code Online (Sandbox Code Playgroud)


小智 7

我解决了:

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

Xcode:产品 - >清洁