Подтвердить что ты не робот

Быстрое добавление Swift к размеру проекта. Как и когда его можно избежать

У меня есть небольшое приложение, написанное в Objective-C. Это было примерно 3 Мб размера. Когда я добавил один файл Swift, размер моего архива вырос до 10 МБ.

То, что я нашел, это то, что Swift вставляет его в фактическую библиотеку в каждом проекте, в котором он используется. Это необходимо для возможности запуска проекта даже в случае изменения библиотеки Swift в будущем.

Но 8 мегабайт - огромные накладные расходы для небольших проектов. Может быть, есть информация о том, когда Swift получит стабильную библиотеку, которая будет встроена в ОС?

Или, может быть, есть некоторые флаги, которые могут быть добавлены в проект, которые вынуждают компилятор использовать стандартную библиотеку Swift, встроенную в iOS?

4b9b3361

Ответ 1

Свифт все еще меняется. Поэтому в настоящий момент время исполнения должно быть включено в каждое приложение. Возможно, Apple включит Swift во время работы в iOS, когда развитие Swift замедляется.

Исходный код Swift должен был быть скорректирован после почти каждой версии Xcode с бета-версий 6.0. Среда выполнения изменилась одновременно с компилятором. iOS не может использовать стандартную быструю библиотеку, но должна использовать ту, с которой было скомпилировано приложение и связано.

Смотрите это объяснение Apple.

вы можете доверять, что ваше приложение будет работать в будущем. Фактически, вы можете настроить таргетинг на OS X Mavericks или iOS 7 с тем же приложением. Это возможно, потому что Xcode внедряет небольшую библиотеку Quicktime runtime в пакет приложений. Поскольку библиотека встроена, ваше приложение использует согласованную версию Swift, которая запускается в прошлых, настоящих и будущих выпусках ОС

В то время как обеспечивается совместимость со временем выполнения приложений, сам язык Swift будет продолжать развиваться, а бинарный интерфейс также изменится.

По мере изменения Swift эти рамки будут несовместимы с остальной частью вашего приложения. Когда бинарный интерфейс стабилизируется через год или два, среда выполнения Swift станет частью ОС хоста, и это ограничение больше не будет существовать

Не использовать Swift - это единственный способ уменьшить размер вашего приложения.

Так как Swift 3.0 не обеспечит стабильную ABI, это пока останется тем же. Таким образом, через год или два возможно перевести на Swift 5.0 в 2018 году.