Błąd itms-90035 - Xcode

83

Opracowałem aplikację phonegap, która działa absolutnie dobrze na iPhonie. Teraz chcę przesłać aplikację do sklepu z aplikacjami. Oto procedura, którą wykonuję, aby przesłać moją aplikację:

  1. Otwórz Xcode i zarchiwizuj projekt
  2. Kliknij na walidację (co się powiedzie)
  3. Kliknij Prześlij do Appstore (gdzie pojawia się następujący błąd)

wprowadź opis obrazu tutaj

Do wczorajszej nocy nawet nie otrzymywałem tego błędu, a dziś rano archiwizuję projekt i otrzymuję ten błąd. Nie wiem, na czym polega problem.

To jest ostatni etap, który powstrzymuje mnie przed przesłaniem aplikacji i jest bardzo frustrujący, próbowałem wyszukać ten sam kod błędu na forum stackoverflow i nie mogłem znaleźć ani jednego posta, który ma dokładnie ten sam kod błędu co mój, co jest bardzo dziwne.

Proszę pomóż :)

Nikhil Rao
źródło
1
Czy na pewno Twoje ustawienia podpisywania kodu są prawidłowe?
Anil Varghese
Nie jestem tego pewien, jak to sprawdzić? Czy możesz mnie tym pokierować?
Nikhil Rao
2
Nikhil, od rana też dostaję ten sam błąd. Właśnie próbowałem „zweryfikować” starą wersję mojej aplikacji, która została JUŻ ZATWIERDZONA I PRZESYŁANA. Poza oczekiwanymi błędami, których się spodziewam (wersja już istnieje w AppStore, wersja mojej aplikacji jest zamknięta do modyfikacji od czasu jej wydania itp.) Ciągle otrzymuję ITMS-90035. Potwierdziłem również, że moje certyfikaty nie zostały odwołane (z centrum programistów Apple). Później, dzisiaj, poinformuję cię o moich odkryciach i będę monitorować ten post, aby usłyszeć twój. Dzięki :)
Nili
1
To samo tutaj, wczoraj przesłałem wiele kompilacji bez błędów. Kody i ustawienia nie uległy zmianie.
VinZen
3
Nikhil rozwiązany przez usunięcie pliku .sh z mojego celu, jak sugeruje poniższa odpowiedź.
Nili

Odpowiedzi:

77

Miałem ten sam problem, okazuje się, że jedna z moich bibliotek zainstalowanych przez bower zawiera .shplik, który nie jest potrzebny. Właśnie usunąłem plik i wszystko zostało pomyślnie przesłane.

Wygląda na to, że Apple wymusza teraz na programistach .shpodpisywanie plików w swoich aplikacjach. Ponieważ aplikacja Cordova / Phonegap nie potrzebuje żadnego z nich, możesz je bezpiecznie usunąć.

Kate Miháliková
źródło
3
To jedyna poprawna odpowiedź. Nawiasem mówiąc, nie musisz usuwać pliku. Po prostu wyklucz go ze swoich celów.
Inferis
1
Mam tylko jeden plik .sh w moim projekcie pod platformami> ios> cordova> lib> copy-www-build-step.sh. Czy to ten, który mam usunąć? Czy tylko jeśli są dwa? Dzięki!
shan
5
Dzięki!!! To jest poprawna odpowiedź. W moim przypadku był to plik Crittercism dsym_upload.sh, który był kopiowany do moich paczek przez CocoaPods, co stało się przekleństwem w mojej firmie.
toofah
6
Mam Crittercism dołączony przez CocoaPods i ma skrypt dsym_upload.sh, który powoduje również ten błąd. Więc na razie właśnie zakomentowałem tę linię w pliku Pods-resources.sh: install_resource "CrittercismSDK / CrittercismSDK / dsym_upload.sh"
sasha_nec
Jeśli problemem jest crittercism i używasz strąków kakao, wypróbuj poprawkę, którą dodałem jako komentarz tutaj: stackoverflow.com/questions/29816930/ ...
jeyben Kwietnia
9

Zdarzyło mi się to po aktualizacji do najnowszego Xcode (6.3.1). To nie tylko pliki .sh, ponieważ otrzymywałem te błędy dotyczące skryptów węzłów. Wygląda na to, że KAŻDY plik zaczynający się od #! / Usr / bin / env spowoduje te błędy. Udało mi się spowodować dowolne błędy, dodając #! do losowego pliku.

Tymczasowe usunięcie dyrektywy #! / Usr / bin / env z góry plików będzie działać, ale będziesz potrzebować lepszego długoterminowego rozwiązania :)

