Як увімкнути синхронізацію збірки в Xcode?


90

Я хотів би знати, скільки часу займає збірка мого проекту, наприклад, відобразивши його на панелі збірки. Чи доступна ця опція десь у Xcode?

Дякую.

Відповіді:


179

Введіть це в терміналі:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

Тривалість відображається у засобі перегляду активності після збірки поряд із повідомленням "Успішно".

Якщо ви запускаєте програму, статус буде замінений на запущений, перш ніж ви побачите тривалість.

Це замінює запис, який використовувався у старих версіях Xcode:

за замовчуванням напишіть com.apple.Xcode ShowBuildOperationDuration ТАК

Можливо, Xcode потрібно буде закрити, перш ніж вводити цю команду. Тривалість повинна відображатися внизу ліворуч вікна проекту.

Коментар розробника Xcode: "Як і у випадку з усіма документами за замовчуванням за замовчуванням, це не підтримується, вважається (але не гарантується) точним і не гарантується, що воно буде ефективним у майбутніх версіях."


7
Це працює і для Xcode 6. Час збірки відображається під рядком заголовка вікна.
Клаас,

6
@bobobobo Знімок екрана, де час відображається в Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy

2
Будь-яким способом можна надрукувати його у файл?
Alex Bartiş,

1
Підтверджує, що це працює для мене в Xcode 7.1.1 (за допомогою новішої версії com.apple.dt.Xcode)
Jedidja

2
Якщо хтось ще задається питанням переглядача активності, це вікно в середині верхньої частини xcode, де він показує, що наразі будується і як далеко він знаходиться в процесі.
Warpzit

14

У Xcode 10 ви тепер можете побачити велику розбивку часу збірки, використовуючи їх функцію "Підсумок часу".

Продукт-> Виконати дію-> Побудувати з підсумками часу

Це покаже кожен із ваших цільових часів побудови та загальний час побудови проекту. Ви можете зробити багато аналізу, використовуючи ці дані, і час збирання буде залежати від вашого обладнання. Перевірте Будівництво Faster в Xcode від WWDC 2018 року , якщо ви дбаєте , щоб дізнатися більше.

Однак Xcode за замовчуванням відстежує всі ваші збірки, і ви можете перевірити їх час та журнали, перейшовши до їх Навігатора звітів.

Створення журналів у навігаторі звітів


я ніяк не можу зберегти журнал збірки з XCode із зазначенням часу. Я бачу лише час у виведенні
msk

13

ні, але ви можете скористатися командним рядком. cd до каталогу та типу проекту

time xcodebuild

3

Я вирішив це за допомогою Run Scripts inBuild Phases

Я додав один сценарій запуску в початковій точці збірки:

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

і один в кінці:

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

Тепер я бачу час у Журналі побудови -> Усі повідомлення


1
У Xcode 6.4 це не дозволяє перетягувати фазу побудови сценарію запуску перед будь-якою з фаз складання "запас". Якщо ви створите купу додаткових фаз збірки, це дозволить вам перевпорядкувати їх між собою, але, схоже, всі "запасні" фази збірки повинні бути на першому місці. Ви знайшли спосіб обійти це?
Джейсон Пепас,

0

Після Xcode 10

  • якщо ви будуєте з командного рядка, використовуйте, -buildWithTimingSummaryщоб переглянути підсумок часу побудови.
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
  • Якщо ви використовуєте Xcode, Product->Perform Action->Build With Timing Summary. І подивіться підсумок часу побудови в журналі побудови Xcode.

На сьогодні правильним аргументом командного рядка є-showBuildTimingSummary
Морзе,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.