7

Crashlytics come un cocoapod si sta rompendo per il nostro sistema CI. Fondamentalmente abbiamo un Rakefile che esegue alcune attività per eseguire un aggiornamento pod, creare la nostra app ed eseguire test, ecc. Tuttavia, siamo passati di recente a Fabric & Crashlytics come cocoapods. Ora la nostra costruzione di automazione sta venendo a mancare con il seguente errore durante la fase di aggiornamento pod:cocoapods [!] Errore nell'installazione di 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 

L'area di lavoro non viene generato dal Crashlytics non si installa. Credo che si verifichino due problemi: 1. Il pod di Crashlytics sta cercando di scaricare e scrivere su un file di sistema a cui non ha il permesso di scrivere quando esegue quel comando nel file di script (non vogliamo eseguire lo script con come sudos) 2. Tale endpoint è in effetti un po 'instabile.

Se eseguo manualmente il comando di arricciatura nel terminale, esso funziona MOST di più volte e scarica il file. Tuttavia, a volte il comando di ricciolo non riesce a risolvere l'host. Inoltre, ho due macchine virtuali in grado di eseguire correttamente il comando curl senza eseguire sudo usr/bin/curl/... ma una delle nostre macchine virtuali (che è un clone esatto di un'altra) ha bisogno di sudo usr/bin/curl. .. per ottenere l'accesso in scrittura a quella cartella.

Se eseguo proprio questo comando di arricciatura in un Rakefile, ottengo questo: $ rake Non si dispone dell'autorizzazione per creare/var/folders/fx.

Quindi, ancora una volta, credo che il problema è che il tentativo di eseguire l'aggiornamento del pod da Rakefile fa sì che ci sia un problema di permessi di scrittura del file a causa di Crashlytics che cerca di scaricare un file nella cartella system/var/non consentita. Inoltre, tale endpoint potrebbe anche presentare errori e non riuscire a risolvere l'host.

Quindi, in pratica, la soluzione alternativa consiste nell'eseguire manualmente il comando di arricciatura nel terminale della macchina CI in modo che venga scaricato e installato. Ora qualsiasi aggiornamento di pod futuro funziona COSÌ LUNGO COME STIAMO SULLA STESSA VERSIONE DI CRASHLYTICS. Quindi per ora abbiamo bloccato la nostra installazione di Crashlytics su 3.3.4.

Chiunque si imbatte in un problema simile, ha qualche consiglio su ciò che pensa stia accadendo o ha un suggerimento migliore su come risolvere questo problema?

+1

Si scopre che il comando di arricciatura cambia spesso, probabilmente con la frequenza di ogni aggiornamento di pod. L'unica soluzione alternativa che è stato possibile trovare è stata l'aggiunta dell'accesso in lettura/scrittura a/var/folders/fx per tutti gli utenti, che è tutt'altro che ideale. ** sudo chmod -R a + rw/var/folders/fx/** – n8tr

+0

Come aggiornamento, abbiamo finito per rinunciare all'uso dei cocoapodi Fabric e Crashlytics e abbiamo appena importato i framework manualmente da quando abbiamo continuato a correre in CC casuali aggiorna gli errori che sembravano simili al post originale. – n8tr

+0

come hai risolto il problema, vedo nel sito cocoapod che aggiornano i cocoapodi Crashlytics nel settembre 2016 – nivritgupta

risposta

2

La mia soluzione era eliminare la directory Pods nel repository (rm -rf Pods). In questo modo tutti i pod sono stati rimossi, anche i Crashlytics. Successivamente, un pod install potrebbe essere eseguito correttamente. Ora ho installato Crashlytics 3.8.6.