IOSDEV Telegram 1225
Почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени?

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

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

Но почему?

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

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

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

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

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

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

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

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3311👍9321❤‍🔥1👏1💯1🎄1



tgoop.com/iosdev/1225
Create:
Last Update:

Почему загрузка пакетов с помощью Swift Package Manager занимает слишком много времени?

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

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

Но почему?

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

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

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

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

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

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

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

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

😃 iOS Dev

BY iOS Dev




Share with your friend now:
tgoop.com/iosdev/1225

View MORE
Open in Telegram


Telegram News

Date: |

2How to set up a Telegram channel? (A step-by-step tutorial) While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. Channel login must contain 5-32 characters best-secure-messaging-apps-shutterstock-1892950018.jpg Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months.
from us


Telegram iOS Dev
FROM American