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?


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.


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 {} \;

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 .


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


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 .

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


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


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.


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.


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


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.


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.


2

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


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


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.


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.


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.


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)



0

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


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


0

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

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


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.

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.