#ios #objective-c #xcode #clang #llvm-clang
#iOS #objective-c #xcode #лязг #llvm-clang
Вопрос:
Когда мы архивируем наше приложение iOS после очистки папки сборки, общее время компиляции процесса архивирования составляет 1700-1900 секунд.
Через несколько минут все те же коды, ничего не меняется, и на процессоре нет другого процесса, архивирование того же проекта занимает более 2500 секунд.
Наш проект содержит как Swift, так и Objective-C коды. Когда я просматриваю журналы компиляции, время сборки для Swift-кодов одинаково в этих двух сборках. Но, с другой стороны, процессы clang отличаются. При первой сборке время компиляции каждого файла Objective-C составляет от 2 до 3 секунд. Но при второй сборке это время составляет 14-15 секунд.
Есть идеи, почему clang обрабатывает один и тот же код по-разному в разных сборках?
Комментарии:
1. Вы заметили это только один раз или это воспроизводимо, и у вас всегда одни и те же результаты? Последующие сборки всегда медленнее, чем первая чистая сборка?
2. Импортируете ли вы
...-Swift.h
заголовки в код ObjC?3. @McNight Мы всегда очищаем папку сборки перед каждым архивом. Я не могу найти какой-либо шаблон. Но в основном первая сборка выполняется быстрее, чем другие.
4. @EugeneDudnyk Да, у нас есть пара фреймворков Swift, импортированных в код Objective-C.
5. Нет, я спрашивал не об импорте других фреймворков, а об импорте
...-Swift.h
сгенерированного заголовка внутри того же модуля. Т. Е. у вас смешанный модуль ObjC Swift, и вы используете Swift API этого модуля внутри ObjC-кода этого модуля — есть ли что-нибудь подобное?