Bagaimana cara mengaktifkan waktu pembuatan di Xcode?

90

Saya ingin tahu berapa lama waktu yang dibutuhkan untuk pembangunan proyek saya, misalnya dengan menampilkannya di panel pembuatan. Apakah opsi ini tersedia di suatu tempat di Xcode?

Terima kasih.

Guillaume
sumber

Jawaban:

179

Ketik ini di terminal:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

Durasi muncul di penampil aktivitas setelah build, di samping pesan "Berhasil".

Jika Anda menjalankan aplikasi, status akan diganti dengan status berjalan sebelum Anda dapat melihat durasinya.

Ini menggantikan entri yang digunakan di versi Xcode yang lebih lama:

default tulis com.apple.Xcode ShowBuildOperationDuration YES

Xcode mungkin perlu ditutup sebelum Anda memasukkan perintah ini. Durasi akan muncul di kiri bawah jendela proyek.

Komentar dari pengembang Xcode: "Seperti semua default pengguna yang tidak berdokumen, ini tidak didukung, diasumsikan (tetapi tidak dijamin) akurat, dan tidak dijamin akan efektif di versi mendatang."

Guillaume
sumber
7
Ini berfungsi untuk Xcode 6 juga. Waktu pembuatan ditampilkan di bawah bilah judul jendela.
Klaas
6
@bobobobo Tangkapan layar tempat waktu muncul di Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy
2
Adakah cara untuk mencetaknya, ke file?
Alex Bartiş
1
Mengonfirmasi ini berfungsi untuk saya di Xcode 7.1.1 (menggunakan yang lebih baru com.apple.dt.Xcode)
Jedidja
2
Jika ada orang lain yang bertanya-tanya, penampil aktivitas adalah jendela di tengah atas xcode yang menunjukkan apa yang sedang dibuat dan seberapa jauh prosesnya.
Warpzit
14

Di Xcode 10, Anda sekarang dapat melihat rincian besar waktu pembuatan menggunakan fitur Ringkasan Waktu.

Produk-> Lakukan Tindakan-> Bangun Dengan Ringkasan Waktu

Ini akan menunjukkan setiap waktu pembuatan target Anda dan waktu pembangunan proyek secara keseluruhan. Anda dapat melakukan banyak analisis menggunakan data ini dan waktu pembuatan akan bergantung pada perangkat keras Anda. Lihat Building Faster in Xcode dari WWDC 2018 jika Anda ingin mempelajari lebih lanjut.

Namun, Xcode melacak semua build Anda secara default dan Anda dapat memeriksa waktu dan lognya dengan membuka Report Navigator mereka.

Buat Log dalam Report Navigator

Andrew
sumber
tidak ada cara saya dapat menyimpan log pembuatan dari Xcode dengan pengaturan waktu. Saya hanya dapat melihat waktu dalam keluaran Xcode
msk
13

tidak, tetapi Anda dapat menggunakan baris perintah. cd ke direktori proyek Anda dan ketik

time xcodebuild
Nikolai Ruhe
sumber
3

Saya menyelesaikannya dengan Run Scripts inBuild Phases

Saya telah menambahkan satu Skrip Jalankan pada titik awal pembuatan:

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

dan satu di akhir:

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

Sekarang saya bisa melihat waktu di Build Log -> All Messages

adsurbum
sumber
1
Di Xcode 6.4, ini tidak akan membiarkan Anda menyeret fase pembuatan skrip yang dijalankan sebelum fase pembuatan "stok" mana pun. Jika Anda membuat sekumpulan fase build tambahan, ini akan memungkinkan Anda memesan ulang fase tersebut di antara mereka sendiri, tetapi tampaknya semua fase build "stok" harus diutamakan. Sudahkah Anda menemukan jalan keluarnya?
Jason Pepas
0

Setelah Xcode 10

  • jika Anda membuat dari baris perintah, gunakan -buildWithTimingSummaryuntuk melihat ringkasan waktu pembuatan.
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
  • Jika Anda menggunakan Xcode Product->Perform Action->Build With Timing Summary,. Dan lihat ringkasan waktu pembangunan di log gedung Xcode.
RY Zheng
sumber
Saat ini argumen baris perintah yang benar adalah-showBuildTimingSummary
Morse