Pod 安装失败,因为私有 pod 被用作来自私有 repo 的二进制文件

Pod install fails for private pod being served as binary from private repo

我有一个私有 pod 和一个私有规范仓库。我将 pod 作为二进制文件提供,即 podspec 说:

s.source = { 
  :http => 'https://github.com/COMPANY/PROJECT/releases/download/v1.0/PrivatePod.zip' 
}

我的 Podfile 有以下源信息:

source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/COMPANY/Specs.git'

当我 运行 pod install git 提示输入密码以克隆我的私人规范存储库时,这很棒。

但是,pod install 尝试使用 curl 获取二进制 zip 包,没有身份验证,所以 GitHub returns 404:

Installing PROJECT 1.0 (was 1.0)

[!] Error installing PROJECT [!] /usr/bin/curl -f -L -o /var/folders/_g/52mwshws60v8622n81hv7h7w0000gn/T/d20170608-80045-1l3flqz/file.zip https://github.com/COMPANY/PROJECT/releases/download/v1.1/PrivatePod.zip --create-dirs --netrc-optional
...
curl: (22) The requested URL returned error: 404 Not Found

我不想制作二进制文件 public。有没有办法让 CocoaPods 在这里做一些授权?

我尝试将凭据放入 .netrc,CocoaPods 似乎很乐意使用它,但 GitHub 仍然无法通过 404 请求,即使我看到 curl 现在正在使用基本身份验证。如果我使用 netrc 进行身份验证并通过 curl 发出 API 请求,我会得到很好的响应。但是我无法下载发布资源。

我可以使用 .netrc 从 api 端点获取发布资产,但前提是我指定 -H 'Accept: application/octet-stream',我不知道如何让 CocoaPods 做到这一点。

GitHub就是不支持这个。解决方案:如果托管二进制文件的存储库是私有的,则不要在 github 上托管二进制文件。

GitHub support is saying they just don't support auth for release downloads. They added it to some internal feature request list