Będziesz musiał to naprawić, zajmując się każdym plikiem skryptu indywidualnie, aby sprawdzić, co ma sens w Twoim projekcie.

Jak wspomniano powyżej, może to być tymczasowy problem po stronie Apple, niekoniecznie związany z wersją Xcode.

cayleyh
źródło
8

EDYCJA: udało mi się uniknąć tego błędu, usuwając pliki .sh moich projektów z mojego celu .

Jak dotąd powiedziałbym, że to błąd po stronie Apple.

Wczoraj przesłałem aplikację bez żadnego problemu, dziś odrzuciłem, aby przesłać nieco zmieniony plik binarny, ale teraz, podobnie jak Ty, napotykam ten sam błąd. Myślałem, że jest to związane, Xcode6.3.1ponieważ zainstalowałem go dziś rano, więc zainstalowałem Xcode 6.3.0ponownie, ale błąd pozostał. Następnie wszystko dokładnie sprawdzam:

  • Certyfikaty
  • Profile aprowizacji
  • Stan aplikacji iTunes connect

Ale jak dotąd bez sukcesu.

Fakt, że wyszukiwarka Google „itms-90035” zwraca tylko 1 wynik, sprawia, że ​​myślę, że może to być jakiś tymczasowy incydent.

Ferschae Naej
źródło
Zrobiłem wszystko, co zrobiłeś, i jestem całkowicie tego samego zdania co Twoja. Całkowicie się zgadzam, trzymam kciuki, mam nadzieję, że wcześniej rozwiążą ten problem.
Nikhil Rao
3

Jak powiedzieli inni, problem wydaje się być spowodowany dołączeniem plików o nazwie „upload-dsym.sh” do pakietu aplikacji. Oto kroki, które podjąłem, aby ominąć ten błąd: Poszedłem do ustawień projektu w Xcode i wybrałem ikonę aplikacji „Cel”. Wybrano zakładkę Fazy budowy. Kliknięto „Kopiuj zasoby paczki”. Szukał kopiowanego pliku o nazwie „upload-dsym.sh”. Usunąłem ten plik, a następnie przesyłanie poszło dobrze.

DCG
źródło
Proces opisany w tej odpowiedzi to szczegółowa ścieżka do usunięcia pliku * .sh z podpisanej aplikacji. W moim przypadku zostało buildtime.shwyprodukowane przez środowisko Worklight. Ponieważ jest to do tej pory stosunkowo „nowy” problem, wygląda na to, że Apple rzeczywiście coś zmieniło w procesie
przesyłania
3

Ma to coś wspólnego z włączeniem .sh files, nie jest to naprawdę oczywiste.


W naszym przypadku była to biblioteka AudioKit. README mówi:

W większości przypadków podczas tworzenia dla systemu iOS lub tvOS, niezależnie od tego, jak zainstalujesz framework, będziesz musiał dodać fazę uruchamiania do celu projektu za pomocą następującego skryptu:

"$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AudioKit.framework/fix-framework.sh"


Czasami nie widzisz ich bezpośrednio u celu build phases. Niektóre biblioteki innych firm mogą powodować ten błąd, ponieważ również sobie z nimi radzą .sh files.

Sprawdź pliki bibliotek / podów innych firm, README aby uzyskać więcej informacji.

Jakub Truhlář
źródło
3

W moim przypadku pojawił się ten błąd, ponieważ nazwa wyświetlana aplikacji zawierała znak specjalny. Nie rozumiem, dlaczego nie można wygenerować odpowiednich komunikatów o błędach.

RunLoop
źródło
2

Mam ten sam problem. Następnie usuwam plik .sh. I ponownie przesyłam moją aplikację. Odnoszący sukcesy!

MppleHero
źródło
2

Ten problem został rozwiązany w CrittercismSDK CocoaPods 5.2.0: https://github.com/CocoaPods/Specs/blob/master/Specs/CrittercismSDK/5.2.0/CrittercismSDK.podspec.json

Możesz zaktualizować do sdk 5.2.0 lub usunąć plik i usunąć następujące wiersze z pliku Pods-resources.sh:

    if [[ "$CONFIGURATION" == "Debug" ]]; then 
install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 
fi 
if [[ "$CONFIGURATION" == "Release" ]]; then 
install_resource "CrittercismSDK/CrittercismSDK/dsym_upload.sh" 
fi 

Dzięki

JennieOhyoung
źródło
1

Mieliśmy dzisiaj bardzo podobny problem i rozwiązaliśmy go.

