Motivo: nessuna immagine adatta trovata [chiusa]


129
dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/Stylist.app/Stylist
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib'
(lldb) 

Ricevo questo errore quando creo sul mio iPhone. Sono in grado di sviluppare il simulatore. Ho rifatto tutti i miei file di provisioning, ma non riesco ancora a costruire sul mio iPhone. Il mio Xcode è così

inserisci qui la descrizione dell'immagine

Si tratta di un problema quadro o di firma? Questo non è accaduto in Xcode 6. Grazie.



Ho risolto questo problema (dopo aver trovato un sacco di vicoli ciechi su SO) modificando le autorizzazioni sul certificato dello sviluppatore mondiale - vedi la mia risposta qui: stackoverflow.com/a/41401399/559760 (speriamo che questo aiuti!)
UKDataGeek

Aggiornamento per iOS 13.3.1: se hai questo sfortunato iOS e provi a installare un'app con framework nidificati, sappi solo che è un bug - aggiorna a 13.4.1 o successivo, è ancora risolto
iago849

Risposte:


389

Ho già riscontrato questo problema per aver revocato accidentalmente il mio certificato. Quindi tutti i miei progetti rapidi hanno questo problema. Esistono due modi per risolverlo:

Fai clic su Prodotto → Pulisci (o CMD+ Shift+ K)

O pulendo manualmente i file di impostazione Xcode:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
rm -rf ~/Library/Developer/Xcode/DerivedData
rm -rf ~/Library/Caches/com.apple.dt.Xcode

1
usali

Nessun problema. Scegli la mia risposta se vuoi :)
Jieyi Hu,

10
Penso che anche Alt + Clean lo farà
jjxtra

9
La pulizia del progetto ha funzionato per me: MAIUSC + CMD + K
B-Rad

9
Stai utilizzando un ID Apple non sviluppatore per installare l'app sul tuo telefono? Sembra che iOS 13.3.1 abbia applicazioni rotte installate con ID Apple gratuiti, ma solo se contengono framework incorporati. Se è possibile collegare tutte le tue dipendenze come librerie statiche piuttosto che come framework (ad esempio, se stai usando Cocoapods puoi rimuovere use_frameworks! Dal tuo Podfile), questo dovrebbe risolvere il problema per ora.
Kashif Rabbani,

30

Ho cercato a lungo su questo problema. Esistono diverse ragioni per cui questo problema.

Se ti trovi di fronte quando tu e Swift code / library in un progetto Objectice C dovresti provare la Soluzione 1-2-3

Se stai affrontando questo problema con un nuovo progetto Swift, la Soluzione 4 si adatta meglio a te.

Soluzione 1 :

Riavvia Xcode, quindi computer e iPhone

Soluzione 2 :

Vai alle impostazioni di creazione del progetto e imposta Embedded Content Contains SwiftFlag di codice su SÌ

Soluzione 3:

Vai alle impostazioni di creazione del progetto e aggiungi @executable_path/Frameworksall'opzione Percorsi di ricerca del percorso

Soluzione 4:

Se nessuna delle precedenti funzioni funziona. Apple sembra essere certificati con patch ninja come menzionato nel post di AirSign

Con certificati InHouse

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

hanno aggiunto un nuovo campo chiamato OU

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

quindi dovresti semplicemente ricreare certificato e fornitura


Grazie ho fatto la Soluzione 1 ~ 3 e non funziona. Ho ricreato un certificato e una disposizione e non funziona altrettanto bene
Satsuki

1
Stavo affrontando lo stesso messaggio di errore richiesto originariamente da Satsuki. La soluzione 4 ha funzionato per me. Ho avuto problemi con Realm Framework ma solo se ho provato a creare un archivio della mia applicazione e quindi a installarlo tramite iTunes (altrimenti la distribuzione diretta sul dispositivo era fluente).
Peter Ivanics,

4 lo ha fatto anche per me! Ecco un link al post di AirSign
pshah

2
Come posso modificare il certificato InHouse?
Al Wang,

1
1 e 2 non hanno funzionato per me. Finestra -> progetto, elimina i dati derivati ​​risolto. Inferior, buggy xcode>. <
Cymric

27
Xcode->Product->Clean + Xcode Restart

