2013-11-13 3 views
4

Выполняет ли Xamarin.iOS это при создании AdHoc/AppStore? Я привязываюсь ко многим статическим/жирным библиотекам, которые имеют архитектуры, поддерживающие симулятор. Разделены ли неиспользуемые архитектуры для AdHoc/AppStore?Удаление компоновщика Xamarin.iOS i386 для adhoc

ответ

4

Короткий ответ: Да

Длинный ответ:

Хотя линкер Xamarin является удалось линкера (и работает только на управляемом коде) дополнительные архитектуры удаляются из конечного исполняемого двоичного файла. Это верно для i386, но это также верно для удаления ARMv6 (из библиотек) для исполняемого файла только для ARMv7.

Кроме того, так как вы в том числе много привязок, то вы можете:

  • Включить управляемый линкер на связывание .dll. Это удалит неиспользуемый код из .dll, и он также будет оптимизировать привязки. Вы можете сделать это легко, добавив атрибут [LinkerSafe] в свои проекты привязки; и

  • Включите новый static registrar и включите SmartLink=true в свой атрибут [LinkWith]. Это позволяет компоновщику сделать лучшую работу для удаления собственного кода (что стало еще проще, если неиспользуемый код был удален из файла привязки .dll).

Оба варианта могут уменьшить конечный размер приложения. Вы можете посмотреть мой Evolve 2013 разговор по телефону Advanced iOS Build mechanics для получения более подробной информации о них.

+0

Отличный ответ! Большое спасибо! –

Смежные вопросы