У меня есть частный модуль и репозиторий для частных спецификаций. Я обслуживаю модуль как двоичный, т.е. в спецификации модуля указано:
s.source = {
:http => 'https://github.com/COMPANY/PROJECT/releases/download/v1.0/PrivatePod.zip'
}
Мой подфайл содержит следующую исходную информацию:
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/COMPANY/Specs.git'
Когда я запускаю pod install
, git запрашивает пароль для клонирования моего частного репозитория спецификаций, и это здорово.
Однако pod install
пытается получить двоичный zip-пакет, используя curl
без аутентификации, поэтому 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 теперь использует базовую аутентификацию. Если я делаю запросы API с помощью curl, используя netrc для аутентификации, я получаю ответы в порядке. Но я не могу скачать актив релиза.
Я могу получить ресурс выпуска из конечной точки api с помощью .netrc, но только если я укажу -H 'Accept: application/octet-stream'
, чего я не понимаю, как заставить CocoaPods делать это.