Dopo aver tentato molte delle altre soluzioni citate, con mio eterno imbarazzo, facendo un Xcode-> Prodotto-> Clean e riavviato Xcode, ha fatto il trucco.


2
Anch'io ho fatto molti dei passaggi precedentemente menzionati come ottenere il WWRD, Controllare il Runpath, ecc .... Nulla ha funzionato fino a quando non ho fatto questo "Clean". Quindi un GRANDE Grazie!
Joe Famme,

Ho dovuto riavviare Xcode, dopo diversi tentativi di pulizia falliti. Questo sembrerebbe troppo ovvio di una soluzione considerando quanto Apple sembra difficile da fare tutto il resto
Jeffrey Kern,

19

Per me questo problema si presentava a causa del certificato WWRD - Il mio era aggiornato, ma per qualche motivo era impostato su "fidati sempre" invece di "usa il sistema predefinito", che apparentemente fa la differenza.


4
+1 per il problema di certificazione. Ho provato assolutamente TUTTO, ma poi ho notato che il mio certificato di sviluppatore era impostato su "Sempre attendibile" nel portachiavi. Passare a "Usa predefinito di sistema" come hai detto ha funzionato perfettamente. Grazie!
Tylermilner,

1
Ho provato tutto e lo ha fatto. Seriamente, perché Apple non riesce a risolvere questo problema come parte di Xcode ....
UKDataGeek il

1
estremamente IMPORTANTE: dopo aver modificato l'accesso al certificato per "utilizzare i valori predefiniti del sistema" PULIRE il progetto (cmd + Alt + Maiusc + K)
Roman Slyepko

2
Mi hai salvato la giornata! grazie
andrea.rinaldi il

Penso che questa sia la soluzione ULTIMA a questo problema. Ho anche provato quasi tutte le soluzioni disponibili su Internet, ma nessuna di esse funziona per me tranne questo. Ottima soluzione ...
Er. Vihar,

17

Se ripristini accidentalmente il tuo portachiavi, ciò può accadere a causa della mancanza di certificati Apple nel portachiavi. Ho seguito la risposta su questo per risolvere il mio problema.

Ho avuto lo stesso problema e sono stato in grado di risolvere scaricando nuovamente il WWDR (Autorità di certificazione delle relazioni con gli sviluppatori di Apple Worldwide). Scarica da qui: http://developer.apple.com/certificationauthority/AppleWWDRCA.cer


1
risolto il problema dopo aver trasferito Xcode e il mio profilo utente da un Mac a un altro.
RTasche,

1
Funziona per il mio caso, grazie!
Alice Chan,

1
GRAZIE SIR, SEI UN SALVATORE
Josh O'Connor,

Grazie, mi ci è voluto tanto tempo per trovarlo.
loudmouth,

14

La rimozione di DerivedData ha fatto il trucco per me.

Lo ha fatto tramite Xcode -> Preferenze -> Posizioni -> ha fatto clic sulla freccia dietro il percorso DerivedData e ha rimosso l'intera cartella DerivedData nel Finder.


grazie, ha lavorato per me, cordova + xcode 7.2
giujule

1
Window > Projects > My Project > Derived Data > Deleteha fatto il lavoro per me.
Michael Waterfall,

Ha funzionato per me su Xcode 10.1. Anche tutto ha funzionato, ma in un giorno felice Xcode ha iniziato a mostrare quegli errori. Grazie.
Zhebzhik Babich

5

Si è verificato da parte mia durante la creazione di un'app nella riga di comando tramite xcodebuild e xcrun PackageApplication, firmando l'app con un profilo aziendale. Sui nostri server di build CI, il certificato è stato impostato su "Sempre attendibile" nel portachiavi (selezionare certificato -> Ottieni informazioni -> Attendibilità -> "Usa impostazione predefinita di sistema" può essere modificato in "Sempre attendibile"). Ho dovuto riportarlo su "Usa valori predefiniti di sistema" per farlo funzionare. Inizialmente lo abbiamo impostato su "Fidati sempre" per aggirare le finestre di dialogo del portachiavi che compaiono dopo gli aggiornamenti del software e gli aggiornamenti dei certificati.


3

A rischio di seminare più confusione, ho avuto questo problema durante l'aggiornamento a XC8.

Nessuno di questi suggerimenti, né da nessun altro thread, lo ha risolto. Ciò che DID ha funzionato è stato rimuovere TUTTO dalla fase di costruzione "Collega binario con librerie", dalla fase di costruzione "Dipendenze di destinazione" e dall'impostazione generale "Strutture e librerie collegate".

Cordiali saluti, sto usando Cartagine e ho aggiunto $(PROJECT_DIR)/Carthage/Build/tvOSl' FRAMEWORK_SEARCH_PATHSimpostazione di compilazione, in modo che i miei quadri possano essere trovati.

FYI 2, questi progetti e i quadri sono rapidi al 100% e i quadri stanno costruendo DEFINES_MODULE = YES.


DEFINES_MODULE = SÌ ha funzionato per me. Il mio progetto conteneva sia obiettivi-C che Swift.
Jason Huh,

3
  1. Rimuovi l'app dal dispositivo
  2. Pulisci il progetto ( CMD+ SHift+K )
  3. Build / Run on device

2

Citato da domande e risposte tecniche QA1886 :

L'app Swift si arresta in modo anomalo quando si tenta di fare riferimento alla libreria Swift libswiftCore.dylib.

D: Cosa posso fare per l'errore di caricamento libswiftCore.dylib nella console del mio dispositivo che si verifica quando provo a eseguire la mia app per la lingua Swift?

A: Per correggere questo problema, dovrai firmare la tua app utilizzando i certificati di firma del codice con l'Unità Organizzazione Organizzativa (OU) impostata sul tuo ID squadra. Tutti i certificati per sviluppatori Enterprise e iOS standard creati dopo il rilascio di iOS 8 hanno il nuovo campo ID team nella posizione corretta per consentire l'esecuzione delle app in lingua Swift.

Di solito questo errore appare nel registro della console del dispositivo con un messaggio simile a uno dei seguenti: [....] [deny-mmap] il file mappato non ha un identificatore di squadra e non è un binario della piattaforma: / private / var / mobile / contenitori / Bundle / Application / 5D8FB2F7-1083-4564-94B2-0CB7DC75C9D1 / YourAppNameHere.app / Frameworks / libswiftCore.dylib

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000120021088
Triggered by Thread: 0

Referenced from: /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/TestApp
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x1001D8000, size=0x00194000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/C3DCD586-2A40-4C7C-AA2B-64EDAE8339E2/TestApp.app/Frameworks/libswiftCore.dylib
Dyld Version: 353.5

I nuovi certificati sono necessari per la creazione di un archivio e il confezionamento dell'app. Anche se disponi di uno dei nuovi certificati, non è sufficiente rinunciare a un archivio di app rapido esistente. Se è stato creato con un certificato pre-iOS 8, dovrai creare un altro archivio.

Importante: prestare attenzione se è necessario revocare e configurare un nuovo certificato di distribuzione aziendale. Se sei uno sviluppatore aziendale interno, dovrai fare attenzione a non revocare un certificato di distribuzione che è stato utilizzato per firmare un'app che uno dei tuoi dipendenti Enterprise sta ancora utilizzando come qualsiasi app firmata con quel certificato di distribuzione aziendale smetterà di funzionare immediatamente. Quanto sopra si applica solo ai certificati di distribuzione aziendale. I certificati di sviluppo sono sicuri da revocare per gli sviluppatori iOS standard / aziendali.

Dato che i ragazzi di AirSign affermano che il problema deriva dall'attributo OU mancante nel campo soggetto del certificato interno.

Oggetto: UID = 269J2W3P2L, CN = Distribuzione iPhone: Nome azienda, OU = 269J2W3P2L, O = Nome azienda, C = FR

Ho un certificato di sviluppo aziendale, creandone uno nuovo ha risolto il problema.


qualcuno può spiegarlo in inglese?
UKDataGeek,

1

probabilmente non hai l'arco corretto in quella lib, puoi fare un

file /private/var/mobile/Containers/Bundle/Application/3FC2DC5C-A908-42C4-8508-1320E01E0D5B/testapp.app/Frameworks/libswiftCore.dylib

