【问题标题】:Xcode Error with Crash Symbol Upload: symbolFileUploadLocation: The caller does not have permissionXcode Error with Crash Symbol Upload: symbolFileUploadLocation: The caller does not have permission
【发布时间】:2016-05-20 02:27:13
【问题描述】:

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

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

有人有什么想法吗?我已经在 google、stackoverflow 和 google groups 上进行了搜索,但没有看到其他人说明我能找到的这个问题。

运行 10.11.5,Xcode 7.3.1

当我打开错误的源代码时,它会带你到upload-sym-util.bash,第349行,这里是那个区域的sn-p:

    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

【问题讨论】:

  • 您是否将 ServiceAccount.json 添加到您的项目中?
  • 是的,它在项目和文件目录中。我回应了该声明并验证它正在解析到正确的路径。当我遇到错误时,它会弹出 upload-sum-util.bash ln 349,我在帖子中添加了一个 sn-p
  • 有同样的问题。
  • 我在“运行脚本”设置中检查了“仅在安装时运行脚本”,它似乎可以工作。不确定这是否是正确的解决方案。
  • 似乎这会阻止脚本一起运行。所以不是修复。

标签: ios firebase firebase-crash-reporting


【解决方案1】:

您需要先在https://console.cloud.google.com/接受服务条款

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

【讨论】:

  • 这成功了,它解决了这个错误和其他错误。现在一切都很好。非常感谢。
  • @user1122778 我是合作者,不是 google.firebase 项目的所有者。但是所有者已经接受了 ToS(不是我,没有信用卡),但我仍然遇到同样的错误。请有任何建议
  • 确保您的运行脚本已更新为正确的应用 ID 和 .json 文件的路径
【解决方案2】:

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

确保服务帐号有写权限:

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

很抱歉让您感到困惑。

【讨论】:

  • 不幸的是,这也不起作用。如果我搜索它,什么都不会出现。如果我去添加一个新成员,我可以通过这种方式找到它,但是如果我尝试授予它编辑器角色,那么我会收到一个错误:服务器错误我们这边有问题。请再试一次。如果问题仍然存在,请使用下面的“发送反馈”链接告诉我们。谢谢!追踪号码:5827304947654979566
  • 我通过从服务帐户权限链接添加它来使其工作。但是现在在构建应用程序时,我得到了一个不同的错误。 “无法从服务器检索身份验证令牌。”
  • 仍然无法让它工作。我什至尝试使用一个已经设置的帐户并为计算服务用户创建了一个密钥并尝试了(已经设置为编辑器)并且仍然出现相同的错误。我感觉服务用户出了问题,但我不确定它是在我的项目中还是在 Firebase 服务本身中。我也尝试了新项目,但仍然存在同样的问题。
  • 您在搜索“符号上传”时没有看到任何内容,这令人不安。服务帐号是否存在并且至少有一个与之关联的密钥?
  • 我有同样的问题,罗伯特。搜索“符号上传”没有结果。我可以通过小写电子邮件查找字符串找到它。但是,在获得它并尝试将其设置为编辑器的权限后,Firebase 控制台上会弹出一个错误,提示您有问题。
【解决方案3】:

让我补充一下答案,将 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

【讨论】:

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

    【讨论】:

    • 这应该是公认的答案,因为它更详细和完整......谢谢@Jon
    • 试过了,没用 - 仍然得到:./Pods/FirebaseCrash/upload-sym-util.bash:351: error: symbolFileUploadLocation: Requests from this ios client application io.fabric.sdk.ios are blocked. ./Pods/FirebaseCrash/upload-sym-util.bash:352: note: symbolFileUploadLocation: Failed to get upload location.
    【解决方案5】:

    如果您从 服务帐户 屏幕添加它,对我有用。点击权限并将其添加为编辑器。

    【讨论】:

    • 那还是不行。我认为这里的权限是针对服务帐户本身的,而不是从对话框的声音中触发项目。无论如何我尝试了它并没有改变任何东西,同样的错误
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

      【讨论】:

        猜你喜欢
        • 2021-09-07
        • 2020-10-28
        • 2021-12-29
        • 2022-12-09
        • 2022-12-28
        • 1970-01-01
        • 2023-03-16
        • 2022-10-31
        • 1970-01-01
        相关资源
        最近更新 更多