ios - software - dyld: libreria non caricata: @ rpath/libswiftCore.dylib




swift software download (20)

Cambia le risorse di Copy Pod per il target da:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-resources.sh"

a:

"${SRCROOT}/Pods/Target Support Files/Pods-Wishlist/Pods-Wishlist-frameworks.sh"

Sto cercando di eseguire un'app Swift sul mio iPhone 4s. Funziona perfettamente con il simulatore e il mio amico può eseguirlo con successo sul suo iPhone 4s. Ho iOS 8 e la versione ufficiale di Xcode 6.

Ho provato

  • Riavvio di Xcode, iPhone, computer
  • Pulizia e ricostruzione
  • Revoca e creazione di un nuovo certificato / profilo di provisioning
  • I percorsi di ricerca del percorso di esecuzione sono $(inherited) @executable_path/Frameworks
  • Il contenuto incorporato contiene il codice Swift è 'Sì'
  • Code Signing Identity è sviluppatore

Di seguito è riportato l'errore nella sua interezza

dyld: Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
  Reason: no suitable image found.  Did find:
    /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib

Ci sono molte risposte là, ma potrebbe essere la mia risposta aiuterà qualcuno.

Sto riscontrando lo stesso problema, la mia app funziona correttamente su Simulator ma su Device si è bloccato durante l'app di I Lunches e restituisce l'errore come sopra. Ho provato tutte le risposte e le soluzioni. In My Case, il mio progetto ho bersagli multipli. Ho creato il bersaglio B duplicato dalla mira A. Il bersaglio B funziona bene mentre il bersaglio A si è schiantato. Sto usando risorse immagine diverse per ciascun target. Dopo aver cercato e fatto google ho trovato qualcosa che potrebbe aiutare qualcuno.

Arresto anomalo dell'app quando cambio il nome di Avvia risorse immagini per entrambe le app. es. Destinazione A Avvia nome risorsa Immagine LaunchImage A. Target B Lunch Image nome asset LaunchImage B e assegnati correttamente nella scheda General di ciascun target. Le mie app funzionano correttamente.


Dopo aver provato tutto, ho finalmente scoperto che la costruzione sembra non sempre includere ogni dettaglio ancora e ancora. Forse per velocizzare il processo ... Per garantire un INTERO packaging prima di eseguire su un dispositivo, fai prima un Clean: Shift-Cmd-K. Quindi costruire con: Cmd-B. Dopo averlo eseguito sul tuo dispositivo. Facile. Cordiali saluti a tutti voi bravi ragazzi in quel posto!


Ho iniziato a ricevere questo errore quando ho rimosso:

@executable_path/Frameworks

dai Runpath Search Paths di Runpath Search Paths nelle mie impostazioni di compilazione. Sostituendolo ha riparato tutto di nuovo (grazie al cielo per il controllo del codice sorgente!)

Non so come sia arrivato, ma sembra che sia necessario per un binario trovare il suo runtime Swift incorporato.


Ho risolto eliminando i dati derivati ​​e questa volta ha funzionato correttamente. Provato con Xcode 7.3.1GM


Il progetto P sta importando la libreria personalizzata L, quindi è necessario aggiungere L a

P -> Build Phases -> Embed Frameworks -> + . Per me va bene.


Le soluzioni di cui sopra non ha funzionato per me. Risolvi il problema con i seguenti passaggi:

  1. Dovevo andare al telefono (Impostazioni> Profilo) ed eliminare i profili che erano nel telefono (comprese tutte le app associate a tali profili / disposizioni).
  2. Successivamente, assicurati di scaricare le disposizioni Apple in xcode. Vai alle impostazioni xcode> account e accedi al tuo account sviluppatore Apple.

Nel mio caso,

Ho impostato @executable_path/Frameworks

Ma devo anche impostare "Percorsi di ricerca quadro"

$(PROJECT_DIR)/Frameworks

cambia come recursive

Che funziona per me.


Nel mio caso, uno dei miei obiettivi di test stava funzionando ma l'altro no. Stava dando l'errore di cui sopra con una libreria mancante o qualsiasi altra cosa. Ho confrontato le impostazioni per entrambi gli obiettivi di test e ho scoperto che mancava la configurazione per "Test Host", quindi l'ho copiata dal target di test di lavoro e ha corretto il mio target di test rotto!


Nessuna delle soluzioni ha funzionato per me. Il riavvio del telefono lo ha risolto. Strano ma ha funzionato.


Penso che Apple l'abbia già riassunto sotto crash delle app di Swift durante il tentativo di fare riferimento alla libreria Swift libswiftCore.dylib

Citato dalla domanda e risposta tecnica QA1886 :

L'applicazione rapida si blocca quando si tenta di fare riferimento alla libreria Swift libswiftCore.dylib.

D: Che cosa posso fare a proposito dell'errore di caricamento di libswiftCore.dylib nella console del mio dispositivo che accade quando provo a eseguire la mia app di lingua Swift?