e dovrebbe mostrarti gli archi che si trovano in quella libreria ... Non sono sicuro di come tu stia collegando, ma probabilmente non è il modo giusto (se libswiftcore è una libreria di fabbrica, se si tratta di qualche aggiunta sulla libreria, allora probabilmente non è stato compilato correttamente)


Ciao, grazie per la tua risposta, ho una domanda. Nella risposta che hai detto e dovrebbe mostrarti gli archi che si trovano in quella biblioteca. come lo mostri.
Satsuki,

il comando si chiama file ... ma immagino che tu debba trovare la versione locale sul tuo mac, piuttosto che il percorso sul telefono ...
Grady Player

1

Anch'io ho avuto questo problema, tuttavia nulla ho provato sopra e in molti altri post ha funzionato .. tranne questo.

Per quanto mi riguarda, ho modificato l'identificatore del bundle poiché abbiamo un ID bundle diverso per la distribuzione rispetto allo sviluppo.

Il mio hardware è consentito su questa disposizione e il mio account del team è valido ma stava gettando l'errore sopra riportato su qualche altro framework.

Ho scoperto che dovevo rimuovere completamente la vecchia versione dell'app dal mio telefono. E non solo eliminarlo nel modo standard.

Soluzione:

  1. Assicurarsi che il telefono di destinazione sia collegato
  2. dal menu xcode fare clic su [Finestra> Dispositivi]
  3. seleziona il dispositivo di destinazione nel menu di sinistra.
  4. Sulla destra ci sarà un elenco di applicazioni all'interno del tuo dispositivo. Trova l'applicazione che stai provando a testare e rimuovila.

Evidentemente sull'installazione della stessa app sotto lo stesso team con un ID bundle diverso, se non si avvia completamente da zero, ci sono alcuni riferimenti a framework che si confondono.

Spero che questo aiuti qualcuno.


Il mio ID bundle non è cambiato. E nessuno dei suggerimenti di cui sopra non ha risolto le cose (-> Pulito; eliminazione manuale; riavvia tutto; e rimuovendo manualmente l'app da iPhone ogni volta; e altro). Solo seguendo i suggerimenti di Christopher, i problemi fissi si risolvono istantaneamente senza ripulire nulla. [iPhone 5; iOS 9.3.5; Xcode 7.3]
marco

1

Ho appena pulito il progetto e Clean Build Foldertramite il menu Prodotto alternativo


Scorciatoia per la pulizia della cartella build: alt + cmd + maiusc + k
Ori

1

I passaggi seguenti hanno funzionato correttamente.

1) Nella libreria dinamica il nome dell'installazione doveva essere "@loader_path"

2) Nel progetto principale, il percorso di ricerca del percorso deve essere "@loader_path" e "@ loader_path / Frameworks"

3) Dal portachiavi vista utilizzata -> mostra i certificati scaduti e rimosso tutto.

4) Eliminato il certificato di distribuzione e reinstallato.

5) Developer.apple.com/certificationauthority/AppleWWDRCA.cer scaricato e installato.


1

Di recente ho affrontato questo problema. Ho provato tutte le possibili soluzioni ma nulla ha funzionato. Alla fine ho appena lasciato l'Xcode, rimosso i certificati nel portachiavi e installato tutto nuovo e riavviato mac. Fortunatamente ha funzionato come un fascino :)


1

Ho avuto lo stesso problema ed è stato in grado di risolvere scaricando nuovamente il file WWDR (Apple Worldwide Developer Relations Certification Authority). Scarica da qui :

e impostare su Fidati sempre nel portachiavi. Passare aUse System Default

funziona per me, spero che questo ti aiuti


1

Nel mio caso, il portachiavi mostra il certificato come non attendibile, per risolvere questo problema ho impostato le opzioni di attendibilità del certificato come "Sempre attendibile". L'impostazione del certificato su "Sempre attendibile" è stata la causa principale dell'incidente. Non sono stato in grado di installare l'applicazione nel dispositivo. Risolto questo impostando l'opzione di fiducia su "Impostazioni predefinite di sistema" anziché "Fidati sempre". Ha funzionato per me.


1

