TGViewer
iOS Dev iOS Dev @iosdev · 7.93K subscribers
Post #1225 4.24K
Почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени?

Когда мы добавляем зависимость в проект через spm, он извлекает весь репозиторий пакета со всеми ветками и полную историю git, которая может представлять собой годы git-снапшотов.

Суть проблемы тут.

Но почему?

На вопрос ответил инженер по инфраструктуре GitHub (обратите внимание на дату комментария), схожая проблема была и в Cocoapods:

Поверхностное клонирование по какой-то причине обходится намного дороже, чем клонирование всего репозитория. К тому же GitHub ограничивает скорость в таких репах, что приводит к значительному увеличению времени.

Хуже того, фетч может вообще завершиться ошибкой по таймауту.

Так в чем же заключается решение?

Очевидно, многие компании используют такой подход. Они создают отдельный реп с предварительно скомпилированным .xcframework, при этом пользователь получит только нужную часть исходного репозитория.

Например airbnb/lottie применила этот подход и уменьшила размер своего репозитория с +300 МБ до менее 500 КБ!

Signal сделал то же самое: отсюда OneSignal-iOS-SDK пришли к оптимизированной версии OneSignal-XCFramework.

📖 Про другой интересный кейс можно прочитать на хабре.

😃 iOS Dev
  • 🔥 33
  • 👍 9
  • ☃ 2
  • ✍ 1
  • ❤‍🔥 1
  • 👏 1
  • 💯 1
  • 🎄 1
More from @iosdev
  1. Oct 9, 2026Эффект премиальной банковской карты с помощью SwiftUI и Metal Такая красота часто встречае…
  2. Oct 9, 2026Итеративная загрузка данных в Swift Хотя одновременное выполнение десятков асинхронных зап…
  3. Oct 8, 2026Мультиагентность: следующий шаг в разработке или лишняя сложность? AI-агенты уже умеют пис…
  4. Oct 8, 2026Продвинутые техники работы с макросами в Swift Владение макросами позволяет автоматизирова…
  5. Oct 7, 2026Работа с модальными экранами на iPhone Duo На iPhone Duo всплывающие окна могут выглядеть…
  6. Oct 6, 2026⚡️ Apple обязали всех делать поддержку iPhone Duo с апреля 2027 года Сегодня выкатили обно…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →