Errore del segno di codice in macOS High Sierra Xcode - fork di risorse, informazioni sul Finder o detriti simili non consentiti


265

Già provato: errore del segno di codice su macOS Sierra, Xcode 8

Si prega di vedere l'immagine che mostra l'errore inserisci qui la descrizione dell'immagine

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

Nella sezione Code Sign mi permette di selezionare il profilo e il certificato ... ma continua a dare errori. inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Come risolvere questo problema?


1
hai reso pulito e "alt" pulito?
thorb65,

si intende? Ho appena ricreato i certificati dagli account xcode e ricreato i profili nel sito Web e ho provato ... ancora senza fortuna.
Processore iPhone

La risposta di Arnold Roas sotto ha fatto il trucco per il mio progetto. Ma potresti anche dover eseguire un Prodotto> Pulisci in XCode per consentire la compilazione successiva.
Fredrik Johansson,

plus per cocos2d-x
fnc12

Risposte:


586

Soluzione 1:

Sito Web per sviluppatori Apple Risposte sopra il problema qui .

Eseguire il comando seguente nel terminale: prima vai alla cartella principale dei progetti

 xattr -cr <path_to_project_dir>

Pulisci Xcode e Re Build. Saluti

Soluzione 2:

Basta andare alla directory principale del progetto ed eseguire questo comando xattr -cr.

xattr -cr .

Pulisci Xcode e Re Build. Fatto.

Soluzione 3:

È possibile risolvere questo problema trovando i file che contengono informazioni sul finder.

Nel terminale, vai alla directory root del progetto ed esegui

ls -alR@ . > kundapura.txt

Questo crea kundapura.txt nella directory corrente. Ora cerca com.apple.FinderInfo e cancella questi attributi per tutti i file. Puoi farlo in questo modo

xattr -c <filename>

Esempio: xattr -c guru.png

Una volta cancellato tutto, allora il segno di codice funziona. Pulisci Xcode e Re Build. Saluti

Soluzione 4: ispirato alla risposta di Mark McCorkle

Nel terminale, vai alla directory principale del progetto ed esegui uno per uno

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

Pulisci Xcode e Re Build. Fatto.


7
Questo errore di segno di codice fisso in Xcode 8. Ottima soluzione.
Processore iPhone

4
Ho 110 file con quello. Quale sarebbe un comando bash che li tratterà automaticamente?
Fawkes,

2
Grazie, ha funzionato per me !!
Amit Ajmera,

5
Questo è un vero toccasana. Ho trascorso ore su questo.
Jackson,

4
Grazie mille per la condivisione, mi ha risparmiato ore se non giorni!
G Chris DCosta,

171

L'errore proviene da attributi all'interno dei file di immagine. Questo è successo dal nostro progettista grafico che ha salvato le immagini da Photoshop con gli attributi.

Ecco un semplice comando per trovare tutti i tuoi file png e rimuoverne gli attributi. Eseguire questo nella directory principale dei progetti dal terminale. Pulito e ricostruito; problema risolto.

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

12
Questa dovrebbe essere la risposta accettata. Più semplice, più veloce e non richiede sforzo manuale. Ho avuto 80 file con problemi, secondo la risposta di @ NatureFriend.
Roger Oba,

3
Grazie! Le ore che ho trascorso cercando di trovare la risposta a questo strano errore - che colossale perdita di tempo!
Lppier,

Una soluzione più veloce e meno terminale per me era semplicemente trascinare tutte le immagini in ImageOptimizer (che elimina anche tutti gli attributi inutili).
blackjack75,

Avevo salvato una nuova icona da Pixelmator e ho avuto lo stesso problema. Grazie.
Guy Lowe,

Questo ha funzionato per me .. Mi è stato negato il permesso sul comando 'xcattr -cr' sopra (anche diretto tramite la documentazione di Apple elencata sopra: developer.apple.com/library/archive/qa/qa1940/_index.html Esecuzione di Xcode 9.3 su High Sierra 10.13.4.
Randoramma,

95

Se si verifica questo errore durante la firma di codici di un'app:

fork delle risorse, informazioni sul Finder o detriti simili non consentiti Comando / usr / bin / codesign non riuscito con il codice di uscita 1

Vai alla cartella principale del progetto ed esegui

find . | xargs -0 xattr -c

Questo cancellerà gli attributi per tutti i file.

In Sierra, le regole su ciò che può essere contenuto in un pacchetto firmato sono state inasprite e le forcelle di risorse non sono più consentite. AppleScript ha salvato le informazioni nei fork di risorse per sempre, anche se tali informazioni non sono state utilizzate per molto tempo. Con Sierra, quando si salva uno script, queste informazioni sul fork delle risorse non verranno più salvate.

Significa che non puoi firmare in codice uno script che è stato salvato l'ultima volta in una versione precedente a Sierra; devi salvare in Sierra per poter accedere a Sierra.

Le persone che potrebbero essere colpite sono quelle che raggruppano altri script all'interno dei loro script (cordova?). Non saranno in grado di firmare lo script del contenitore fino a quando tutti gli script incorporati non saranno stati salvati in Sierra.

AGGIORNARE:

Sembra che funzioni anche:

xattr -rc .

Se si verificano errori di autorizzazione insufficienti, provare a anteporre sudo: sudo xattr -rc .


4
L'ho provato nel terminale e "spazio insufficiente per la discussione"
Fawkes,

1
Questo ha funzionato come un fascino! Ho anche dovuto fare un prodotto> Pulisci in XCode, ma poi ho realizzato il mio progetto!
Fredrik Johansson,

Grazie amico, funziona. Nel mio caso il problema era che posso testare il dispositivo senza problemi ma quando provo nel simulatore non funziona e mostra il problema sopra. La tua soluzione ha risolto il mio problema.
Mahmud Ahsan,

xattr -rc. Lavoro!
matt

Stavo costruendo con Corona SDK e affrontando lo stesso problema. xattr -rc Ha funzionato per me.
Rais Iqbal,

31

Il modo più semplice per gestire gli attributi nei file di origine è fare in modo che Xcode cancelli l'archivio prima che esegua codesign. Per fare questo:

  1. Seleziona il tuo target in XCode
  2. Seleziona la scheda Crea fasi
  3. Premi il simbolo +
  4. Seleziona Nuova fase di esecuzione script
  5. Immettere quanto segue per lo script:

    xattr -cr ~ / Library / Developer / Xcode / DerivedData || echo Clear

Ora quando costruisci il tuo obiettivo, cancellerai tutti gli attributi che avrebbero rotto il segno del codice. Cancellando in questa fase non è necessario modificare il codice sorgente / la directory del progetto.

La parte "|| echo Clear" dello script assicura che la creazione del progetto continui anche se si verificano errori xattr.

Questo metodo è utile se si utilizzano programmi come DropBox nel repository di codice che aggiungono gli attributi, poiché non modifica il progetto di origine, ma solo l'archivio creato.

Potrebbe essere necessario modificare il percorso in modo che corrisponda alla directory DerivedData: questo percorso verrà visualizzato accanto all'errore del segno di codice.

correzione xcode codesign xattr


1
Il problema appare solo per me in un progetto creato da un progetto altrimenti identico usando ⌘-D nel Finder. Per qualche ragione, nessuna delle soluzioni più popolari ha funzionato per me. Questo ha fatto.
clozach,

1
GRAZIE! dopo 2 ore di ricerca di una soluzione ha funzionato.
Carter Cobb

1
Finalmente! Dopo ore di provare altre soluzioni, questo risolto !! Prova prima questo, ma sostituisci il percorso mostrato dall'errore di
firma di codice

per me, il problema era un'immagine nel codice sorgente ... quindi ho aggiunto uno script di esecuzione che faceva questo xattr -cr "$ PROJECT_DIR"
Little Watchman,

molte grazie, funziona ancora. Nel mio caso ho aggiunto xattr -cr ~ / Users / msc / OneDrive / 01 Work / APP / Flutter / lts-flutter / build / ios / Debug-iphoneos || echo Clear
mactrix

26

Ho usato il seguente comando. Usa la finestra del terminale. Passa al tuo progetto ed esegui quanto segue:

xattr -rc .

Sì, a volte solo la cancellazione attrae nella directory del progetto aiuta .. Lame Apple, perché fare cose così schifose
Anton Malyshev

Oltre alla risposta più votata, questa ha funzionato anche come alternativa
Lance Samaria,

Ho anche dovuto ripulire la cartella del progetto <cmd + K> per farlo funzionare
Lance Samaria,

21

C'è una risposta ufficiale di Apple per questo problema in Domande e risposte tecniche QA1940 .

Questa è una modifica di rafforzamento della sicurezza introdotta con iOS 10, macOS Sierra, watchOS 3 e tvOS 10.

La firma del codice non consente più a nessun file in un pacchetto di app di avere un attributo esteso contenente un fork di risorse o informazioni sul Finder.

Per vedere quali file causano questo errore, eseguire questo comando nel Terminale: xattr -lr <path_to_app_bundle>

Puoi anche rimuovere tutti gli attributi estesi dal pacchetto dell'app con il comando xattr: xattr -cr <path_to_app_bundle>

<path_to_app_bundle>può essere sostituito con la directory del progetto Xcode. Per esempio~/Development/MyProject


Dopo aver esaminato quasi tutte le altre soluzioni proposte, si arriva xattr -lr <path_to_app_bundle>finalmente ai file giusti. Ottenuto un Localizable.strings dall'agenzia con Finder-Tag e quelli hanno causato il fallimento del Codesign.
JanR

Ho perso 2 giorni su questo e questa soluzione finalmente ha funzionato per me!
bhakti123,

16

Tutto sulla cancellazione dei file va bene, ma noioso per più progetti.

le app di grafica (come Photoshop nelle vecchie versioni) scrivono informazioni aggiuntive (ora lo chiamiamo metadati ..) in un modo vecchio in file esterni, o sono venuti da OSX più vecchi, file come:

"com.apple.ResourceFork" e "com.apple.FinderInfo", ad esempio quando si decomprime la cartella.

Xcode 8 si rifiuta di aggiungerlo a una build (poiché li hai aggiunti a un progetto con un "git --add." Forse ..) Puoi trovarli nel terminale in modo ricorsivo ed eliminarli, ma può essere noioso.

Ho scritto una piccola utility gratuita per eliminarla .. spero che possa aiutare ..

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


Ha funzionato per me. Grazie mille per la tua app utile!
Blu,

Questa è stata l'unica soluzione che ha funzionato con me, anche se l'app si è bloccata molte volte "probabilmente a causa del gran numero di file di progetto", ma ha pulito i file e il progetto alla fine funzionava. Grazie!
XIII

Ho scaricato la tua app e mi ha ripulito tutto! Grazie!
Bobby,

Prendi un +1. Grazie
Megaetron,

Risolverò un crash per un grande progetto non appena avrò del tempo libero!
Ingconti,

11

Soluzione semplice: -

Come ho fatto [Lavorando per me]

Passaggio 1: - Vai a questa cartella - dal tuo finder premi l'opzione Vai -> Vai alla cartella

quindi digita il percorso del tuo progetto come in questo esempio: - Library / Developer / Xcode / DerivedData / yourprojectname / Build / Products / Debug-iphoneos

Ora puoi vedere una finestra pop con un elenco di file disponibili, lì vedi il tuo file App.app [Non fare nulla, aspetta il passaggio 2].

Passaggio 2: - Apri il nuovo Terminale e digita solo cd, quindi trascina il passaggio 1 yourApp.app sul terminale, ora otterrai il percorso per l'app, ora premi il pulsante Invio.

Passaggio 3: - Ora digita questo comando **

xattr -rc.

Da non perdere "." (Punto) premere il pulsante Invio.

Ecco fatto, vai al tuo progetto Xcode e pulisci ed esegui di nuovo.


10

----- Nel caso in cui non sia possibile applicare le soluzioni sopra, a causa della mancanza di conoscenza bash o qualcos'altro.

Ho avuto questo problema non appena ho attivato iCloud Drive sul mio Sierra. E il mio progetto era in una cartella sincronizzata con iCloud Drive. Suppongo che questo sia ciò che aggiunge quegli attributi aggiuntivi.

Soluzione temporanea:

Disabilita iCloud Drive per la cartella in cui si trova il tuo progetto.


Sono passato da iCloud Drive al desktop e funziona correttamente. Grazie
drasick il

Questa era parte della soluzione per me. Avevo un progetto sul mio desktop di cui era stato eseguito il backup su iCloud sotto Sierra. Avevo ancora bisogno di digitare xattr -rc. nel terminale per eliminare i file offensivi dopo aver spostato il progetto dal desktop. Nessuna delle altre soluzioni ha funzionato per questo passaggio
Roger Pingleton,

Questo è stato anche il problema per me: iCloudDrive causa questo errore davvero fastidioso, ho segnalato un bug ad Apple -> 31740606
LukeSideWalker

Anche questo è stato essenzialmente un mio problema, ma non ho dovuto disabilitare iCloud per la cartella del mio progetto o spostare la cartella del progetto o qualcosa del genere. Sono appena entrato in Xcode Prefs-> Locations-> Advanced e ho selezionato l'opzione "Unica" per Build Location. Stavo usando un percorso di compilazione nella sottocartella del file di progetto xcode, che si trovava sull'unità iCloud. Penso che il valore predefinito sia Unico e non so perché l'ho mai cambiato, forse per rendere più facile trovare l'eseguibile dopo una build.
daver il

10

Per quelli (come me) che stanno solo cercando di sviluppare un'app senza dover rimuovere gli attributi estesi su ogni nuovo photoshop creato PNG aggiunto alla destinazione macOS, è possibile disabilitare temporaneamente la firma del codice aggiungendo un'impostazione di creazione definita dall'utente:

CODE_SIGNING_ALLOWED = No 

Ovviamente, uno che distribuisce un'app deve eventualmente affrontare il problema, ma ciò consente lo sviluppo in casi come il mio in cui non era necessariamente semplice omettere la firma del codice in Sierra (su OS X / Xcode passato era più facile farlo).

Per il commento di RGriffith, ecco alcuni screenshot per coloro che non sono sicuri di come sia stata aggiunta l'impostazione di creazione personalizzata.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Dove lo stai aggiungendo?
RGriffiths

4

Sarà necessario eliminare la cartella del bundle dell'app e ricostruire l'app come spiegato di seguito.

La mia app si chiama: aumento

Nella finestra del terminale, vai alla cartella della tua app, ad esempio: cd / Users / nome utente / Libreria / Developer / Xcode / DerivedData /

Nella finestra del terminale esegui il comando per la cartella della tua app, ad esempio: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Pulire> Costruire> Esegui.

Esiste anche un'app gratuita su Mac Appstore chiamata "CleanDetritus" che ne rimuoverà.


1
Sto usando Flutter per generare l'app per iOS e Clean> Build> Esegui da Xcode ha risolto l'errore "fork delle risorse, informazioni sul Finder o simili detriti non consentiti" sulla console di Flutter.
Juan Valera,

Ha funzionato, grazie! La soluzione per me era eseguire "xattr -rc". nella cartella del progetto di dati derivati ​​invece nella cartella del progetto.
BIOS-K

2

Questo problema mi è venuto ieri.

(What's wrong) Ho aggiornato le risorse di immagine sostituendo manualmente il file nel finder e non sono riuscito con questo errore di compilazione.

(What's right)Non aggiornare l'immagine in questo modo. Successivamente ho trascinato le immagini in "xcasset" in Xcode. Non viene più visualizzato alcun errore.


2

Il problema è nei dati derivati, è necessario pulire i dati derivati ​​e quindi pulire il progetto e la compilazione. Si prega di controllare questo link.


1

Il mio problema è ogni modifica apportata al codice ed eseguire nuovamente l'errore ricompare. Quindi trovo una soluzione per eseguire automaticamente il comando ogni compilazione / esecuzione del codice.

Grazie a @ rich-able ho scoperto "Run Script". Quindi ho inserito il comando "xattr -cr". nel campo.

Soluzione XCODE


1

La soluzione più semplice potrebbe essere se stai usando git . Provare:

$ git stash
$ git stash pop

Git non memorizza i metadati dei file, quanto sopra rimuoverà tutto.


Ho avuto questo problema con Xcode 9. La soluzione sopra ha risolto il problema. Dovresti avere un progetto sotto il controllo del codice sorgente di Git e non hai ancora eseguito il commit di alcun file.
Anessence,

0

Il mio problema era che ho usato cordova per creare l'app circa 1 anno fa, ma non era compatibile con la nuova versione di xcode, quindi l'ho semplicemente usato cordova build iose ha funzionato di nuovo.


0

Una delle migliori soluzioni è Vai a digitare questo terminale

xattr -cr "Full path of your project"

Per trovare il percorso completo del tasto destro del mouse sul progetto Xcode-> ottieni informazioni -> copia il percorso e sostituiscilo con. Quindi digitare il comando seguente

xattr -cr "Full path of your project"

Pulito e costruito fatto.


questo mattone il mio progetto, non usarlo ragazzi
Naveed Ahmad,

Questo ha bloccato il mio schema. e risolto quel problema rimuovo il file .scodeproj per errore e poi ho creato un nuovo progetto e trasferito i file precedenti
Naveed Ahmad,

Poi è successo a causa del tuo errore. Ho provato il codice di dimora e non ho nessun problema.
Rajesh Maurya,

Fratello dopo aver usato il comando precedente nel mio caso, ho creato un problema per me. poi per risolverlo mi sono bloccato in un altro problema.
Naveed Ahmad,

0

Se i comandi xattr non risolvono il problema, ciò potrebbe essere dovuto a un bug XCode 9: proviamo a rimuovere e aggiungere nuovamente la cartella delle risorse (nel mio caso era un .xcassets) contenente i file interessati da Xcode. (dovresti capire quali sono i file interessati precedenti tramite il comando xattr -lr)


0

Apri il terminale ed esegui questo comando.

xattr -cr "percorso del file .app"


0

Sto anche affrontando lo stesso problema, risolto semplicemente riavviando il mio Macbook.


0

Ho scoperto che se aggiungo color tagla cartella sotto DerivedData, darà il suddetto errore quando debug sul dispositivo.

Rimuovi la color Tagcorrezione questo errore per me.

inserisci qui la descrizione dell'immagine


0

È possibile rimuovere i dati derivati Xcode -> Preferences

E fai clic sulla freccia in basso Derived Datae svuota la cartellaDerived Data


0

Non so cosa mi sia successo, ma quando stavo eseguendo l'app flutter sul simulatore, mi è stato riscontrato l'errore. Ho usato il flutter cleancomando e rimosso i dati derivati ​​e poi tutto va bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.