8

我有一个私人吊舱和一个私人规范回购。我将 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 installgit 提示输入密码以克隆我的私人规范存储库时,这很棒。

但是,pod install尝试在curl不进行身份验证的情况下获取二进制 zip 包,因此 GitHub 返回 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

我不想公开二进制文件。有没有办法告诉 CocoaPods 在这里做一些身份验证?

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

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

4

1 回答 1

3

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

GitHub 支持说他们只是不支持发布下载的身份验证。他们将其添加到一些内部功能请求列表中

于 2017-08-10T18:18:00.957 回答