崩溃符号上传的Xcode错误:symbolFileUploadLocation:调用者没有权限

时间:2016-05-20 02:27:14

标签: ios firebase firebase-crash-reporting

我按照此处的指南进行操作:https://firebase.google.com/docs/crash/ios

但是当我完成并尝试构建时,我收到以下错误: /Users/--/Desktop/Test2/Pods/FirebaseCrash/upload-sym-util.bash:349:错误:symbolFileUploadLocation:来电者没有权限

有人有什么想法吗?我搜索了谷歌,堆栈溢出和谷歌群组,并没有看到其他人说明我可以找到这个问题。

运行10.11.5,Xcode 7.3.1

当我打开错误的来源时,它会将你带到upload-sym-util.bash,第349行,这是该区域的片段:

    if [[ "$ERRMSG" ]]; then
        if ((VERBOSE)); then
            xcnote "Server response:"
            plutil -p "$FILE_UPLOAD_LOCATION_PLIST" >&2
        fi
        xcerror "symbolFileUploadLocation: $ERRMSG"
        xcnote "symbolFileUploadLocation: Failed to get upload location."
        return 1
    fi

7 个答案:

答案 0 :(得分:4)

文档中有错误:步骤被省略。 “符号上载服务帐户”的角色必须具有编辑者权限才能更新符号数据库。应在步骤1和2之间出现以下(“步骤1½”)。

  

确保服务帐户具有写入权限:

     
      
  1. 权限页面上,从左侧菜单中选择 IAM
  2.   
  3. 在搜索框中输入“符号上传”。
  4.   
  5. “符号上传服务帐户”必须至少具有“编辑”角色。
  6.   

对此感到抱歉。

答案 1 :(得分:4)

您需要先https://console.cloud.google.com/

接受ToS

然后为您为上传符号而创建的服务帐户授予编辑角色,如下所述:https://firebase.google.com/docs/crash/ios#set_up_crash_reporting

答案 2 :(得分:4)

让我添加答案,将json文件重命名为ServiceAccount.json,将其放入xcode的pods文件夹中,并将google的建议路径替换为此路径,优点是如果将项目转移给其他人,项目将是可移植的。 ..

# Replace the /Path/To/ServiceAccount.json with the path to the key you just downloaded
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${PODS_ROOT}"/ServiceAccount.json

答案 3 :(得分:2)

  1. 确保您为“符号上传服务帐户”提供项目>编辑角色创建服务帐户时。服务帐户不会显示在权限>中IAM,如果你忽略了分配角色。
  2. 当Xcode运行脚本执行时,它会在$HOME/Library/Preferences/目录中创建两个文件:com.google.SymbolUpload.plistcom.google.SymbolUploadToken.plist。如果您创建新的服务帐户(或私钥),则需要删除这两个文件以清除旧的服务帐户信息。 Firebase文档强调了这一点,但值得重复。
  3. enter image description here

答案 4 :(得分:0)

如果您从服务帐户屏幕添加它,则为我工作。点击权限,然后将其添加为编辑器。

enter image description here

答案 5 :(得分:0)

对于那些对指南第二步感到困惑的人(在上面的@Robert回答中提到),您需要{@ 1}} firebase应用程序才能更改服务帐户。

答案 6 :(得分:0)

当我尝试在项目中使用第二个Firebase数据库时,我遇到了类似的错误。但是,我忘记了我将崩溃分析代码添加到特定于第一个数据库的运行脚本中。一旦我在Build Phases中删除了Run Script代码,符号上传文件的问题就消失了。