jak rozwiązać problem „Polecenie / bin / sh nie powiodło się z kodem zakończenia 1” w telefonie iPhone


93

W mojej aplikacji użyłem biblioteki statycznej kakao. Podczas kompilacji biblioteki pojawił się następujący błąd:

Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
    bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
    libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1

Zrzut ekranu błędu

Jak mogę to naprawić?

Odpowiedzi:


208

 Cel -> Fazy budowy -> przykłady aktualizacji

Kliknij pole wyboru Uruchom, jeśli nie jest zaznaczone.


2
To pole wyboru może znajdować się pod Fazy kompilacji → Pakiet Reaguj natywny kod i obrazy.
rishat

4
dla mnie działa to podczas budowania / instalowania aplikacji na telefonie, ale nie podczas archiwizacji
Adeem

Ta odpowiedź jest poprawna. Ale po ustawieniu trybu Generc iOS Device do uzyskiwania kompilacji fr all ... get the errr again @Harshad
reza_khalafi

@reza_khalafi upewnij się, że masz czyste dane, a także usuń dane pochodne. następnie spróbuj ponownie.
Harshad

1
@Harshad Działa podczas budowania, ale nie do archiwizacji
NGB,

63

Miałem ten problem, ponieważ odmówiłem dostępu do pęku kluczy i aby go rozwiązać, musisz otworzyć pęku kluczy, Następnie kliknij kłódkę w prawym górnym rogu ekranu, aby ponownie go zablokować, po czym możesz zarchiwizować i zadziała


3
DZIĘKUJĘ BARDZO! Btw, przynajmniej dla mnie zamek jest po lewej stronie. Był otwarty i musiał go zamknąć.
Eironeia

Udostępniłem to rozwiązanie ze źródła, którego niestety nie pamiętam.
Salem Binmusaed

Otrzymałem kod zakończenia 134, gdy próbowałem zarchiwizować produkt, ale mogłem zainstalować aplikację na urządzeniu, otworzyłem pęku kluczy, ale czy możesz znaleźć blokadę gdziekolwiek, moja Xcode w wersji 9.2 naprawdę potrzebuje pomocy
showmyroutes

43

Usuwanie „danych pochodnych” działało dla mnie.

W Xcode przejdź do Plik> Ustawienia obszaru roboczego> kliknij strzałkę obok ścieżki pliku danych pochodnych> przenieś folder „Dane pochodne” do kosza.


1
Do jakiej wersji Xcode masz na myśli? ... Nie mam menu / okien ani opcji, do których się
odnosisz

2
jego w oknach-> Organizator nie projekty Windows
CthulhuJon

działa, ale trzeba wyczyścić projekt i zrestartować Xcode dla mnie
Hosny

1
Plik-> Ustawienia obszaru roboczego ...-> Dane pochodne. Kliknij strzałkę na końcu ścieżki. Kliknij folder prawym przyciskiem myszy i przenieś do kosza. iOS 10.12.6
Augustas

30

Wygląda na to, że uruchamiasz skrypt powłoki i nie może on znaleźć konkretnego pliku. Spójrz, Target -> Build-Phases -> RunScriptczy uruchamiasz skrypt.

Możesz sprawdzić, czy skrypt jest uruchomiony w wyniku kompilacji (w panelu nawigacyjnym). Jeśli twój skrypt zrobi coś źle, faza kompilacji zostanie zatrzymana.


SKM Zmieniłem odpowiedź. Może to Xcode, który stworzył ten skrypt, aby znaleźć Twoją bibliotekę statyczną. Nawiasem mówiąc, nie kompiluje się, ponieważ nie może znaleźć pliku w /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a. Więc upewnij się, że to tam
umieścisz

19

Miałem ten sam problem i naprawiłem go. Wykonaj poniższe czynności, aby rozwiązać problem w Xcode 6.4.

  1. Kliknij Pokaż nawigator projektu w oknie Nawigatora
  2. Teraz wybierz projekt bezpośrednio pod oknem nawigatora
  3. Wybierz Cele
  4. Wybierz kartę Fazy ​​budowy
  5. Otwórz opcję rozwijaną Uruchom skrypt
  6. Zaznacz pole wyboru Uruchom skrypt tylko podczas instalacji

Zrzut ekranu z krokami

Teraz wyczyść swój projekt (cmd + shift + k) i skompiluj swój projekt.


To powinna być akceptowana odpowiedź. Na problem bin / sh to jest rozwiązanie.
Yash Bedi

9

Czyszczenie folderu kompilacji (Cmd + Shift + Alt + K) działało dla mnie


3

1) Usuń folder pod i plik .xcworkspace 2) Otwórz folder w terminalu 3) Wpisz „pod install”


1

Czy dodałeś bibliotekę .a do projektu xcode? (projekt -> fazy budowy -> Połącz plik binarny z bibliotekami -> kliknij „+” -> kliknij „dodaj inne” -> wybierz swoją bibliotekę)

A może biblioteka nie jest kompatybilna z symulatorem, czy próbowałeś kompilować dla iDevice (nie symulator)?

(Już walczyłem z drugim problemem, mam bibliotekę, która nie działała z symulatorem, ale z prawdziwym urządzeniem, które kompiluje ...)



0

Próbowałem zrestartować Xcode (7) i nic ( czy próbowałeś go wyłączyć i ponownie włączyć rozwój iOS :-)). Następnie spróbowałem ponownie uruchomić moją skrzynkę i to zadziałało.

