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

时间:2017-01-19 01:41:42

标签: ios swift firebase 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

我做过/检查的事情:

  1. GOOGLE_APP_IDCrashReportingKey*.json与同一项目相关联。
  2. 我的GoogleService-Info*.plist个文件包含API_KEY字段。
  3. 选中“仅在安装时运行脚本”框,允许我运行应用程序,但实际上并不在开发环境中运行脚本。因此崩溃会发送到Firebase,但它们不是象征性的。
  4. 我对任何想法持开放态度。谢谢!

5 个答案:

答案 0 :(得分:8)

您是正确的,无法覆盖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"
    
  5. 在您的情况下,您的最终脚本应如下所示:

        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
    

答案 1 :(得分:7)

我解决了:

终端

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

Xcode: 产品 - &gt;清洁

答案 2 :(得分:4)

问题在于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

答案 3 :(得分:1)

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

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

现在适合我!

答案 4 :(得分:0)

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

在此处查看图片,抱歉,我无权发布图片 Replace GOOGLE_APP_ID