2017-06-08 61 views
6

Mam prywatny pod i prywatny repo spec. Służę kapsułę jako binarny, czyli podspec mówi:Pod instalacją nie powiodło się, ponieważ prywatny podsieci są podawane jako pliki binarne z prywatnego repo

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

My Podfile ma następującą informację źródło:

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

Kiedy biegnę pod install git prosi o podanie hasła do klonowania mój prywatny specyfikację repo, co jest świetne.

Jednak pod install próbuje uzyskać binarnego pakietu zip przy użyciu curl bez uwierzytelniania, więc GitHub powraca 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 

Nie chcę, aby społeczeństwo binarny. Czy istnieje sposób, w jaki mogę powiedzieć CocoaPods, aby zrobił tu jakiś auth?

Próbowałem umieszczać poświadczenia w .netrc, z którego CocoaPods wydaje się być zadowolony, ale GitHub wciąż nie spełnia żądania z 404, mimo że widzę teraz, że curl używa podstawowego uwierzytelnienia. Jeśli tworzę żądania API z curl za pomocą netrc dla auth, otrzymuję odpowiedzi w porządku. Ale nie mogę pobrać zasobu wydania.

Mogę pobrać zasób wydawania z punktu końcowego api za pomocą .netrc, ale tylko pod warunkiem, że określę -H 'Accept: application/octet-stream', czego nie widzę, jak mogę zrobić to CocoaPods.

+0

Możliwe rozwiązanie: https://stackoverflow.com/questions/43885763/cocoapods-with-private-git-repository/43892558#43892558? – Larme

+0

Widziałem to w kółko. Problem polega na tym, że musisz zatwierdzić pliki binarne wydań, zamiast korzystać z hostingu bitów Githuba niezawierających SCM. –

+0

Obsługa GitHub mówi, że po prostu nie wspierają auth do pobrania wersji. Dodano ją do wewnętrznej listy żądań funkcji, która prawdopodobnie zostanie zignorowana na zawsze. No cóż. Odpowiedź: NIE MOŻLIWE. Hostuj to gówno gdzieś indziej. –

Odpowiedz

1

GitHub po prostu tego nie obsługuje. Rozwiązanie: nie hostuj binarnego na github, jeśli repo jest hostowane jako prywatne.