Pytanie Nieprawidłowy pakiet, Pakiet zawiera niedozwolone zagnieżdżone pakiety, zawiera niedozwolony plik "Frameworki"


Dodałem wspólną strukturę do udostępniania kodu między aplikacją a rozszerzeniem oglądania. Później usunąłem wspólną strukturę, ponieważ powoduje ona wiele problemów. Mogę budować i uruchom moją aplikację na iPhonie i oglądaj. Jednak po przesłaniu do sklepu z aplikacjami widzę te dwa błędy:

ERROR ITMS-90205: "Nieprawidłowy pakiet. Pakiet w" xxx WatchKit Extension.appex " zawiera niedozwolone zagnieżdżone pakiety. "

ERROR ITMS-90206: "Nieprawidłowy pakiet." Pakiet w "xxx WatchKit Extension.appex" zawiera niedozwolony plik "Frameworks". "

Próbowałem wszystkich rozwiązań wymienionych na stackoverflow (to , to, to) Żaden z nich nie działa dla mnie. Jak naprawić błąd? Komunikaty o błędach z Apple naprawdę nie dają pojęcia, co powinienem zrobić.


14
2018-05-20 23:08


pochodzenie


Lepiej podaj szczegóły target i Emeddded Binaries każdego celu. - Lei Wang
Czy znalazłeś rozwiązanie? - Bartłomiej Semańczyk
Możliwy duplikat Błąd sprawdzania poprawności: nieprawidłowa paczka. Pakiet w ... zawiera niedozwolony plik "Frameworki" - Finn Gaida
Zobacz moją odpowiedź tutaj - stackoverflow.com/questions/29608264/... - Vijay Sharma


Odpowiedzi:


Nadal nie w pełni rozumiem, co powoduje problem, ale natknąłem się na odpowiedź, która ostatecznie rozwiązała problem.

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

Konkretnie, post przez mikehouse w dniu 12 października 2015 r. Był rozwiązaniem tego problemu.

Dodaj następujący skrypt uruchamiania do WSZYSTKICH osadzonych docelowych rozszerzeń. W moim przypadku musiałem dodać skrypt uruchamiania jako fazę kompilacji do mojego rozszerzenia Dzisiaj i mojego rozszerzenia aplikacji do aplikacji Apple Watch.

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

11
2018-01-03 08:17



Nie sądzę, że to jest rozwiązanie, ponieważ skrypt usunie folder nazwany jako framework i całą jego zawartość, a jeśli aplikacja będzie zależna od jakiejkolwiek struktury, która zostanie usunięta, aplikacja ulegnie awarii w środowisku wykonawczym. Zgodnie z moim rozumowaniem, musisz skontaktować się z twórcami tego środowiska. Mogą usunąć folder lub zmienić jego nazwę i odbudować framework. - er.vish
Kluczową sprawą jest posiadanie skryptu uruchamiania pod koniec fazy budowy. - Rishabh Tayal


Błąd "ITMS-90206" został rozwiązany w tym poście: Błąd sprawdzania poprawności: nieprawidłowa paczka. Pakiet w ... zawiera niedozwolony plik "Frameworki"

Ustawienie musi zostać zmienione z Tak na Nie w opcjach kompilacji rozszerzenia WatchKit:

Embedded Content Contains Swift Code: No

6
2017-09-30 12:14



To nie działa już samo w XCode 8. Musisz także ustawić "Zawsze włączaj Swift Standardowe biblioteki: NIE" - andrewmclean


Powyższe nie działa dla mnie.

Embedded Content Contains Swift Code: NO 

Naprawdę nic dla mnie nie zrobiłem.

Wystąpił ten problem przy użyciu dynamicznej struktury. Moja dynamiczna struktura zawierała inne dynamiczne struktury, które sprawiły, że było OK mieć:

Embedded Content Contains Swift Code: YES 

Zamiast tego, mając inne dynamiczne frameworki, ustaw zamiast tego na No. Ale zamiast tego musiałem ustawić

Always Embed Swift Standard Libraries: NO

w fazie budowy.

Ustawienie tego na TAK wygenerowało frameworks folder powodujący niepowodzenie przesyłania do ITC.


6
2017-09-27 14:59



Ustawienie dla mnie obu tych prac. Dzięki - andrewmclean
To działało, aby przejść proces przesyłania (otrzymywałem błędy przed zakończeniem przesyłania), a następnie otrzymałem wiadomość e-mail od firmy Apple: Wykryliśmy jeden lub więcej problemów z Twoją ostatnią dostawą dla "InstaStickers: Zamień zdjęcia z Instagrama na naklejki". Aby przetworzyć dostawę, należy poprawić następujące problemy: Nieprawidłowy pakiet - Jedna lub więcej bibliotek dynamicznych, do których odwołuje się twoja aplikacja, nie ma w ścieżce wyszukiwania dylib. Po naprawieniu tych problemów można ponownie dostarczyć poprawioną wersję binarną. Pozdrawiamy, Zespół App Store - Jorge Irún


Miałem framework, który został zbudowany z następującymi ustawieniami kompilacji:

Always Embed Swift Standard Libraries: YES

Allow Non-Modular includes in Framework Modules: YES

Więc zmieniłem oba na NO i ponownie zbuduj framework.

Always Embed Swift Standard Libraries: NO

Allow Non-Modular includes in Framework Modules: NO

Dodałem nową kompozycję do mojego projektu, więc udało jej się przesłać do iTunes Connect.


0
2017-08-04 20:31