Błąd znaku kodu w systemie macOS High Sierra Xcode - niedozwolone jest rozwidlenie zasobów, informacje w Finderze lub podobny szczegół

263

Już wypróbowano: błąd podpisania kodu w systemie macOS Sierra, Xcode 8

Zobacz obraz przedstawiający błąd wprowadź opis zdjęcia tutaj

CodeSign /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app
    cd "/Volumes/Development/Project/Top Best Games/19. Lets Flow/35/let's FLOW - source/proj.ios_mac"
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Distribution: New Free Games (2CHN583K4J)"
Provisioning Profile: "Super Flow Flipp AppStore"
                      (c6c30d2a-1025-4a23-8d12-1863ff684a05)

    /usr/bin/codesign --force --sign E48B98966150110E55EAA9B149F731901A41B37F --entitlements /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Intermediates/Flow.build/Debug-iphoneos/Super\ Flow\ Flip.build/Super\ Flow\ Flip.app.xcent --timestamp=none /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app

/Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super Flow Flip.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

W sekcji Code Code pozwala mi wybrać profil i certyfikat ... ale nadal daje błąd. wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Jak rozwiązać ten problem?

iPhoneProcessor
źródło
1
czy zrobiłeś czysty i „alt” czysty?
thorb65
znaczy? Właśnie odtworzyłem certyfikaty z kont xcode i ponownie wygenerowałem profile na stronie i spróbowałem ... wciąż nie mam szczęścia.
iPhoneProcessor
Odpowiedź Arnolda Roasa poniżej załatwiła sprawę w moim projekcie. Ale może być konieczne wykonanie produktu> Wyczyść w XCode, aby kompilacja zakończyła się sukcesem.
Fredrik Johansson
plus za cocos2d-x
fnc12,

Odpowiedzi:

583

Rozwiązanie 1:

Witryna programisty Apple Odpowiedzi na powyższy problem Tutaj .

Wykonaj poniższe polecenie w terminalu: Pierwszy folder główny projektów goto

 xattr -cr <path_to_project_dir>

Wyczyść Xcode i przebuduj. Twoje zdrowie

Rozwiązanie 2:

Wystarczy przejść do katalogu głównego projektu i uruchomić polecenie xattr -cr.

xattr -cr .

Wyczyść Xcode i przebuduj. Gotowe.

Rozwiązanie 3:

Możesz rozwiązać ten problem, znajdując pliki zawierające informacje o wyszukiwarce.

W terminalu przejdź do katalogu głównego projektu i uruchom go

ls -alR@ . > kundapura.txt

Spowoduje to utworzenie pliku kundapura.txt w bieżącym katalogu. Teraz wyszukaj com.apple.FinderInfo i wyczyść te atrybuty dla wszystkich plików. Możesz to zrobić w ten sposób

xattr -c <filename>

Przykład: xattr -c guru.png

Po wyczyszczeniu wszystkich znaków kod działa. Wyczyść Xcode i przebuduj. Twoje zdrowie

Rozwiązanie 4: Zainspirowany odpowiedzią Marka McCorkle'a

W terminalu przejdź do katalogu głównego projektu goto i wykonaj polecenie jedno po drugim

  find . -type f -name '*.jpeg' -exec xattr -c {} \;
  find . -type f -name '*.jpg' -exec xattr -c {} \;
  find . -type f -name '*.png' -exec xattr -c {} \;
  find . -type f -name '*.json' -exec xattr -c {} \;

Wyczyść Xcode i przebuduj. Gotowe.

Guru
źródło
7
Naprawiono błąd znaku kodu w Xcode 8. Świetne rozwiązanie.
iPhoneProcessor
4
Mam z tym 110 plików. Czym byłoby polecenie bash, które automatycznie leczyłoby je wszystkie?
Fawkes,
2
Dzięki, pracowałeś dla mnie !!
Amit Ajmera,
5
To ratownik. Spędziłem nad tym godziny.
Jackson
4
Dziękuję bardzo za udostępnienie, zaoszczędziłem godziny, jeśli nie dni!
G Chris DCosta,
171

Błąd wynika z atrybutów w plikach obrazu. Stało się tak od naszego projektanta grafiki zapisującego obrazy z Photoshopa z atrybutami.

Oto proste polecenie, aby znaleźć wszystkie pliki png i usunąć ich atrybuty. Uruchom to w katalogu głównym projektów z terminala. Oczyść i odbuduj; problem rozwiązany.

