【问题标题】:cocoapods [!] Error installing Crashlyticscocoapods [!] 安装 Crashlytics 时出错
【发布时间】:2016-01-07 20:33:34
【问题描述】:

Crashlytics 作为 cocoapod 正在破坏我们的 CI 系统。基本上我们有一个 Rakefile,它运行一些任务来更新 pod、构建我们的应用程序和运行测试等。但是,我们最近切换到 Fabric 和 Crashlytics 作为 cocoapods。现在我们的自动化构建在 pod 更新阶段失败并出现以下错误:

[!] Error installing Crashlytics
[!] /usr/bin/curl -f -L -o /var/folders/fx/hfsy48h13839_jm5wmkp5mx00000gn/T/d20151009-74266-1p34ehf/file.zip https://kit-downloads.fabric.io/ios/com.twitter.crashlytics.ios/3.3.4/com.twitter.crashlytics.ios-default.zip --create-dirs

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed


  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: kit-downloads.fabric.io
Update all pods
Analyzing dependencies 

由于 Crashlytics 安装失败,因此未生成工作区。 我认为出现了两个问题: 1. Crashlytics pod 在脚本文件中运行该命令时尝试下载并写入它无权写入的系统文件(我们不想以 sudos 运行脚本) 2. 这个端点实际上有点不稳定。

如果我在终端中手动运行该 curl 命令,它大部分时间都会成功并下载文件。但是,有时该 curl 命令实际上无法解析主机。但是,我还有两台虚拟机可以成功运行 curl 命令,而无需执行 sudo usr/bin/curl/... 但是我们的一个虚拟机(它是另一个虚拟机的精确克隆)确实需要 sudo usr/bin/curl。 .. 获得对该文件夹的写入权限。

如果我在 Rakefile 中运行该 curl 命令,我会得到: $耙 您无权创建 /var/folders/fx。

同样,我认为问题在于尝试从 Rakefile 进行 pod 更新会导致文件写入权限问题,因为 Crashlytics 尝试将文件下载到系统 /var/folder 是不允许的。此外,该端点也可能不稳定并因无法解析主机而失败。

所以基本上解决方法是在我们的 CI 机器上的终端中手动运行该 curl 命令,以便下载和安装。现在,只要我们使用相同版本的 CRASHLYTICS,任何未来的 pod 更新都有效。所以现在,我们冻结了 3.3.4 上的 Crashlytics 安装。

任何人都遇到过类似的问题,对他们认为正在发生的事情有什么建议,或者对如何解决这个问题有更好的建议?

【问题讨论】:

  • 原来 curl 命令经常更改,可能与每个 pod 更新一样频繁。我们能找到的唯一解决方法是为所有用户添加对 /var/folders/fx 的读/写访问权限,这远非理想。 sudo chmod -R a+rw /var/folders/fx/
  • 作为更新,我们最终放弃了使用 Fabric 和 Crashlytics cocoapods,只是手动导入了框架,因为我们继续遇到与原始帖子相似的随机 CC 更新失败。跨度>
  • 你是如何解决这个问题的,我在 cocoapod 网站上看到他们在 2016 年 9 月更新了 Crashlytics cocoapods
  • 请告诉我您是如何手动导入框架的
  • 当然。在使用 Fabric 和 Crashlytics 的项目中成功更新 Pod 后(您始终可以制作一次性项目),您可以在项目的 Pods 文件夹中找到框架文件。把它们复制出来。然后手动将这些框架导入到您的其他项目中。顺便说一句,在我们放弃在 CI 系统中使用虚拟机后,一切都开始正常了。

标签: ios continuous-integration cocoapods crashlytics twitter-fabric


【解决方案1】:

我的解决方案是删除存储库 (rm -rf Pods) 中的 Pods 目录。这样一来,所有的 pod 都被移除了,甚至 Crashlytics 也是如此。之后,pod install 可以成功运行。我现在已经安装了 Crashlytics 3.8.6。

【讨论】:

  • 非常感谢!你拯救了我的一天/
【解决方案2】:

您使用的是 VPN 吗?

我发现fabric.io 被NordVPN 阻止,必须断开它才能安装pod。

事实上,特别是 NordVPN 的“阻止广告和恶意软件”开关不允许这样做。如果您暂时将其关闭,它将正常工作。

【讨论】:

    【解决方案3】:

    参考这个:here i found solution

    解决步骤:

    • echo insecure >> ~/.curlrc
    • pod install

    【讨论】:

      猜你喜欢
      • 2013-11-13
      • 2014-06-20
      • 2020-12-09
      • 1970-01-01
      • 2017-02-22
      • 2020-07-15
      • 2020-06-14
      相关资源
      最近更新 更多