2014-11-24 33 views
11

Ho esaminato un sacco di risposte qui e nessuno ha risolto il problema.dyld: libreria non caricata. Motivo: nessuna immagine adatta trovata

Ho uno spazio di lavoro Xcode con un framework personalizzato e un progetto di app iOS. Il progetto sta funzionando benissimo fino a questa mattina, ora si costruisce, ma si blocca immediatamente:

dyld: Library not loaded: @rpath/ONCKit.framework/ONCKit 
    Referenced from: /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/atero_t 
    Reason: no suitable image found. Did find: 
    /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit: mmap() error 1 at address=0x100118000, size=0x000B8000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit 
    /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit: mmap() error 1 at address=0x100280000, size=0x000B8000 segment=__TEXT in Segment::map() mapping /private/var/mobile/Containers/Bundle/Application/4DF67A3F-6255-4276-8812-8C742A363995/atero_t.app/Frameworks/ONCKit.framework/ONCKit 

ho avuto modo di sperimentare con le impostazioni di generazione tutto il giorno e io sono solo completamente perso.

risposta

10

Mi sono imbattuto in questo numero oggi e l'ho risolto allo stesso modo. Revoca e rigenera la firma del codice risolve questo problema. Ma per far luce sulla "perché" parte di esso.

Apple è andato avanti e ha cambiato il contenuto del certificato. Per essere più precisi, ha aggiunto un nuovo campo "OU" (unità organizzativa) sotto Oggetto. Revocando e rigenerando la firma del codice, ha aggiunto il campo mancante e i problemi sono andati via.

+0

Questo campo OU è stato aggiunto in quale sezione? In emittente o nel soggetto ?? Potresti per favore segnalarlo? – bikram990

+0

Modificata la risposta per maggiore chiarezza. OU è l'unità organizzativa che può essere trovata nella sezione soggetto. – BlitzHiryu

+0

grazie per aver aggiornato la risposta – bikram990

0

Solo per tutti gli altri popoli, come me, incontrare questo problema, più recentemente, e si chiedono dove e come esattamente a revocare quale entità firma del codice (è in Preferenze> Account):

Tutto stava funzionando benissimo per anche io, al mattino. Ho letto da qualche altra parte sul riavvio. Quindi, prima di passare attraverso un'altra lunga sessione di firma-identità-profili di provisioning, ho appena riavviato la mia macchina. E quello lo ha riparato apparentemente senza ulteriori sforzi necessari.

Swift, Xcode 7.3 su OS X 10.11.4.

10

Nel caso in cui questo aiuti qualcuno, nessuna delle soluzioni che ho trovato sul Web funzionava per me. Mi ha tirato i capelli per 2 giorni e ho provato di tutto. Ho revocato il certificato in-house, il nuovo profilo di provisioning, aggiunto i file incorporati, ecc.

Impossibile per la vita di me capire cosa non andava finché non ho notato che in Accesso a portachiavi erano presenti i certificati Apple WWDR e iOS Distributions impostato su "Always Trust" anziché su "Usa impostazioni predefinite". Ho cambiato i miei certificati a "Use Systems Defaults" e tutto è tornato a funzionare come dovrebbe. Non ho idea del perché e di come funzioni, ma è così.

+4

In realtà non ci credo. Questo era anche il mio problema.Stava bene per me sul mio computer locale in esecuzione su un dispositivo con Xcode, ma quando si avviava un IPA generato da un lavoro di build Jenkins, non funzionava a causa di una differenza nel modo in cui le impostazioni di trust sono state configurate per il certificato. L'errore in alcun modo indica che è comunque correlato ai certificati. Mi hai salvato molti altri giorni di dolore. –

+1

Questo risolve davvero il mio problema. Non posso credere che questo possa essere causato da un attributo fuorviante in Keychain! – wilson100

0

dati derivati ​​del Clean Xcode

lancio Finder> Vai> Vai alla cartella> Incolla riga sottostante

~/Library/Developer/Xcode/DerivedData 

Ora riavviare Xcode.

3

Si scopre che Xcode memorizza nella cache alcuni elementi specifici del dispositivo che possono essere confusi se si eseguono le app su più dispositivi. La semplice soluzione è eliminare la cache Xcode. Il seguente comando lo pulisce per voi

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 
0

Basta modificare il profilo di firma del codice risolto il problema. Vai a destinazione. Quindi selezionato un'opzione diversa in Generale-> Firma-> Team