2015-05-20 5 views
13

Я добавил общую структуру для совместного использования кода между расширением приложения и часов. Позже я удалил общую структуру, так как это вызвало множество проблем. Я могу построить и запустить приложение на iphone и смотреть. Однако, когда я отправляю в магазин приложений, я вижу эти две ошибки:Invalid Bundle, The bundle содержит недопустимые вложенные пакеты, содержит запрещенный файл 'Frameworks'

ERROR ITMS-90205: «Неверный пакет. В комплекте с« xxx WatchKit Extension.appex » содержатся запрещенные вложенные пакеты».

ERROR ITMS-90206: «Недопустимый комплект. В комплекте с« xxx WatchKit Extension.appex » содержится файл с недопустимым файлом« Рамки ».

Я пробовал все решения, упомянутые в stackoverflow (this, this, this) Ни один из них не работает для меня. Как исправить ошибку? Сообщение об ошибках от Apple действительно не дает понять, что мне нужно.

+0

Вам лучше предоставить подробную информацию о 'target' и' Emeddded Binaries' для каждой цели. –

+0

Вы нашли решение? –

+0

Возможный дубликат [Validation Error: Invalid Bundle. Пакет в ... содержит недопустимый файл «Рамки»] (http://stackoverflow.com/questions/25777958/validation-error-invalid-bundle-the-bundle-at-contains-disallowed-file-fr) –

ответ

6

Ошибка «ITMS-90206» был решен в этом посте: Validation Error: Invalid Bundle. The bundle at ... contains disallowed file 'Frameworks'

Установка должна быть изменена Да ни к чему в опции построения вашего WatchKit Extension:

Embedded Content Contains Swift Code: No 
+3

Это больше не работает само по себе в XCode 8. Вам также нужно установить «Always Embed» Swift Standard Libraries: NO " – dmclean

11

Я до сих пор не совсем понимаю, что вызывает проблему, но я наткнулся на ответ, который, наконец, решил проблему для меня.

https://github.com/CocoaPods/CocoaPods/issues/4203

В частности, сообщение от mikehouse окт 12, 2015 был решением проблемы.

Добавьте следующий сценарий запуска ко всем встроенным объектам расширения. В моем случае мне пришлось добавить скрипт запуска в качестве этапа сборки для моего расширения Today и расширения Apple Watch App.

cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" 
if [[ -d "Frameworks" ]]; then 
    rm -fr Frameworks 
fi 
+2

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

+0

Ключевым моментом является наличие сценария запуска в конце фазы сборки. –

6

Вышеуказанное не помогло мне.

Embedded Content Contains Swift Code: NO

ли на самом деле не делать ничего для меня.

Я испытал эту проблему с использованием динамической структуры. Моя динамическая структура содержала другие динамические рамки, которые сделали его OK иметь:

Embedded Content Contains Swift Code: YES

И вместо того, чтобы имеющие другие динамические структуры не установите значение Нет вместо этого. Но вместо того, что я должен был установить

Always Embed Swift Standard Libraries: NO

под Строительством фаз.

После установки этого параметра в YES генерируется папка frameworks, что приводит к сбою загрузки в ИТЦ.

+1

Установка обеих этих работ для меня. Спасибо – dmclean

+0

Это сработало, чтобы передать процесс загрузки (я получал ошибки до завершения загрузки), а затем получил электронное письмо от Apple: Мы обнаружили одну или несколько проблем с вашей недавней доставкой для «InstaStickers: Turn Instagram photos in stickers» , Для обработки вашей доставки необходимо исправить следующие ошибки: Недопустимый пакет. В пути поиска dylib нет одной или нескольких динамических библиотек, на которые ссылается ваше приложение. Как только эти проблемы были исправлены, вы можете повторно добавить исправленный двоичный файл. С уважением, Команда App Store –

0

Я имел структуру, которая строила со следующими параметрами сборки:

Always Embed Swift Standard Libraries: YES

Allow Non-Modular includes in Framework Modules: YES

Так что я изменил и на NO и снова строить рамки.

Always Embed Swift Standard Libraries: NO

Allow Non-Modular includes in Framework Modules: NO

Я добавил новую сборку рамки для моего проекта, так он загружен в ITunes Connect успешно.

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