Включить биткод в Xamarin iOS

Я разработал кросс-платформу для iOS и Android, используя Xamarin Forms. Мое приложение использует несколько экранов и некоторые сторонние зависимости, такие как Facebook, карты Google и Firebase.

Все работает хорошо, пока я не пошел компилировать его в режиме релиза. Предполагая, что я хочу поддерживать как armv7, так и arm64, вот размер приложения: * без привязки и оптимизации: 103 МБ. * с полной оптимизацией (ссылка все + LLVM): 73мв.

С оптимизацией и без armv7 у меня получается 40мб - это мой желаемый размер результата.

Чтобы решить эту проблему, я подумал, что должен включить компиляцию биткода. Однако даже с альфа-инструментами, включая визуальную студию для Mac и моно v5, я получаю сообщение «платформа не поддерживается: iOS» при включении этой функции. С другой стороны, я копался в исходном коде и увидел, что моно это позволяет, и, кроме того, они позволяют смотреть и смотреть приложения для телевидения, для которых требуется биткод...

Кто-нибудь знает, как включить его для iOS? Я буду огромной (!) помощью для меня!

Спасибо!


person OzB    schedule 10.04.2017    source источник


Ответы (1)


Поэтому я не смог найти никакого решения, и мне пришлось отправить свое приложение без поддержки битового кода. Тем не менее, для всех, кто может решить эту проблему в будущем и захочет использовать биткод из-за размера приложения, я хочу пояснить следующее: биткод, как часть iOS 9 App Thining, имеет отношение только к будущему. релизы архитектуры, то есть Apple будет автоматически нарезать ваше приложение arm7+arm64, когда вы загрузите его в App Store, без каких-либо действий с вашей стороны (кроме связывания вашего кода («Связать все») и поддержки обеих архитектур).

Вы можете проверить предполагаемый размер приложения, но не следует делать это в Xamarin Studio, так как он показывает универсальную версию приложения, а не утонченную версию для конкретного устройства. Чтобы проверить, какой размер будет у устройства X, вам следует:

  • Создайте профиль Ad-Hoc для распространения на сайте Apple Developer Site.
  • Создайте архив в Xamarin Studio.
  • Откройте Xcode (если он был ранее открыт - закройте повторное открытие).
  • Откройте органайзер.
  • Нажмите «Экспорт», затем «Специальный».
  • Вы должны увидеть диалоговое окно с вопросом, хотите ли вы универсальный ipa или ipa для конкретного устройства. Универсальный IPA – это общий IPA, содержащий данные для каждого устройства, поэтому вы можете отправлять их всем. Размер этого ipa будет соответствовать размеру, который вы видели в Xamarin Studio (до сжатия). IPA для конкретного устройства — это ipa для конкретного устройства после выполнения Thining. Это ipa, который будут скачивать ваши пользователи. Итак - выберите устройство, которое хотите проверить.

Теперь вы сможете получить ipa для конкретного устройства, размер которого соответствует этому конкретному устройству. Обратите внимание, что та же информация появится в iTunes Connect после того, как вы загрузите свою сборку.

См.: Пример подключения iTunes

Подводя итог: В настоящее время вы не можете использовать бит-код в приложениях Xamarin (очевидно, iOS и Forms). Эта опция существует в моно, но не включена (она была явно отключена в поставляемой среде выполнения моно). Однако это не означает, что предполагаемый размер приложения, отображаемый в Xamarin Studio, будет размером вашего пользовательского приложения, поскольку он зависит от функции App Thining в iOS 9 и более поздних версий, для активации которой не требуется битовый код.

person OzB    schedule 12.04.2017