Jak włączyć synchronizację kompilacji w Xcode?


90

Chciałbym wiedzieć, jak długo trwa kompilacja mojego projektu, na przykład wyświetlając go w okienku kompilacji. Czy ta opcja jest dostępna gdzieś w Xcode?

Dzięki.

Odpowiedzi:


179

Wpisz to w terminalu:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

Czas trwania jest wyświetlany w przeglądarce aktywności po kompilacji wraz z komunikatem „Powodzenie”.

Jeśli uruchomisz aplikację, stan zostanie zastąpiony stanem działania, zanim będzie można zobaczyć czas trwania.

Zastępuje wpis, który był używany w starszych wersjach Xcode:

defaults write com.apple.Xcode ShowBuildOperationDuration TAK

Może być konieczne zamknięcie Xcode przed wprowadzeniem tego polecenia. Czas trwania powinien pojawić się w lewym dolnym rogu okna projektu.

Komentarz dewelopera Xcode: „Podobnie jak w przypadku wszystkich nieudokumentowanych ustawień domyślnych użytkownika, jest to nieobsługiwane, zakładane (ale nie gwarantowane) dokładne i nie ma gwarancji, że będzie skuteczne w przyszłych wersjach”.


7
Działa to również w przypadku Xcode 6. Czas kompilacji jest pokazany poniżej paska tytułu okna.
Klaas

6
@bobobobo Zrzut ekranu pokazujący godzinę w Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy

2
Jakiś sposób, żeby to wydrukować, do pliku?
Alex Bartiş

1
Potwierdza, że ​​to działa dla mnie w Xcode 7.1.1 (używając nowszego com.apple.dt.Xcode)
Jedidja

2
Jeśli ktoś jeszcze się zastanawia, przeglądarka aktywności to okno w środku górnej części xcode, w którym pokazuje, co jest obecnie budowane i jak daleko jest w tym procesie.
Warpzit

14

W Xcode 10 możesz teraz zobaczyć świetne zestawienie czasów kompilacji za pomocą funkcji Podsumowanie czasu.

Produkt-> Wykonaj czynność-> Kompiluj z podsumowaniem czasu

Spowoduje to wyświetlenie każdego docelowego czasu kompilacji i ogólnego czasu kompilacji projektu. Możesz przeprowadzić wiele analiz, korzystając z tych danych, a czas kompilacji będzie zależał od sprzętu. Sprawdź Budowanie szybciej w Xcode z WWDC 2018, jeśli chcesz dowiedzieć się więcej.

Jednak Xcode domyślnie śledzi wszystkie Twoje kompilacje i możesz sprawdzić ich czasy i dzienniki, przechodząc do ich Nawigatora raportów.

Twórz dzienniki w Nawigatorze raportów


nie ma sposobu, abym mógł zapisać dziennik kompilacji z XCode z czasami. Widzę tylko czas na wyjściu XCode
msk

13

nie, ale możesz użyć wiersza poleceń. cd do katalogu projektu i wpisz

time xcodebuild

3

Rozwiązałem to z Run Scripts inBuild Phases

Dodałem jeden skrypt uruchamiania w punkcie początkowym kompilacji:

echo $(date +%s) > ../build_start_time

i jeden na końcu:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

Teraz mogę zobaczyć czas w dzienniku kompilacji -> Wszystkie wiadomości


1
W Xcode 6.4 nie pozwala przeciągać fazy kompilacji skryptu uruchamiania przed jakąkolwiek fazą kompilacji „stock”. Jeśli utworzysz kilka dodatkowych faz budowy, pozwoli ci to zmienić kolejność tych między sobą, ale wydaje się, że wszystkie „podstawowe” fazy budowy muszą być pierwsze. Znalazłeś sposób na obejście tego?
Jason Pepas

0

Po Xcode 10

  • jeśli budujesz z wiersza poleceń, użyj, -buildWithTimingSummaryaby zobaczyć podsumowanie czasu kompilacji.
xcodebuild -buildWithTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
  • Jeśli używasz Xcode, Product->Perform Action->Build With Timing Summary. Zobacz podsumowanie czasu budowy w dzienniku budowy Xcode.

Obecnie właściwym argumentem wiersza poleceń jest-showBuildTimingSummary
Morse
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.