W moim przypadku skrypt zawodził podczas kopiowania pliku z lokalizacji do innej. Myślę, że mogło to być związane z wkręcaniem Findera w prawa do zapisu w niektórych folderach.


0

U mnie ten błąd występował, ponieważ zmieniłem numer wersji z 1 na 1.0 i numer kompilacji z 6 na 1.1, kiedy wyciągałem kod z drzewa źródłowego. Po prostu zmieniłem go z powrotem i zmieniłem numer kompilacji z 6 na 7 i działało dobrze.


0

W moim przypadku była spacja w ścieżce, która powodowała awarię skryptu.Jeśli używasz takich zmiennych, jak $PROJECT_DIRlub $TARGET_BUILD_DIRto je zamień "$PROJECT_DIR"lub "$TARGET_BUILD_DIR"odpowiednio.Po dodaniu cudzysłowów mój skrypt działał pomyślnie.


0

po prostu umieść skrypt w pliku i uruchom ten plik z 2> / dev / null na końcu linii poleceń!

W ten sposób, jeśli wystąpi jakikolwiek problem z poleceniem, nie zatrzyma ono kompilacji xcode

w moim przypadku wykonałem tylko polecenie odinstalowania mojej poprzedniej kopii aplikacji z podłączonego iPhone'a, więc może to spowodować błąd, jeśli iPhone'a tam nie ma. Aby to rozwiązać:

$mobiledevice uninstall_app com.my.app 2>/dev/null



0

Zrobiłem wszystko powyżej i spędziłem godzinę nad tym problemem.

Wypróbowałem wszystko powyżej, a także ponownie uruchomiłem Xcode.

Wreszcie zrestartowałem komputer i wszystko znów działa normalnie!


1
nic nie dodałeś do tego postu z odpowiedzią. Ponowne uruchomienie komputera może być komentarzem, ponieważ nie pomaga wyjaśnić, co było nie tak.
Bojan Petkovic

Jakiś dziwny problem, usunięte dane pochodne i przełączony / nieprzełączony nowy system kompilacji. Ale po ponownym uruchomieniu byłem w porządku!
Oritm

0

Wymienię rzeczy, które zrobiłem, a które nie zadziałały, i wreszcie, co zadziałało

Po pierwsze, zaakceptowana odpowiedź Uruchom skrypt tylko podczas instalacji nie zadziałała.

Usuwanie danych pochodnych nie działa.

Co zadziałało:

  1. Dodałem nową fazę budowy w fazie budowy

  2. Nowa faza kopiowania plików

  3. Przeciągnij i upuść wybraną strukturę do miejsca docelowego

  4. Ustaw „Miejsce docelowe” na Struktury

Kredyt z powodu średnich postu Kevina LE


0

Dla tych, którzy nie chcą odznaczyć tej opcji (na przykład używając cocoapods), problem może dotyczyć certyfikatu / klucza.

Xcode (lub dowolne narzędzie, którego używasz, takie jak narzędzie wiersza poleceń) musi mieć możliwość użycia certyfikatu / klucza z pęku kluczy. W tym celu otwórz pęku kluczy, znajdź certyfikat, którego chcesz użyć (zwykle na loginpęku kluczy My Certificates), kliknij prawym przyciskiem myszy klucz, wybierz Get Info, kliknij Access Controlkartę i dodaj aplikację do listy.

Jeśli to nie zadziała, spróbuj odblokować pęku kluczy.

Inną opcją może być wybranie Zezwalaj wszystkim aplikacjom na dostęp do tego elementu zamiast określonych aplikacji i / lub przenieś certyfikat / klucz do Systempęku kluczy, który jest współdzielony między wszystkimi kontami użytkowników na tym Macu.

Sprawdź również, czy certyfikat nie wygasł.



0

W moim przypadku jeden ze skryptów (powiązany z SwiftGen) nie powiódł się podczas kompilacji.

Rozwiązałem problem, usuwając Podsi aktualizując je ponownie.

  1. Usuń problematyczny pod z Podskatalogu lub użyjpod deintegrate
  2. Zainstaluj / zaktualizuj pody przy użyciu pod installlubpod update

PS Możliwe, że twoja zależność jest globalna i nie znajduje się w strąkach. W takim przypadku możesz również spróbować ponownie zainstalować tę zależność.


0

PRZECZYTAJ TEN JEŚLI KORZYSTASZ Crashlytics I MASZ TEN PROBLEM ...

Miałem ten sam problem jak wyżej Command /bin/sh failed with exit code 1dokładniej[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

Pierwsze rozwiązanie (włączenie skryptu uruchamiania tylko podczas instalacji) pozwoliło mi zbudować cel w symulatorze, ale nie mogłem zarchiwizować kompilacji.

Rozwiązałem ten problem z archiwum, włączając Crashlytics w Firebase. Nadal jestem przyzwyczajony do Fabric, w którym Crashlytics jest automatycznie włączony. Po włączeniu Crashlytics w konsoli Firebase dla odpowiedniej listy GoogleService-Info.plist mogłem archiwizować bez tego błędu.


-1

Usuń wszystkie strąki i zainstaluj ponownie.

Kroki:

  1. skomentuj wszystkie strąki i uruchom pod install
  2. odkomentuj wszystkie strąki i uciekaj pod install
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.