find . -type f -name '*.png' -exec xattr -c {} \;
Mark McCorkle
źródło
12
To powinna być zaakceptowana odpowiedź. Prostsze, szybsze i nie wymaga ręcznego wysiłku. Miałem 80 plików z problemami, zgodnie z odpowiedzią @ NatureFriend.
Roger Oba,
3
Dziękuję Ci! Godziny spędzone na szukaniu odpowiedzi na ten dziwny błąd - cóż za kolosalna strata czasu!
lppier
Szybszym rozwiązaniem bez terminala było dla mnie przeciągnięcie wszystkich obrazów w ImageOptimizer (który niszczy również wszystkie bezużyteczne atrybuty).
blackjack75,
Zapisałem nową ikonę z pixelmatora i miałem ten sam problem. Dzięki.
Guy Lowe
To zadziałało dla mnie. Otrzymałem odmowę zgody na powyższą komendę „xcattr -cr” (nawet poleconą przez powyższą dokumentację Apple: developer.apple.com/library/archive/qa/qa1940/_index.html Uruchamianie Xcode 9.3 w High Sierra
10.13.4
95

Jeśli masz ten błąd podczas podpisywania aplikacji kodem:

rozwidlenie zasobów, informacje Findera lub podobne szczegóły niedozwolone Polecenie / usr / bin / codeign nie powiodło się z kodem wyjścia 1

Przejdź do folderu głównego projektu i uruchom

find . | xargs -0 xattr -c

Spowoduje to wyczyszczenie atrybutów dla wszystkich plików.

W Sierra zaostrzono zasady dotyczące zawartości w podpisanym pakiecie, a widelce zasobów nie są już dozwolone. AppleScript od zawsze zapisuje informacje w widelcach zasobów, chociaż informacje te nie były używane przez długi czas. W przypadku Sierra podczas zapisywania skryptu informacje o rozwidleniu zasobów nie będą już zapisywane.

Oznacza to, że nie można podpisać skryptu, który został ostatnio zapisany w wersji wcześniejszej niż Sierra; musisz zapisać się w Sierra, aby móc zalogować się w Sierra.

Osoby, na które może mieć wpływ, to osoby, które łączą inne skrypty w swoich skryptach (cordova?). Nie będą mogli podpisać skryptu kontenera, dopóki wszystkie osadzone skrypty nie zostaną ponownie zapisane w Sierra.

AKTUALIZACJA:

Wygląda na to, że to również działa:

xattr -rc .

Jeśli masz jakiś niewystarczający błąd uprawnień, spróbuj dodać sudo: sudo xattr -rc .

Arnold Roa
źródło
4
Próbowałem w terminalu i „brakowało miejsca na argumenty”
Fawkes,
1
To działało jako urok! Musiałem także zrobić produkt> Oczyść w XCode, ale potem mój projekt został zbudowany!
Fredrik Johansson
Dziękuję człowieku, to działa. W moim przypadku problem polegał na tym, że mogę bez problemu przetestować urządzenie, ale kiedy próbuję w symulatorze, nie działa i pokazuje powyższy problem. Twoje rozwiązanie naprawiło mój problem.
Mahmud Ahsan
xattr -rc. Praca!
mat
Budowałem z zestawem Corona SDK i napotkałem ten sam problem. xattr -rc Pracował dla mnie.
Rais Iqbal,
31

Najłatwiejszym sposobem obsługi atrybutów w plikach źródłowych jest wyczyszczenie archiwum przez Xcode przed uruchomieniem znaku. Aby to zrobić:

  1. Wybierz cel w XCode
  2. Wybierz kartę Fazy budowania
  3. Naciśnij symbol +
  4. Wybierz opcję Nowa faza skryptu uruchamiania
  5. Wprowadź następujące informacje dla skryptu:

    xattr -cr ~ / Library / Developer / Xcode / DerivedData || echo Wyczyść

Teraz, kiedy budujesz swój cel, usunie on wszystkie atrybuty, które mogłyby uszkodzić znak. Czyszcząc na tym etapie, nie musisz zmieniać kodu źródłowego / katalogu projektu.

Część skryptu „|| echo Clear” zapewnia kontynuację kompilacji projektu nawet w przypadku błędów xattr.

Ta metoda jest dobra, jeśli korzystasz z programów takich jak DropBox w repozytorium kodu, które dodają atrybuty, ponieważ nie zmienia to projektu źródłowego, tylko wbudowane archiwum.

Konieczna może być zmiana ścieżki w celu dopasowania do katalogu DerivedData - ta ścieżka będzie wyświetlana obok błędu znaku.

xattr codeSign xcode fix

A.Badger
źródło
1
Problem pojawia się tylko dla mnie w projekcie utworzonym z innego identycznego projektu za pomocą ⌘-D w Finderze. Z jakiegoś powodu żadne z bardziej popularnych rozwiązań nie działało dla mnie. Ten zrobił.
clozach
1
DZIĘKUJĘ CI! po 2 godzinach poszukiwania rozwiązania zadziałało.
Carter Cobb,
1
Wreszcie! Po wielu godzinach próbowania innych rozwiązań to naprawiło !! Spróbuj tego najpierw, ale
zamień
dla mnie problemem był obraz w kodzie źródłowym ... więc dodałem skrypt uruchamiający, który zrobił to xattr -cr „$ PROJECT_DIR”
Little Watchman
wielkie dzięki, to nadal działa. W moim przypadku dodałem xattr -cr ~ / Users / msc / OneDrive / 01 Work / APP / Flutter / lts-flutter / build / ios / Debug-iphoneos || echo Wyczyść
mactrix
26

Użyłem następującego polecenia. Użyj okna terminala. Przejdź do swojego projektu i wykonaj następujące czynności:

xattr -rc .
Ram G.
źródło
Tak, czasami tylko czyszczenie attrów w katalogu projektu pomaga ... Kulawe Apple, po co robić takie gówniane rzeczy
Anton Malyshev
Oprócz najpopularniejszej odpowiedzi głosowało to również jako alternatywa
Lance Samaria,
Musiałem też wyczyścić folder projektu <cmd + K>, aby to zadziałało
Lance Samaria
21

Oficjalna odpowiedź Apple na ten problem znajduje się w Technicznych pytaniach i odpowiedziach QA1940 .

Jest to zmiana zaostrzająca bezpieczeństwo, która została wprowadzona w iOS 10, macOS Sierra, watchOS 3 i tvOS 10.

Podpisywanie kodu nie pozwala już, aby żaden plik w pakiecie aplikacji miał rozszerzony atrybut zawierający rozwidlenie zasobów lub informacje Findera.

Aby zobaczyć, które pliki powodują ten błąd, uruchom to polecenie w terminalu: xattr -lr <path_to_app_bundle>

Możesz także usunąć wszystkie rozszerzone atrybuty z pakietu aplikacji za pomocą polecenia xattr: xattr -cr <path_to_app_bundle>

<path_to_app_bundle>można zastąpić katalogiem projektu Xcode. Na przykład~/Development/MyProject

towarzysz
źródło
Po przeanalizowaniu prawie wszystkich innych proponowanych rozwiązań w xattr -lr <path_to_app_bundle>końcu uzyskaliśmy odpowiednie pliki. Dostałem Localizable.strings z agencji z Finder-Tags, a te spowodowały awarię Codesign.
JanR
Zmarnowałem na to 2 dni i to rozwiązanie w końcu dla mnie zadziałało!
bhakti123
16

Czyszczenie plików jest w porządku, ale uciążliwe dla wielu projektów.

aplikacje graficzne (takie jak Photoshop w starych wersjach) zapisują dodatkowe informacje (teraz nazywamy to metadanymi ..) w starym stylu w plikach zewnętrznych lub pochodzą one ze starszego OSX, pliki takie jak:

„com.apple.ResourceFork” i „com.apple.FinderInfo”, na przykład podczas rozpakowywania folderu.

Xcode 8 odmawia dodania go do kompilacji (ponieważ dodałeś je do projektu za pomocą „git --add.” Może…) Możesz znaleźć w terminalu rekurencyjnie i usunąć je, ale może być żmudne.

Napisałem małe bezpłatne narzędzie do jego usunięcia .. mam nadzieję, że może pomóc ..

https://itunes.apple.com/us/app/cleandetritus/id1161108431?ls=1&mt=12

ingconti
źródło
To zadziałało dla mnie. Wielkie dzięki za przydatną aplikację!
Niebieski,
To było jedyne rozwiązanie, które ze mną współpracowało, chociaż aplikacja ulegała wielokrotnym awariom „prawdopodobnie z powodu dużej liczby plików projektu”, ale wyczyściła pliki i projekt w końcu działał. Dzięki!
XIII
Pobrałem twoją aplikację i wszystko dla mnie wyczyściło! Dziękuję Ci!
Bobby
Masz +1. Dziękuję
Megaetron,
Naprawię awarię dużego projektu, jak tylko będę miał trochę wolnego czasu!
ingconti
11

Proste rozwiązanie: -

Jak to zrobiłem [Pracuję dla siebie]

Krok 1: - Przejdź do tego folderu - z poziomu wyszukiwarki naciśnij opcję Idź -> Idź do folderu

następnie wpisz ścieżkę projektu, jak w tym przykładzie: - Library / Developer / Xcode / DerivedData / yourprojectname / Build / Products / Debug-iphoneos

Teraz możesz zobaczyć okno wyskakujące z listą dostępnych plików, tam zobaczysz plikApp.app [Nie rób niczego, tylko poczekaj na krok 2].

Krok 2: - Otwórz nowy terminal i wpisz po prostu cd, a następnie przeciągnij krok 1 swoją aplikację. Do aplikacji, teraz otrzymasz ścieżkę do aplikacji, teraz naciśnij przycisk Enter.

Krok 3: - Teraz wpisz to polecenie **

xattr -rc.

Nie przegap „.” (Kropka) naciśnij przycisk Enter.

To wszystko, przejdź do projektu Xcode, wyczyść i uruchom ponownie.

Abdu
źródło
10

----- W przypadku, gdy nie możesz zastosować powyższych rozwiązań, z powodu braku wiedzy bash lub coś innego.

Miałem ten problem, gdy tylko włączyłem iCloud Drive w mojej Sierra. Mój projekt znajdował się w folderze zsynchronizowanym z iCloud Drive. Przypuszczam, że właśnie to dodaje te dodatkowe atrybuty.

Rozwiązanie tymczasowe:

Wyłącz Dysk iCloud dla folderu, w którym znajduje się Twój projekt.

Fawkes
źródło
Przeprowadziłem się z iCloud Drive na pulpit i działam poprawnie. Dzięki
drasick,
To było dla mnie część rozwiązania. Miałem projekt na pulpicie, którego kopię zapasową utworzono na iCloud pod Sierra. Nadal potrzebowałem wpisać xattr -rc. w terminalu, aby usunąć szkodliwe pliki po przeniesieniu projektu z pulpitu. Żadne inne rozwiązanie nie zadziałało na tym etapie
Roger Pingleton
To był również problem dla mnie: iCloudDrive powoduje ten naprawdę irytujący błąd, zgłosiłem błąd do Apple -> 31740606
LukeSideWalker
To był w zasadzie również mój problem, ale nie musiałem wyłączać iCloud dla mojego folderu projektu, ani przenosić folderu projektu, ani nic w tym stylu. Właśnie wszedłem do Xcode Prefs-> Lokalizacje-> Zaawansowane i wybrałem opcję „Unikatową” dla lokalizacji kompilacji. Korzystałem z lokalizacji kompilacji w podfolderze pliku projektu xcode, który znajdował się na dysku iCloud. Myślę, że domyślną wartością jest Unique i nie wiem, dlaczego ją kiedykolwiek zmieniłem, może po to, aby ułatwić znalezienie pliku wykonywalnego po kompilacji.
daver
10

Dla tych (jak ja), którzy tylko próbują opracować aplikację bez konieczności usuwania rozszerzonych atrybutów na każdym nowym PNG utworzonym w programie Photoshop dodanym do celu macOS, możesz tymczasowo wyłączyć podpisywanie kodu, dodając ustawienie kompilacji zdefiniowane przez użytkownika:

CODE_SIGNING_ALLOWED = No 

Oczywiście dystrybutor aplikacji musi w końcu poradzić sobie z tym problemem, ale umożliwia to programowanie w przypadkach takich jak mój, w których nie zawsze było łatwo ominąć podpisywanie kodu w Sierra (w poprzednich systemach OS X / Xcode było to łatwiejsze).

Według komentarza RGriffith, oto kilka zrzutów ekranu dla tych, którzy nie są pewni, jak dodano niestandardowe ustawienie kompilacji.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Bobjt
źródło
Gdzie to dodajesz?
RGriffiths
4

Musisz usunąć folder pakietu aplikacji i odbudować aplikację, jak wyjaśniono poniżej.

Moja aplikacja nazywa się: augment

W oknie terminala przejdź do folderu aplikacji, np .: cd / Users / username / Library / Developer / Xcode / DerivedData /

W oknie terminala uruchom polecenie dla folderu aplikacji, np .: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Wyczyść> Zbuduj> Uruchom.

Istnieje również bezpłatna aplikacja na Mac Appstore o nazwie „CleanDetritus”, która usunie je.

velhala
źródło
1
Używam Fluttera do generowania aplikacji na iOS, a Clean> Build> Run from Xcode rozwiązało błąd „niedozwolony rozwidlenie zasobów, informacje Findera lub podobny detrytus” na konsoli trzepotania.
Juan Valera,
Udało się, dzięki! Rozwiązaniem było dla mnie wykonanie polecenia „xattr -rc”. w folderze projektu danych pochodnych zamiast w folderze projektu.
BIOS-K,
2

Ten problem przyszedł do mnie wczoraj.

(What's wrong) Zaktualizowałem zasoby obrazu ręcznie zastępując plik w wyszukiwarce i nie udało mi się z tym błędem kompilacji.

(What's right)Nie aktualizuj obrazu w ten sposób. Następnie przeciągnąłem obrazy do „xcassets” w Xcode. Błąd nie pojawia się ponownie.

ManuQiao
źródło
2

Problem tkwi w danych pochodnych. Należy wyczyścić dane pochodne, a następnie wyczyścić projekt i kompilację. Sprawdź ten link.

Yogesh Dalavi
źródło
1

Moim problemem jest każda zmiana, którą wprowadzam w kodzie i wykonuję ponownie, błąd pojawia się ponownie. Następnie znajduję rozwiązanie, aby automatycznie wykonać polecenie przy każdej kompilacji / wykonaniu kodu.

Dzięki @ rich-stanie odkryłem „Run Script”. Następnie wstawiam polecenie „xattr -cr”. na polu.

Rozwiązanie XCODE

Andrey
źródło
1

Najprostsza poprawka może być, jeśli używasz git . Próbować:

$ git stash
$ git stash pop

Git nie przechowuje metadanych plików, powyższe usunie je wszystkie.

emp
źródło
Miałem ten problem pod Xcode 9. Powyższe rozwiązanie rozwiązało problem. Powinieneś mieć projekt pod kontrolą źródła git i jeszcze nie zatwierdzić żadnego pliku.
Anessence
0

Mój problem polegał na tym, że użyłem Cordova do zbudowania aplikacji około rok temu, ale nie była kompatybilna z nową wersją xcode, więc po prostu użyłem cordova build iosi zadziałało ponownie.

Frederik Witte
źródło
0

Jednym z najlepszych rozwiązań jest Idź do tego typu terminala

xattr -cr "Full path of your project"

Aby znaleźć pełną ścieżkę prawym przyciskiem myszy kliknij projekt Xcode-> uzyskaj informacje -> skopiuj ścieżkę i zamień na. Następnie wpisz poniżej polecenie

xattr -cr "Full path of your project"

Wyczyść i zbuduj gotowe.

Rajesh Maurya
źródło
ten klocek mój projekt, nie
używajcie
To zepsuło mój plan. i rozwiązując ten problem, przypadkowo usuwam plik .scodeproj, a następnie utworzyłem nowy projekt i przesłałem poprzednie pliki
Naveed Ahmad
To się stało z powodu twojego błędu. Próbowałem zatrzymać kod i nie mam żadnych problemów.
Rajesh Maurya
Bro po użyciu powyższego polecenia w moim przypadku stworzyło dla mnie problem. następnie, aby rozwiązać, że utknąłem w innym problemie.
Naveed Ahmad
0

Jeśli polecenia xattr nie rozwiązują problemu, może to wynikać z błędu XCode 9: spróbujmy usunąć i ponownie dodać folder zasobów (w moim przypadku był to plik .xcassets) zawierający pliki, których dotyczy problem, z Xcode. (powinieneś zrozumieć, które pliki podlegały usterce wcześniej za pomocą polecenia xattr -lr)

Joe Aspara
źródło
0

Otwórz terminal i po prostu uruchom to polecenie.

xattr -cr "ścieżka do pliku .app"

Idrees Ashraf
źródło
0

Mam również do czynienia z tym samym problemem, został naprawiony przez ponowne uruchomienie mojego Macbooka.

Irfan
źródło
0

Przekonałem się, że jeśli dodam color tagfolder poniżej DerivedData, da to powyższy błąd podczas debugowania na urządzeniu.

Usuń color Tagnapraw ten błąd dla mnie.

wprowadź opis zdjęcia tutaj

JerryZhou
źródło
0

Możesz usunąć dane pochodne Xcode -> Preferences

I kliknij strzałkę poniżej Derived Datai opróżnij folderDerived Data

Mickael Belhassen
źródło
0

Nie wiem, co się ze mną stało, ale kiedy uruchomiłem aplikację trzepotania na symulatorze, wystąpił błąd. Użyłem flutter cleanpolecenia i usunąłem pochodne dane, a potem wszystko poszło dobrze.

Ankur Lahiry
źródło