Żadna z powyższych odpowiedzi nie zadziałała dla mnie. To dlatego, że błąd nie został spowodowany przez aplikację nadrzędną ani jej rozszerzenie. Raczej jedna z powiązanych bibliotek była winna.
Aby potwierdzić, najpierw zarchiwizuj za pomocą Xcode, a następnie za pomocą Organizatora wybierz wpis i zlokalizuj za pomocą Pokaż w Finderze. Spowoduje to wyświetlenie .xcarchive
pliku.
Wybierz ten plik i wybierz „Pokaż zawartość pakietu”.
Wybierz .app w folderze Produkty / Aplikacje i ponownie wybierz „Pokaż zawartość pakietu”.
Zlokalizuj nieprawidłowy moduł w folderze Frameworks. Na przykład, jeśli błąd to:
ERROR ITMS-90206: "Invalid Bundle. The bundle at 'MyApp.app/Frameworks/MyLib.framework' contains disallowed file 'Frameworks'."
Wtedy Frameworks/MyLib.framework
prawdopodobnie będzie widoczny:
../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
Są one obecne, ponieważ połączona biblioteka - lub moduł - który zawiera aplikacja nadrzędna ma rozszerzenie EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
Zlokalizuj moduł zależny w Xcode i zaktualizuj flagę:
Pamiętaj, że po rozwiązaniu tego problemu aplikacja może nadal zostać odrzucona z e-mailem z wyjaśnieniem ze sklepu iTunes Store:
Invalid Swift Support - The Watch OS application has Swift libraries at both...
To znowu wraca do EMBEDDED_CONTENT_CONTAINS_SWIFT
flagi. Upewnij się, że tylko aplikacja nadrzędna ma to ustawienie YES
. Zarówno aplikacja WatchKit, jak i rozszerzenie muszą mieć tę flagę ustawioną na NO
. Jest to szczegółowo opisane w odpowiedzi @ Mike'a powyżej.