7

Crashlytics jako cocoapod łamie nasz system CI. Zasadniczo mamy plik Rakefile, który uruchamia niektóre zadania, aby wykonać aktualizację, tworzyć naszą aplikację i uruchamiać testy itp. Jednak niedawno zmieniliśmy na Fabric & Crashlytics jako cocoapods. Teraz nasz build automatyzacja się niepowodzeniem z powodu następującego błędu na etapie aktualizacji pod:cocoapods [!] Błąd podczas instalacji Crashlytics

[!] Error installing Crashlytics 
[!] /usr/bin/curl -f -L -o /var/folders/fx/hfsy48h13839_jm5wmkp5mx00000gn/T/d20151009-74266-1p34ehf/file.zip https://kit-downloads.fabric.io/ios/com.twitter.crashlytics.ios/3.3.4/com.twitter.crashlytics.ios-default.zip --create-dirs 

    % Total % Received % Xferd Average Speed Time Time  Time Current 

           Dload Upload Total Spent Left Speed 


    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
    0  0 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0curl: (6) Could not resolve host: kit-downloads.fabric.io 
Update all pods 
Analyzing dependencies 

Obszar ten nie jest generowany od Crashlytics nie instalować. Wydaje mi się, że występują dwa problemy: 1. Podnośnik Crashlytics próbuje pobrać i zapisać do pliku systemowego, do którego nie ma uprawnień do zapisu, podczas uruchamiania tego polecenia w pliku skryptu (nie chcemy uruchamiać skryptu z jak sudos) 2. Ten punkt końcowy jest w rzeczywistości nieco niestabilny.

Jeśli ręcznie uruchomię tę komendę curl w terminalu, zakończy się ona NAJBARDZIEJ CZASU i zostanie pobrany plik. Jednak czasami ta komenda curl w rzeczywistości nie pozwala rozwiązać hosta. Jednak mam również dwie maszyny wirtualne, które mogą pomyślnie uruchamiać tę komendę curl bez wykonywania polecenia sudo usr/bin/curl/..., ale jedna z naszych maszyn wirtualnych (która jest dokładnym klonem innego) wymaga pakietu sudo usr/bin/curl. .. aby uzyskać dostęp do zapisu do tego folderu.

Jeśli uruchomię to polecenie w pliku Rakefile, otrzymam: $ rake Nie masz uprawnień do tworzenia/var/folders/fx.

Tak więc uważam, że problem polega na tym, że próba aktualizacji podnośnika z pliku Rakefile powoduje problemy z prawem do zapisu pliku, ponieważ Crashlytics próbuje pobrać plik do katalogu system/var /, który jest niedozwolony. Dodatkowo, ten punkt końcowy może być również niepoprawny i przestać być niezdolny do rozwiązania hosta.

Zasadniczo obejście polega na ręcznym uruchomieniu tego polecenia curl w terminalu na naszym komputerze CI, tak aby było pobierane i instalowane. Teraz wszelkie przyszłe aktualizacje pod działa tak długo, jak jesteśmy na tej samej wersji CRASHLYTICS. Na razie zamroziliśmy naszą instalację Crashlytics w wersji 3.3.4.

Ktoś napotyka podobny problem, ma jakieś rady dotyczące tego, co ich zdaniem dzieje się, lub ma lepsze sugestie, jak to naprawić?

+1

Powoduje, że polecenie curl zmienia się często, prawdopodobnie tak często, jak każda aktualizacja. Jedynym obejściem, jakie mogliśmy znaleźć, było dodanie dostępu do odczytu/zapisu do/var/folders/fx dla wszystkich użytkowników, co jest dalekie od ideału. ** sudo chmod -R a + rw/var/folders/fx/** – n8tr

+0

Jako aktualizacja, skończyliśmy na rezygnacji z używania cocoapodów Fabric i Crashlytics i właśnie zaimportowaliśmy frameworki ręcznie, ponieważ kontynuowaliśmy uruchamianie w losowej CC aktualizuje awarie, które wyglądały podobnie do oryginalnego wpisu. – n8tr

+0

W jaki sposób rozwiązałeś problem, widzę na stronie cocoapod, że aktualizują cocoapods Crashlytics we wrześniu 2016 roku: – nivritgupta

Odpowiedz

2

Moje rozwiązanie polegało na usunięciu katalogu Pods w repozytorium (rm -rf Pods). W ten sposób usunięto wszystkie strąki, nawet Crashlytics. Po tym może pomyślnie działać pod install. Mam zainstalowany Crashlytics 3.8.6.