BŁĄD ITMS-90035: „Nieprawidłowy podpis. Brak zapieczętowanego zasobu lub jest on nieprawidłowy. Plik binarny w ścieżce [MyNiftyApp.app/MyNiftyApp] zawiera nieprawidłowy podpis. [...]”

Używamy Jenkins-CI do procesu kompilacji wraz z wtyczką xcode. Kiedy przejrzałem dziennik kompilacji Jenkinsa, znalazłem ten komunikat o błędzie:

file added: /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app/MyNiftyApp.app
file modified: /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app/Assets.car
]
Codesign check fails : /Users/Shared/Jenkins/Home/workspace/RELEASE_STAGE_my-nifty-app/build/MyNiftyApp.app: a sealed resource is missing or invalid

Po wyszukaniu tego Assets.car znalazłem ten post: https://issues.jenkins-ci.org/browse/JENKINS-21253 Użytkownik miał podobny problem, mógł go rozwiązać dezaktywując następującą opcję wtyczki "XCode -> Ogólne Ustawienia kompilacji -> Wygeneruj archiwum? ”(Wcześniej było prawdą, teraz jest fałszem).

Przynajmniej to rozwiązało problem po naszej stronie - może poprowadzi cię we właściwym kierunku.

seafoxx
źródło
1

Rozwiązałem ten problem, po prostu usuwając „binarne” pliki w błędzie.

Dla Ciebie jego www / js / release.sh.

Dla mnie były to dwa redundantne pliki bower, plik .sh i plik .js, który znajdował się w folderze "bin" (może dlatego uważał, że to plik binarny?).

Na marginesie, wydaje się, że nadal można kontynuować proces przesyłania, klikając po prostu Wyślij po wyświetleniu błędów w module ładującym aplikacje.

Jørgen Svendsen
źródło
1

Otrzymałem ten sam błąd, gdy próbowałem przesłać moją aplikację za pomocą ApplicationLoader 3.0. Aktualizacja do ApplicationLoader 3.1 (tj. Najnowszej) rozwiązała problem.

steve hannah
źródło
Używam Application Loadera, wersja 3.1 (670)i nadal mam problem.
antogerva
1

W katalogu platform uruchom:

grep -r '#!/usr/' *

Spowoduje to wyświetlenie wszystkich plików, które można wykonać. Zwykle obejmuje to pliki .sh i node.

Z wyników znajdź pliki, które znajdują się w folderze twojego projektu (np. Mój folder projektu to platformy / ios / www / *) i usuń je, pozostawiając resztę.

Ridan
źródło
1

Miałem dokładnie ten sam problem. Pisałem błąd w pliku myApp.app/myApp Decyzja: poszukaj plików, które zaczynają się od znaków specjalnych lub znaków innych niż angielski. Znalazłem, usunąłem i wszystko działało!

Ilya Frolov
źródło
0

Miałem ten sam problem, używając Xcode 6.3.1 i 6.4 beta. Mój powiedział, że to mój plik main.o. Zajrzałem do zasobów paczki kopii iz jakiegoś powodu znajdował się tam główny plik mojego projektu. Usunąłem go i zarchiwizowałem ponownie, aby wysłać go do itunes connect w celu przetestowania i przesłanie dobrze. Zajęło mi 3 godziny, zanim zrozumiałem, że to ten głupi plik. Strona główna to pomaga. Wygląda na to, że musisz naprawdę zwracać uwagę na to, co wysyłasz w tym „Skopiuj zasoby paczki” w fazach kompilacji. Jakikolwiek plik mówi ci o problemie, usuń go z tego obszaru i spróbuj.

felixDkatt
źródło
0

W moim przypadku wystąpił błąd podczas przesyłania ponownie podpisanego pliku ipa. Okazało się, że przyjrzałem się pakietowi aplikacji w Finderze i utworzył on plik .DS_Store (było to po ponownym podpisaniu codesign, który zgłosiłby skargę, gdyby plik był obecny w momencie podpisywania).

Po usunięciu pliku .DS_Store przesyłanie powiodło się.

karstenr
źródło
0

Uruchom następujące polecenie (w systemie Mac): codesign --verify -vvvv <your_application>.app

próba:

codesign --verify -vvvv project.app
project.app: a sealed resource is missing or invalid
file missing: /Users/iHTCboy/workspace/Payload/project.app/.DS_Store

Wygląda na to, że w zasobach mojej aplikacji znajduje się ukryty plik .DS_Store. Poszukaj go i usuń, a następnie spróbuj ponownie.

to jest praca dla mnie

iHTCboy
źródło