2015-09-23 2 views
6

Перед тем, как iOS 9, наш размер IPA был примерно 6 МБ. После архивирования и экспорта нашей IPA через Xcode 7 наш IPA увеличился примерно до 17 МБ. При дальнейших исследованиях мы выяснили, что включение опции «Биткод» в настройках экспорта является причиной большого скачка размера файла.Включение битового кода для iOS 9 увеличивает размер IPA 3x, это размер в магазине приложений?

Мой вопрос заключается в следующем: если мы включим эту опцию, размер нашего IPA составит 17 МБ в магазине? Или Apple делает что-то с пакетом, чтобы сделать его примерно того же размера, что и раньше (6 МБ).

Немного информации о Биткоде прямо сейчас, и я хотел бы получить информацию перед отправкой в ​​магазин. 6 МБ и 17 МБ достаточно разницы.

+0

Не идея, чтобы уменьшить размер приложения на устройствах, а не магазин приложений? – trojanfoe

+1

Хорошо, ваше приложение включает в себя бит-код в нем с включенной опцией, поэтому имеет смысл, что он делает размер больше. Я бы предположил, что биткод не входит в файл, который пользователи будут загружать из магазина приложений, но я не могу это подтвердить. – dan

+3

Это то, что я хочу знать. Я не выпускаю с помощью bitcode, если это означает, что мои пользователи должны сидеть там и загружать приложение, это 3 раза того, что должно быть. Я бы, вероятно, потерял загрузки. Меньше - лучше. Мне было все равно, сколько места он занимает на серверах Apple. Привинтите их. – FrostRocket

ответ

12

Биткод - это промежуточное представление скомпилированной программы. Включение этого параметра увеличит размер сборки (ipa) на лицевой панели разработчика.

iOS может работать на разных процессорах (i386, x86_64, arm, arm64 и т. Д.), Если вы хотите запускать программу на любой установке iOS, тогда программа должна содержать объектный код для каждой платформы. Когда вы запускаете программу, ОС читает «Таблицу содержимого» и ищет фрагмент, соответствующий процессору ОС. Например, если вы запустите операционную систему на x86_64, тогда ОС загрузит код объекта для x86_64 в память и запустит программу.

В настоящее время все приложения в AppStore содержат объектный код для процессоров arm и arm64. Кроме того, сторонние библиотеки или фреймворки содержат объектный код для i386, x86_64, arm и arm64, поэтому вы можете использовать их для тестирования приложения на устройстве и/или симуляторе.

Как работает биткод? Когда вы отправляете приложение (включая биткод), «BlackBox» от Apple перекомпилирует его для каждой поддерживаемой платформы и удаляет любой «бесполезный» объектный код, поэтому AppStore имеет копию приложения для каждого процессора. Когда конечный пользователь хочет установить приложение - она ​​устанавливает только версию для конкретного процессора, без каких-либо неиспользуемых материалов.

Биткод может сэкономить до 50% дискового пространства на каждую программу.

Refere: http://lowlevelbits.org/bitcode-demystified/