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ć?
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
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
W jaki sposób rozwiązałeś problem, widzę na stronie cocoapod, że aktualizują cocoapods Crashlytics we wrześniu 2016 roku: – nivritgupta