Cocoapods - 安装 Mapbox-iOS-SDK 出错

20
我想使用Cocoapods安装最新版本的Mapbox。 我配置了.netrc文件:
machine api.mapbox.com 
login mapbox
password <MY_SECRET_TOKEN>

但是当我执行 pod install 命令时,出现了以下错误:
[!] Error installing Mapbox-iOS-SDK
[!] /usr/bin/curl -f -L -o /var/folders/vq/jpt1fhxd6fx58rz9zvbdtw000000gn/T/d20200922-35020-qeu6k2/file.zip https://api.mapbox.com/downloads/v2/mobile-maps/releases/ios/packages/6.2.0/mapbox-ios-sdk-dynamic.zip --create-dirs --netrc-optional --retry 2

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0    44    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 401

如何修复这个错误?
9个回答

39

对我来说这花了一晚上的时间。在搜索了太多小时后,我找不到写入秘密密钥至 .netrc 文件的最佳解决方案。请按照以下步骤操作:

  1. 进入终端并键入cd ~
  2. 按Enter键。
  3. 键入vi .netrc。它将在终端中打开空文件。
  4. 在此处按i以插入数据。当您输入i时,它会在插入模式下打开。
  5. 现在粘贴内容
    machine api.mapbox.com
    login mapbox
    password sk.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意:密码中不要输入<>符号。

  1. 从键盘上按下Esc键。
  2. 输入:w以将所有数据写入文件。
  3. 现在输入:q退出文件。
  4. 您已成功保存该文件。
  5. 运行Pod install命令。

1
为什么打开 .netrc 这么复杂? - Khurshid Ansari

13
请确保您已经将 .netrc 文件保存在计算机的主目录下(而不是项目的主目录下),并且已将您的秘密令牌(带有 Downloads:Read 范围的新令牌)粘贴到文件中。

1
我的问题来自于尖括号“<>”。谢谢。 - BSK-Team
在我的情况下,Downloads:Read范围是问题所在! - Asteroid

8

这部分指南可能有点让人困惑。

在我的情况下,我意识到.netrc文件已经存在于我的主目录中。我只需要打开一个新的终端并输入nano .netrc。然后我添加了这三行:

machine api.mapbox.com
  login mapbox
  password PRIVATE_MAPBOX_API_TOKEN

6

我搜索了很多修复方法,但最终发现最简单的方式是安装低版本而不是6.3.0。

我使用版本4.11.2来修复了这个问题。

并且像这样编辑你的Podfile:

pod 'Mapbox-iOS-SDK', '~> 4.11.2'

猜测使用旧版本不是正确的选择。 - NMaks
这在M1芯片的Mac电脑上不会工作。 - Matheus Weber

2

1

这对我很有效

  1. 打开终端
  2. cd ~(进入主目录)
  3. touch .netrc(创建文件)
  4. 打开 .netrc 文件
  5. 添加所需数据
  6. 保存文件(cmd + s)
  1. 所需的数据必须如下所示

enter image description here


0
打开您项目的 Pod 文件,删除 pod 'Mapbox-iOS-SDK' 并保存并关闭它。然后在终端中运行 pod installpod clean,再次回到您项目的 Pod 文件,重新编写 pod 'Mapbox-iOS-SDK' 并在终端上运行 pod install

0
(MAC系统)我花了几个小时解决这个错误,最后发现.netrc文件实际上是作为netrc文件(没有点号)编写的,所以即使你重命名它,它也不起作用,你必须从终端创建该文件,使用以下命令:
  • vi .netrc
  • 插入模式
  • 粘贴
machine <name>
login <user>> 
password <token>
  • esc
  • :x

现在使用pod repo-art add repoName url命令,您可以成功连接。


0
一个对我有效的综合答案:
1. 确保你的令牌具有“DOWNLOADS:READ”范围。 2. 打开 ~/.netrc 文件并插入以下行:
    machine api.mapbox.com
    login mapbox
    password whatever_token_we_have
3. voilà

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接