Vedi gli stessi sintomi se lavori in Xamarin Studio e fai riferimento a una libreria portatile per la quale devi fare l'esca PCL e cambiare trucco. Ciò si verifica se il progetto di riferimento non è aggiornato rispetto alla libreria di riferimento. Ho scoperto di aver aggiornato la mia libreria comune in un framework più recente, di aver aggiornato i miei pacchetti ma di non aver aggiornato i miei pacchetti iOS in modo che corrispondessero. L'aggiornamento dei pacchetti ha risolto questo errore per me.


1

Potresti ancora riscontrare questo problema dopo aver provato @Jieyi Hu Answer. forse sembra risolto ma se viene di nuovo (possibilmente su xCode 9).

Tuttavia, questa soluzione sembra funzionare (si applica a Cocoapods 1.5.x):

  1. pulisci il tuo progetto
  2. chiudi Xcode ed elimina DerivedData
  3. apri Podfile nel tuo progetto e aggiungi questo:

    post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings.delete('CODE_SIGNING_ALLOWED') config.build_settings.delete('CODE_SIGNING_REQUIRED') end end

  4. aggiornamento pod

fonti:

https://github.com/evgenyneu/Cosmos/issues/105

https://github.com/Skyscanner/SkyFloatingLabelTextField/issues/201#issuecomment-381915911

Grazie @ Cédric


0

Puoi rigenerare il tuo certificato e riavviare il tuo iPhone.

Questo lavoro per me, spero che questo ti aiuti.


Per favore, spiega come hai fatto.
TDM,

0

Risolvo il problema controllando i miei portachiavi locali. Mantieni login.keychain ha il certificato giusto


Benvenuto in Stack Overflow! Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta guadagnata la reputazione sufficiente sarai in grado di commentare qualsiasi post. Se hai una domanda correlata ma diversa, fai una nuova domanda facendo riferimento a questa se ti aiuterà a fornire un contesto.
ddb,

0

Devi impostare il certificato (solo certificato e non profilo di provisioning) per ogni quadro dinamico che stai collegando (direttamente o indirettamente) al tuo progettoinserisci qui la descrizione dell'immagine


0

Nel mio caso, dopo aver eliminato tutta la certificazione creata da Xcode e scaricata. Lascia che xcode 8.1 gestisca la certificazione dell'app, Funziona bene !!! Spero che questo possa aiutare qualcuno.


0

Ho riscontrato questo problema SOLO sul simulatore. Sembra essere correlato ad alcuni diritti non validi nella nostra applicazione, ma il problema non si presenta quando eseguiamo su un dispositivo.


0

Ho risolto usando questi trucchi.

Passo 1:

Vai alle impostazioni di compilazione del progetto e aggiungi l'opzione @ eseguable_path / Frameworks all'opzione Percorsi di ricerca del percorso

Passo 2:

Vai alle impostazioni di build di destinazione e aggiungi @ eseguable_path / Frameworks all'opzione Percorsi di ricerca del percorso e Percorsi di ricerca del framework.

inserisci qui la descrizione dell'immagine

Passaggio 3:

Riscaricare il WWDR (Autorità di certificazione delle relazioni con gli sviluppatori di Apple Worldwide), impostare l'opzione Usa valore predefinito di sistema.

Step 4:

Elimina tutti i dati derivati ​​usando Terminale

rm -rf ~ / Library / Developer / Xcode / DerivedData / *

Passaggio 5 :

Elimina tutti i certificati e reinstallalo nel portachiavi. Ho abilitato l'opzione Usa predefinito di sistema.

Passaggio 6:

Riavvia Xcode.


0

affrontato lo stesso problema

  1. il mio certificato di sviluppatore era scaduto, quindi ho creato un nuovo certificato di sviluppatore e il download
  2. pulisci e riavvia xcode questo funziona per me

0

Ho riscontrato questo problema con XCode 9. Nulla di quanto sopra ha funzionato. Questo ha fatto il trucco per me:

Project > Build Settings > Swift Compiler - Search Path: Setting "Import Paths"a $(PROJECT_DIR)(ricorsivo)


0

Questo ha risolto il mio errore-

Riscaricare il WWDR (Autorità di certificazione delle relazioni con gli sviluppatori di Apple Worldwide), impostare l'opzione Usa valore predefinito di sistema.


0

Nel mio caso, è stato un problema con uno dei pod che stavo usando. Ho finito per rimuovere quel pod e inserire manualmente il codice nel mio progetto.


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.