Invalid Bundle, В комплект поставки входят запрещенные вложенные пакеты, содержит запрещенный файл "Frameworks"

Я добавил общую структуру для совместного использования кода между расширением приложения и часов. Позже я удалил общую структуру, так как это вызвало множество проблем. Я могу построить и запустить мое приложение на iphone и смотреть. Однако, когда я отправляю в App Store, я вижу две ошибки:

ОШИБКА ITMS-90205: "Недействительный пакет. Пакет в 'xxx WatchKit Extension.appex' содержит запрещенные вложенные расслоения. "

ОШИБКА ITMS-90206: "Недействительный пакет. Пакет в 'xxx WatchKit Extension.appex' содержит запрещенный файл "Рамки".

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

Ответ 1

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

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

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

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

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

Ответ 3

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

Embedded Content Contains Swift Code: NO

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

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

Embedded Content Contains Swift Code: YES

И вместо того, чтобы другие динамические фреймворки устанавливали его вместо Нет. Но вместо этого мне пришлось установить

Always Embed Swift Standard Libraries: NO

в разделе "Фазы сборки".

Если для этого параметра установлено значение YES, генерируется папка frameworks, вызывающая сбой при выходе ITC.

Ответ 4

У меня была структура, построенная со следующими настройками сборки:

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.