Включить параметр сборки биткода, отсутствующий в цели

В моем проекте есть 2 цели: одна для iOS, а другая для watchOS.
В настройках сборки проекта в разделе Параметры сборки я установил для параметра «Включить биткод» значение ДА.
В цели iOS параметр «Включить биткод» установлен также установлено значение YES.
Однако целевая система watchOS не имеет параметра «Включить биткод».

Когда я архивирую свой проект и отправляю его в iTunesConnect, он отклоняется, и я получаю электронное письмо с упоминанием двух ошибок:

1-я ошибка:
Недопустимый исполняемый файл пакета. Исполняемый файл xxxxx содержит неполный битовый код. Чтобы скомпилировать двоичные файлы с полным биткодом, откройте Xcode и выберите «Архив» в меню «Продукт».

2-я ошибка:
Неверное выравнивание сегментов. Бинарный файл приложения по адресу xxxxx не имеет правильного выравнивания сегментов. Попробуйте перестроить приложение с помощью последней версии Xcode.

К первой ошибке:
xxxxx — это моя цель watchOS, где у меня нет возможности включить биткод.

Ко второй ошибке:
У меня последняя версия Xcode.

Какие-либо предложения?

EDIT:
Можно установить отсутствующий параметр «Включить биткод» в качестве определяемого пользователем флага (ENABLE_BITCODE = YES) в настройках сборки цели. Однако ошибка осталась прежней...


person Reinhard Männer    schedule 08.12.2017    source источник


Ответы (1)


Для исправления ошибок требовалось две вещи:

Судя по всему, Xcode 9.2 имеет только для iOS настройки сборки Enable Bitcode в разделе Параметры сборки. Для целей Watch Extension требуется Определяемый пользователем параметр сборки ENABLE_BITCODE, установленный на YES.

Кроме того, у меня были неправильные пути в моем рабочем пространстве.
В моем рабочем пространстве есть 2 проекта, каждый из которых предназначен для iOS и watchOS. 1-й проект — это мое приложение, а 2-й проект — это мой фреймворк, используемый приложением.
Служба технической поддержки разработчиков Apple предложила удалить все ссылки моего приложения на фреймворк в навигаторе проектов Xcode, а затем добавить обратно фреймворки для обоих целевых приложений в разделе Общие/встроенные двоичные файлы.

Это позволило мне создать действительный архив, который можно было отправить в App Store и который был принят.

person Reinhard Männer    schedule 20.12.2017
comment
Удаление ссылки на фреймворки, а затем добавление их обратно работает для меня, спасибо! Итак, кажется, ошибка Xcode... - person Kjuly; 18.01.2020