A: Per correggere questo problema, dovrai firmare la tua app utilizzando i certificati di firma del codice con l'Unità organizzativa oggetto (OU) impostata sul tuo ID team. Tutti i certificati per sviluppatori Enterprise e iOS standard creati dopo che è stato rilasciato 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 log della console del dispositivo con un messaggio simile a uno dei seguenti:

[....] [deny-mmap] mapped file has no team identifier and is not a platform binary:
/private/var/mobile/Containers/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 quando si crea un archivio e si impacchetta la tua app. Anche se disponi di uno dei nuovi certificati, la semplice disattivazione di un archivio app swift esistente non funzionerà. Se è stato creato con un certificato pre-iOS 8, sarà necessario creare un altro archivio.

Importante: prestare attenzione se è necessario revocare e configurare un nuovo certificato di distribuzione aziendale. Se sei uno sviluppatore aziendale interno, devi stare attento a non revocare un certificato di distribuzione che è stato utilizzato per firmare un'app che uno qualsiasi dei dipendenti dell'azienda utilizza ancora come qualsiasi app firmata con tale 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 sviluppatori iOS standard / aziendali.

Come i ragazzi di AirSign state il problema come root dall'attributo OU mancante nel campo soggetto del certificato In-House .

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

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


Penso che sia un bug quando i certificati vengono generati direttamente da Xcode. Per risolvere (almeno in Xcode 6.1 / 6A1052d):

  1. vai al sito web di Apple Developer dove sono gestiti i certificati: https://developer.apple.com/account/ios/certificate/certificateList.action
  2. seleziona il / i certificato / i (che dovrebbe mostrare "Gestito da Xcode" sotto "Stato") e "Revocarlo"
  3. seguire le istruzioni qui per generare manualmente un nuovo certificato: https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//apple_ref/doc/uid/TP40012582-CH31-SW32
  4. vai su Xcode> Preferenze> Account> [ID Apple]> fai doppio clic sul nome del tuo team> premi il pulsante Aggiorna per aggiornare i certificati e i profili di provisioning

Per il dispositivo, è inoltre necessario aggiungere il framework dinamico alla sezione Embedded binaries nella scheda General del progetto.


Per me nessuna delle soluzioni precedenti ha funzionato. Abbiamo scoperto che c'è un flag "Always Embed Swift Standard Libraries" nelle Impostazioni Build che deve essere impostato su YES. Era NO di default!

Build Settings > Always Embed Swift Standard Libraries

Dopo averlo impostato, pulire il progetto prima di ricostruire.

Per i lettori appassionati qualche spiegazione La parte più importante è:

imposta l'impostazione di compilazione del contenuto di codice (EMBEDDED_CONTENT_CONTAINS_SWIFT) incorporato in SÌ nella tua app come mostrato nella Figura 2. Questa impostazione di build, che specifica se il prodotto di una destinazione ha contenuto incorporato con il codice Swift, dice a Xcode di incorporare le librerie standard di Swift nella tua app se impostato su SÌ.

Il flag era precedentemente chiamato Embedded Content Contains Swift Code


Quando Xcode ti chiede di ripristinare i certificati, puoi resettarli . E l'app può essere eseguita sul dispositivo reale senza crash con i messaggi di errore. Una volta risolto questo problema in un progetto rapido. Anche altri progetti rapidi con questo problema sono risolti.

Ho lottato per questi circa mezza giornata e ho trovato che ripristinare certificati più e più volte nel portale di provisioning non aiuta.


Questo messaggio di errore può anche essere causato durante l'aggiornamento di Xcode (e successivamente in una nuova versione di Swift) e il progetto utilizza un framework costruito / compilato con una versione precedente / precedente di Swift.

In questo caso, ricostruire il framework e riaggiungerlo risolverà il problema.


Stavo avendo lo stesso problema dopo essermi trasferito in un nuovo Mac, e dopo ore, provando tutte le risposte suggerite nelle domande, niente di tutto ciò ha funzionato per me.

La soluzione per me era installare questo certificato mancante. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer

Trovato la risposta qui. https://.com/a/14495100/976628


Stavo avendo questo problema con i miei test Swift (ma non con la mia app). Si scopre che il test doveva avere più di @executable_path/Frameworks nella sua Runpath Search Paths costruzione dei Runpath Search Paths per il target di test. L'impostazione dei percorsi di ricerca del percorso di scorrimento su quanto segue ha funzionato per me:

$(inherited)
@executable_path/Frameworks
@loader_path/Frameworks

Sto usando Xcode 8.3.3 e Xcode 9.2. La soluzione per me era cambiare il mio Xcode predefinito da 8 a 9 usando Xcode Select:

$ xcode-select --print-path

$ sudo xcode-select -switch /Applications/Xcode-9.2.app

Modifica: In realtà ciò che sembrava essere d'aiuto in questo caso era che Xcode 9.2 usava i dati derivati ​​da Xcode 8.3.3. Non è una soluzione, ma almeno mi permette di andare avanti con il mio lavoro.