Flutter项目安装Mapbox iOS SDK报401 Unauthorized错误如何解决?
问题解决方案
你遇到的是Mapbox SDK下载鉴权失败的问题,按以下步骤排查即可解决:
- 首先确认存储鉴权信息的文件名拼写正确:你提到的
.netric是拼写错误,正确文件名应为.netrc,存放在当前用户的home目录下,文件名开头的.不能省略,无文件后缀。 - 检查
.netrc文件内容格式是否符合要求,正确格式如下:
machine api.mapbox.com login mapbox password 你的Mapbox Secret Key
注意password字段后直接填写你创建的已勾选download:read权限的密钥,不要添加引号、空格等多余字符,行首可以用空格或Tab缩进。
- 修正
.netrc文件权限,curl出于安全考虑会忽略权限不符合要求的.netrc文件,在终端执行以下命令修改权限:chmod 600 ~/.netrc - 单独测试鉴权是否正常,在终端执行如下命令:
curl -L -o test_mapbox.zip https://api.mapbox.com/downloads/v2/mobile-maps/releases/ios/packages/6.3.0/mapbox-ios-sdk-dynamic.zip --netrc-optional- 如果命令可以正常下载文件,说明鉴权配置没问题,是CocoaPods本地缓存冲突导致的错误,执行以下命令清理缓存后重新安装即可:
cd 你的项目ios目录 pod cache clean Mapbox-iOS-SDK --all rm -rf Pods Podfile.lock pod install - 如果命令仍返回401错误,说明你的Secret Key配置错误,重新去Mapbox后台生成新的密钥,确认勾选
download:read权限,复制时不要带多余的空格或换行符,更新到.netrc的password字段后重试即可。
- 如果命令可以正常下载文件,说明鉴权配置没问题,是CocoaPods本地缓存冲突导致的错误,执行以下命令清理缓存后重新安装即可:
内容的提问来源于stack exchange,提问作者ShmoonMaster
相关产品推荐
相关产品推荐

