Жодна з наведених відповідей не працювала для мене. Це було через те, що помилка була викликана не батьківським додатком або його розширенням. Вірніше, одна з пов'язаних бібліотек була винною.
Для підтвердження спочатку архівуйте за допомогою Xcode, а потім за допомогою Організатора виберіть запис та знайдіть його за допомогою Show in Finder. Це покаже .xcarchive
файл.
Виберіть цей файл і оберіть "Показати зміст пакета".
Виберіть .app у папці Продукти / Програми та знову виберіть "Показати зміст пакета".
Знайдіть кривдний модуль у папці Frameworks. Наприклад, якщо помилка:
ERROR ITMS-90206: "Invalid Bundle. The bundle at 'MyApp.app/Frameworks/MyLib.framework' contains disallowed file 'Frameworks'."
Тоді в Frameworks/MyLib.framework
наступному, ймовірно, буде видно:
../Frameworks/libswiftContacts.dylib
../Frameworks/libswiftCore.dylib
../Frameworks/libswiftCoreData.dylib
../Frameworks/libswiftCoreGraphics.dylib
../Frameworks/libswiftCoreImage.dylib
../Frameworks/libswiftCoreLocation.dylib
../Frameworks/libswiftDarwin.dylib
../Frameworks/libswiftDispatch.dylib
../Frameworks/libswiftFoundation.dylib
../Frameworks/libswiftLocalAuthentication.dylib
../Frameworks/libswiftObjectiveC.dylib
../Frameworks/libswiftPassKit.dylib
../Frameworks/libswiftUIKit.dylib
../Frameworks/libswiftWebKit.dylib
Вони наявні тому, що пов'язана бібліотека - або модуль - до складу батьківського додатка містить EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
Знайдіть залежний модуль у Xcode та оновіть прапор:
Зауважте, що подолавши цю проблему, додаток все одно може бути відхилено за допомогою пояснювального електронного листа від iTunes Store:
Invalid Swift Support - The Watch OS application has Swift libraries at both...
Знову це повертається до EMBEDDED_CONTENT_CONTAINS_SWIFT
прапора. Переконайтеся, що для цього лише батьківського додатка встановлено YES
. На цьому додатку та розширенні WatchKit має бути встановлено цей прапор NO
. Це детально описано у відповіді @ Майка вище.