Приложения Xamarin iOS раздуты необоснованно?

Я разрабатываю достаточно простое приложение с использованием Xamarin iOS и наименьший размер, который я получил для файла .app, составляет 13,5 МБ.

Я выполнил все рекомендованные оптимизации - никаких символов отладки, генерации кода LVVM, большого пальца-2, не связывает все сборки, только одну архитектуру (ARMV7).

Первый вопрос: мой 13,5 МБ звучит как что-то ожидаемое от Xamarin iOS, или я, вероятно, что-то не так?

Второй вопрос: насколько дополнительные накладные расходы на размер Xamarin iOS добавляются к эквивалентной исходной реализации (примерно)?

Третий вопрос: примерно так, как небольшое приложение Hello World может быть скомпилировано до использования Xamarin iOS?

Четвертый вопрос: примерно, насколько маленькое может скомпилировать собственное приложение Hello World до?

Ответ 1

.dSYM - это каталог, который включает в себя отладочные символы. Это не то, что вы отправляете как часть своего приложения (вашим конечным пользователям). Обратите внимание, что это происходит даже в сборках без отладки, поскольку позволяет вам символизировать отчеты о сбоях (которые исходят от конечных пользователей, работающих с бинарными версиями).

Для реального размера приложения вам нужно посмотреть каталог .app.

Вы можете узнать немало трюков, чтобы уменьшить размер вашего приложения (и время сборки), просмотрев в этом году Evolve video Расширенная механика сборки iOS. Это также ответит на другие ваши вопросы.

Ответ 2

Приложения Xamarin немного больше в режиме выпуска, как и следовало ожидать. В качестве примера, глядя на мои двоичные файлы из двух приложений для доставки, бинарные + dlls составляют около 12 м и 18 м (я думаю, мне нужно посмотреть, почему 18-метровый размер намного больше...). Я бы предположил, что если бы я сделал это в objective-c, они были бы примерно вдвое меньше, чем в прошлом, создавая собственные приложения.

Если вы используете отладочные аппаратные сборки, они огромны. пример 12m выше прыгает до 96M (?!) для двоичных + dll. Прежде чем я проверил это, у меня было в голове, что они удвоились по размеру, чтобы иметь дело с программным отладчиком, но я предполагаю, что там было много другого дерьма, о котором я не знал.