我有一个私人吊舱和一个私人规格仓库。我作为二进制文件提供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提示输入密码来克隆我的私有spec repo时,这很棒。
但是,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在这里做一些认证?
我尝试在.netrc
中放置凭据,CocoaPods似乎很乐意使用,但GitHub仍然使用404失败了请求,即使我看到curl现在正在使用基本身份验证。如果我使用netrc for auth使用curl发出API请求,我会得到很好的响应。但我无法下载发布资产。
我可以使用.netrc从api端点获取发布资产,但前提是我指定-H 'Accept: application/octet-stream'
,我不知道如何让CocoaPods这样做。
答案 0 :(得分:2)
GitHub不支持这一点。解决方案:如果托管它的repo是私有的,则不要在github上托管二进制文件。
GitHub支持称他们不支持auth发布下载。他们将其添加到一些内部功能请求列表