7

作爲cocoapod的Crashlytics正在打破我們的CI系統。基本上我們有一個Rakefile,它運行一些任務來完成一個pod更新,構建我們的應用程序,並運行測試等。但是,我們最近將Crashlytics作爲cocoapods切換到織物&。現在,我們的自動化構建期間莢更新階段,出現以下錯誤失敗:cocoapods [!]安裝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 

工作區,因爲Crashlytics安裝失敗,也不會產生。 我認爲有兩個問題發生: 1. Crashlytics pod正試圖下載並寫入系統文件,該文件在腳本文件中運行該命令時沒有權限寫入(我們不想運行腳本作爲sudos) 2.該端點實際上有點片狀。

如果我在終端中手動運行該curl命令,它將成功MOST的時間並下載文件。但是,有時curl命令實際上無法解析主機。另外,我有兩臺虛擬機可以成功運行該curl命令,而不使用sudo usr/bin/curl/...但是我們的一臺虛擬機(這是另一臺虛擬機的確切克隆)確實需要sudo usr/bin/curl。 ..獲得對該文件夾的寫入權限。

如果我在Rakefile中運行那個curl命令,我得到: $ rake 您沒有創建/ var/folders/fx的權限。

因此,我相信問題是嘗試從Rakefile執行pod更新會導致出現文件寫入權限問題,原因是Crashlytics嘗試將文件下載到不允許的系統/ var /文件夾中。此外,該端點可能也很脆弱,無法解決主機問題。

所以基本上,解決方法是在CI機器的終端上手動運行該curl命令,以便下載和安裝。現在任何未來的pod更新都可以工作,就如同我們對同一版本的CRASHLYTICS一樣。所以現在,我們凍結了3.3.4上的Crashlytics安裝。

任何人都會遇到類似的問題,對他們認爲正在發生的事情有任何建議,或者對如何解決這個問題有更好的建議?

+1

原來,curl命令經常更改,可能與每個pod更新一樣多。唯一可以找到的解決方法是爲所有用戶添加對/ var/folders/fx的讀/寫訪問,這是遠遠不夠理想的。 ** sudo chmod -R a + rw/var/folders/fx/** – n8tr

+0

作爲更新,我們最終放棄使用Fabric和Crashlytics cocoapods,並且剛剛手動導入框架,因爲我們繼續運行到隨機CC更新與原始帖子類似的失敗。 – n8tr

+0

你是怎麼解決這個問題的,我在cocoapod網站看到他們在2016年9月更新了Crashlytics的cocoapods – nivritgupta

回答

2

我的解決方案是刪除存儲庫中的Pods目錄(rm -rf Pods)。這樣,所有的豆莢都被移除了,甚至是Crashlytics。之後,pod install可以成功運行。我現在已經安裝了Crashlytics 3.8.6。