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
Jak mogę to naprawić?
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
źródło
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.
źródło
Wygląda na to, że uruchamiasz skrypt powłoki i nie może on znaleźć konkretnego pliku. Spójrz,
Target -> Build-Phases -> RunScript
czy 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.
źródło
Miałem ten sam problem i naprawiłem go. Wykonaj poniższe czynności, aby rozwiązać problem w Xcode 6.4.
Teraz wyczyść swój projekt (cmd + shift + k) i skompiluj swój projekt.
źródło
Czyszczenie folderu kompilacji (Cmd + Shift + Alt + K) działało dla mnie
źródło
1) Usuń folder pod i plik .xcworkspace 2) Otwórz folder w terminalu 3) Wpisz „pod install”
źródło
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 ...)
źródło
Dla mnie mój certyfikat stracił ważność. Utworzyłem nowy certyfikat.
źródło
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.
źródło
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.
źródło
W moim przypadku była spacja w ścieżce, która powodowała awarię skryptu.Jeśli używasz takich zmiennych, jak
$PROJECT_DIR
lub$TARGET_BUILD_DIR
to je zamień"$PROJECT_DIR"
lub"$TARGET_BUILD_DIR"
odpowiednio.Po dodaniu cudzysłowów mój skrypt działał pomyślnie.źródło
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
źródło
Jedyna rzecz działała dla mnie:
1) Usuń pochodne dane za pomocą CleanMyMac: śmieci systemowe -> śmieci Xcode -> dane pochodne Xcode
Usuwanie danych pochodnych za pomocą CleanMyMac
2) Następnie w Xcode: Produkt -> Wyczyść
źródło
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!
źródło
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:
Dodałem nową fazę budowy w fazie budowy
Nowa faza kopiowania plików
Przeciągnij i upuść wybraną strukturę do miejsca docelowego
Ustaw „Miejsce docelowe” na Struktury
Kredyt z powodu średnich postu Kevina LE
źródło
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
login
pęku kluczyMy Certificates
), kliknij prawym przyciskiem myszy klucz, wybierzGet Info
, kliknijAccess Control
kartę 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
System
pęku kluczy, który jest współdzielony między wszystkimi kontami użytkowników na tym Macu.Sprawdź również, czy certyfikat nie wygasł.
źródło
1) opcja:
2) opcja: aktualizacja poda, czyste dane pochodne,
źródło
W moim przypadku jeden ze skryptów (powiązany z
SwiftGen
) nie powiódł się podczas kompilacji.Rozwiązałem problem, usuwając
Pods
i aktualizując je ponownie.Pods
katalogu lub użyjpod deintegrate
pod install
lubpod 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ść.
źródło
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 1
dokł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.
źródło
Usuń wszystkie strąki i zainstaluj ponownie.
Kroki:
pod install
pod install
źródło