Включить Bitcode не установлено значение «Да» после обновления watchOS 1 до watchOS4 в Xcode 9.1

Я получил это письмо от Apple, когда пытался отправить сборку после обновления watchOS. Bitcode раньше не было включено во всем приложении.

Уважаемый разработчик, Мы обнаружили одну или несколько проблем с вашей недавней доставкой для "event****". Для обработки доставки необходимо устранить следующие проблемы: Неверный исполняемый файл — исполняемый файл ProjectName.app/Watch/ProjectName WatchKit App.app/PlugIns/ProjectName WatchKit Extension.appex/ProjectName WatchKit Extension не содержит bitcode. Хотя от вас не требуется исправлять следующие проблемы, мы хотим, чтобы вы знали о них: WatchKit 1.0 — в вашей предыдущей версии использовалось расширение для Apple Watch, а в текущей — нет. Пользователи, которые не обновили свои Apple Watch до watchOS 2 или более поздней версии, могут потерять доступ к своему расширению Apple Watch. После внесения необходимых исправлений вы можете повторно доставить исправленный двоичный файл.

Я погуглил и перешел по этой ссылке, которая кажется мне полезной, но это не так.

Биткод WatchOS3 — как сгенерировать

У меня есть одно сомнение: в моем проекте для целей iOS настройки bitcode находятся в опции сборки в настройках сборки, но для целей watchOS они входят в пользовательские настройки в настройках сборки.

Когда я попытался установить для него значение «да» и продолжить архивацию сборки, во время экспорта файла IPA он показывает содержимое цели, в которой всегда отображается bitcode, не включено. Почему это происходит даже после установки значения да, я совершенно сбит с толку.

Я хочу установить значение битового кода «да» только для целей watchOS.

Спасибо


person AG.29    schedule 11.12.2017    source источник


Ответы (1)


Поскольку я решил эту проблему, устранив небольшую путаницу, которая может вызвать сильный стресс у любого, как я. Apple заявляет: Для приложений iOS биткод используется по умолчанию, но не является обязательным. Для приложений watchOS и tvOS требуется биткод. Если вы предоставляете битовый код, все приложения и фреймворки в комплекте приложений (все цели в проекте) должны включать битовый код. Поэтому, если ваше приложение не имеет целей для WatchOS (в моем случае версия watchOS4) тогда можно включить или отключить настройки биткода в соответствии с вашими требованиями. Но в любом случае, если у вас есть цели watchOS в вашем приложении, у вас нет другого варианта, кроме как включить битовый код для целей всего приложения, и тогда только Apple может принять вашу сборку для Appstore.

Если вы включите битовый код для целей watchOS и отключите настройку битового кода для других целей, тогда сборка может быть заархивирована, но настройка битового кода внутри сборки всегда будет показывать «НЕ ВКЛЮЧЕНО», и Apple отклоняет ее.

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

person AG.29    schedule 28.12.2017
comment
Ссылка на соответствующую документацию: help.apple.com/xcode/mac/current/# /devbbdc5ce4f - person deadbeef; 20.03.2018