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.

Guillaume
źródło

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”.

Guillaume
źródło
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

Andrzej
źródło
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
Nikolai Ruhe
źródło
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

adsurbum
źródło
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.
RY Zheng
źródło
Obecnie właściwym argumentem wiersza poleceń jest-showBuildTimingSummary
Morse