2010-02-11 14 views
36

Konsoldan xcodebuild'u çalıştırmak çok ayrıntılı bir çıktı getirecek ve yalnızca uyarıları ve hataları görüntülemek için çıktısını sınırlamak için herhangi bir seçeneği bulamadım.xcodebuild komut satırı çıkışı nasıl filtrelenir?

xcodebuild çıktısını almanın ve filtrelemenin bir yolunu arıyorum. Borularla çalışacak bir Python çözümünü tercih eder ancak komut satırı tabanlı çözümler oldukları sürece diğer yaklaşımlara açığım.

Bunu zaten yapan araçlar var mı? Hata çıkış yakalamak istiyorsanız

xcodebuild > /dev/null

:

cevap

17

sadece böyle/dev/null standart çıkışı (bir kara delik olarak çalışan özel bir dosya) yönlendirmek, hata çıktı iletileri görmek için Bir dosyaya aşağıdakileri yapabilirsiniz:

xcodebuild 2> ./build_errors.log
35

Bu benim için yeterli değil./Dev/null değerine pipetleme, yalnızca bir yapının başarısız olduğunu gösterir, ancak nedenini (nedenini) göremezsiniz. İdeal olarak, tüm başarılı derleyici komutları olmadan sadece hataları ve/veya uyarıları görebiliriz.

xcodebuild | grep -A 5 error: 
+19

veya 'xcodebuild | egrep -A 5 "(hata | uyarı):" – v01pe

+10

veya "egrep '^ (/.+: [0-9 +: [0-9] + :. (hata | uyarı): | fatal | === xcodebuild'in yapmak üzere olduğunu söyleyen satırları da almak. – PatchyFog

33

xcpretty adında bir Ruby mücevher var:

Bu temelde işi yapar.

xcodebuild çıktısını filtreler ve ayrıca farklı biçimlendiriciler ve renklendirme sağlar.

+2

lütfen bu cevabı oylayın, bu araç harika ve sorunu grep – hariseldon78

+1

'den çok daha iyi çözebilirsiniz Bu araçlar harika!Neden daha önce bulamadım ki ?! –

+0

xcpretty, xcodebuild ile birlikte kullanılabilecek kullanışlı bir araçtır. – AhiyaHiya

0

İnsan olarak bakmak için xcpretty'u seviyorum, ancak başka bir yerde yayılma için otomatik olarak yapılandırma hataları bulmaya ihtiyacım vardı ve yalnızca ilgili bilgileri yakaladığımdan emin olmak istedim.

xcodebuild | sed -nE '/error:/,/^[[:digit:]] errors? generated/ p' 

Çıktı:

main.c:16:5: error: use of undeclared identifier 'x' 
    x = 5; 
    ^
main.c:17:5: error: use of undeclared identifier 'y' 
    y = 3; 
    ^
2 errors generated. 
24

kullanın xcodebuild -quiet aşağıdaki sed komutu bu amaca hizmet eder. xcodebuild adam sayfasına göre

:

-quiet: uyarılar ve hatalar hariç herhangi bir çıktı yazdırmayın.

Bonus: Başka hiçbir araç gerekli değildir! (Ben de xcodebuild | xcpretty gibi)

4 MB günlükten sonra şikayetçi olan Travis CI ile yapıyorum. Bu argüman problemi çözdü.

+1

Bu, doğru cevap olarak işaretlenmelidir. Teşekkür ederim! – Ruenzuo

+0

Maalesef, sadece Xcode 8+ için çalışıyor. Önceki Xcode'lar için @rosejn'e bakınız. – kambala

1

enter image description here

-quiet şimdi de bunu yapmak için en iyi yoldur.