it-swarm.com.de

dyld: Bibliothek nicht geladen: @rpath/libswiftCore.dylib

Ich versuche eine Swift-App auf meinem iPhone 4s auszuführen. Es funktioniert gut auf dem Simulator, und mein Freund kann es erfolgreich auf seinem iPhone 4s ausführen. Ich habe iOS 8 und die offizielle Version von Xcode 6.

Ich habe versucht 

  • Xcode, iPhone, Computer neu starten 
  • Reinigung & Wiederaufbau 
  • Neues Zertifikat/Bereitstellungsprofil widerrufen und erstellen 
  • Runpath-Suchpfade sind $(inherited) @executable_path/Frameworks
  • Eingebetteter Inhalt enthält Swift-Code ist "Ja" 
  • Code Signing Identity ist Entwickler

Unten ist der Fehler in seiner Gesamtheit 

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
354
user3751185

Für mich funktionierte keine der bisherigen Lösungen. Wir haben festgestellt, dass in den Build-Einstellungen das Flag "Always Swift Standard Libraries einbetten" vorhanden ist, das auf YES gesetzt werden muss. Es war standardmäßig NEIN!

Build Settings > Always Embed Swift Standard Libraries

Nachdem Sie diese Einstellung vorgenommen haben, reinigen Sie das Projekt, bevor Sie es erneut erstellen.

Für interessierte Leser eine Erklärung Der wichtigste Teil ist:

setzen Sie die Build-Einstellung Eingebetteter Inhalt enthält Swift-Code (EMBEDDED_CONTENT_CONTAINS_Swift) in Ihrer App auf YES (siehe Abbildung 2). Diese Build-Einstellung, die angibt, ob das Produkt eines Ziels über eingebetteten Inhalt mit Swift-Code verfügt, weist Xcode an, Swift-Standardbibliotheken in die App einzubetten wenn JA eingestellt ist.

enter image description here

Die Flagge hieß früher Embedded Content Contains Swift Code

511
TALAA

Überraschenderweise war alles, was ich gemacht habe, "Clean" meines Projekts (shift + cmd + K) und es hat funktioniert. Hat scheinbar mit dem Zertifikat zu tun.

122
royherma

Ich habe diese Fehlermeldung erhalten, als ich entfernt wurde:

@executable_path/Frameworks

von Runpath Search Paths in meinen Build-Einstellungen. Beim Ersetzen wurde alles wieder behoben (Gott sei Dank für die Quellcodeverwaltung!)

Ich weiß nicht, wie es dorthin gekommen ist, aber es scheint, dass eine Binärdatei die eingebettete Swift-Laufzeitumgebung finden muss.

93
jemmons

Für das Gerät müssen Sie auch das dynamische Framework zum Abschnitt Embedded binaries auf der Registerkarte General des Projekts hinzufügen.
 enter image description here

59
Mustafa

In Xcode 8 ist die Option für die Option Embedded Content Contains Swift Code nicht mehr verfügbar.

Es wurde in "Always Embed Swift Standard Libraries = YES" umbenannt.

 enter image description here

52
Bonnie

Ich denke, es ist ein Fehler, wenn Zertifikate direkt aus Xcode generiert werden. So lösen Sie (zumindest in Xcode 6.1/6A1052d):

  1. gehen Sie zur Apple Developer-Website, auf der die Zertifikate verwaltet werden: https://developer.Apple.com/account/ios/certificate/certificateList.action
  2. wählen Sie Ihre Zertifikate aus (unter "Status" sollte "Verwaltet von Xcode" angezeigt werden) und "Widerrufen"
  3. folgen Sie den Anweisungen hier, um manuell ein neues Zertifikat zu erstellen: https://developer.Apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html#//Apple_ref/doc/uid/TP40012582- CH31-SW32
  4. gehen Sie zu Xcode> Einstellungen> Konten> [Ihre Apple ID]> doppelklicken Sie auf Ihren Teamnamen> Klicken Sie auf die Schaltfläche zum Aktualisieren, um Zertifikate und Bereitstellungsprofile zu aktualisieren
27
Vijay Sundaram

OK, wir teilen hier eine andere Ursache für diesen Fehler. Ich habe einige Stunden gebraucht, um das zu klären.

In meinem Fall lautete die Vertrauensrichtlinie meines Zertifikats in Keychain Access Always Trust . Durch das Zurücksetzen auf Standardwerte wurde das Problem behoben.

Um das Fenster mit den Zertifikatseinstellungen zu öffnen, doppelklicken Sie auf das Zertifikat in der Liste der Schlüsselzugriffszertifikate.

enter image description hereenter image description here

25
NAlexN

Ich hatte dieses Problem beim Ausführen meiner Swift-Tests (nicht jedoch meiner App). Es stellt sich heraus, dass der Test mehr als @executable_path/Frameworks in seiner Runpath Search Paths-Build-Einstellung für das Testziel enthalten musste. Das Festlegen der Runpath-Suchpfade auf Folgendes hat für mich einen Reiz ergeben: 

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

Sie müssen den Runpath Search Paths auf @executable_path/Frameworks setzen, wie im folgenden Screenshot der Build-Einstellungen gezeigt:

 enter image description here

Wenn Sie in Swift eingebettete Frameworks erstellt haben, können Sie YES the Build Options Embedded Content Contains Swift Code einstellen.

16
loretoparisi

Ich denke, Apple hat es bereits unter Swift App zusammengefasst, wenn versucht wird, auf die Swift-Bibliothek libswiftCore.dylib zu verweisen .

Zitiert aus Technische Fragen und Antworten QA1886:

Die Swift-App stürzt ab, wenn versucht wird, auf die Swift-Bibliothek zu verweisen. libswiftCore.dylib.

F: Was kann ich mit dem Fehler libswiftCore.dylib in meinem .__ tun? Gerätekonsole, die passiert, wenn ich versuche, meine Swift-App auszuführen?

A: Um dieses Problem zu beheben, müssen Sie Ihre App mit Code .__ signieren. Signieren von Zertifikaten, wobei die Organisationseinheit Subject (OU) auf .__ gesetzt ist. Ihre Team ID Alle Enterprise- und Standard-iOS-Entwicklerzertifikate die nach der Veröffentlichung von iOS 8 erstellt wurden, haben das neue Team-ID-Feld an der richtigen Stelle, damit Swift-Sprachanwendungen ausgeführt werden können.

Normalerweise wird dieser Fehler im Konsolenprotokoll des Geräts mit der Meldung .__ angezeigt. ähnlich einer der folgenden:

[....] [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

Die neuen Zertifikate werden benötigt, wenn ein Archiv erstellt und verpackt wird Ihre App. Selbst wenn Sie eines der neuen Zertifikate besitzen, kündigen Sie einfach ein vorhandenes Swift-App-Archiv funktioniert nicht. Wenn es mit einem .__ erstellt wurde. Vor dem iOS 8-Zertifikat müssen Sie ein anderes Archiv erstellen.

Wichtig: Seien Sie vorsichtig, wenn Sie ein neues .__ widerrufen und einrichten müssen. Enterprise Distribution-Zertifikat Wenn Sie ein Inhouse-Unternehmen sind Entwickler müssen Sie darauf achten, dass Sie eine .__ nicht widerrufen. Verteilungszertifikat, das zum Signieren einer App in einem Ihrer .__ verwendet wurde. Mitarbeiter des Unternehmens verwenden weiterhin alle Apps, die mit .__ signiert wurden. Dieses Unternehmensverteilungszertifikat funktioniert nicht mehr sofort. Das Vorstehende gilt nur für Enterprise Distribution Zertifikate. Entwicklungszertifikate können für .__ sicher widerrufen werden. Enterprise/Standard-iOS-Entwickler.

Da die AirSign-Jungs state das Problem aus dem fehlenden Attribut ODER im Feld subject des In-House-Zertifikats ziehen.

Betreff: UID = 269J2W3P2L, CN = iPhone-Verteilung: Firmenname, OU = 269J2W3P2L, O = Firmenname, C = FR

Ich habe ein Enterprise-Entwicklungszertifikat, das ein neues erstellt, das das Problem gelöst hat.

16
flatronka

Projekt P importiert die benutzerdefinierte Bibliothek L, und Sie müssen L hinzufügen 

P -> Build Phases -> Embed Frameworks -> +. Das ist für mich in Ordnung.

 enter image description here

10

Ich hatte das gleiche Problem, nachdem ich zu einem neuen Mac gewechselt hatte, und nach Stunden probierte ich alle vorgeschlagenen Antworten in den Fragen aus, nichts davon funktionierte für mich.

Die Lösung für mich war die Installation dieses fehlenden Zertifikats . http://developer.Apple.com/certificationauthority/AppleWWDRCA.cer

Hier finden Sie die Antwort . https://stackoverflow.com/a/14495100/976628

7
Bruno Coelho

Ich löste mich durch Löschen der abgeleiteten Daten und dieses Mal funktionierte es korrekt. Versucht mit Xcode 7.3.1GM

6
WhiteTiger

Ändern Pod-Ressourcen kopieren für das Ziel aus:

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

zu:

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

Dieses Problem tritt erneut in Xcode 10.2 auf. Sie müssen das folgende Paket von Apple herunterladen und installieren. Es bietet Swift 5-Laufzeitunterstützung für Befehlszeilentools .

https://support.Apple.com/kb/DL1998?locale=en_US

5
Jim Bray

Nachdem ich alles ausprobiert hatte, stellte ich schließlich fest, dass der Build nicht immer wieder jedes Detail enthält. Möglicherweise beschleunigen Sie den Vorgang ... Um eine vollständige Verpackung zu gewährleisten, bevor Sie ein Gerät ausführen, müssen Sie zuerst eine Bereinigung durchführen: Shift-Cmd-K . Dann erstellen Sie mit Cmd-B ..__ das laufen lassen auf Ihrem Gerät . Einfach . Herzliche Grüße an alle Sie Nizza Jungs an diesem Ort!

5
Daniel

Nachdem ich alles ohne Erfolg ausprobiert hatte, funktionierte es, @executable_path/Frameworks aus dem Packaging section zu entfernen (weiß nicht, wie es überhaupt dazu gekommen ist).

 enter image description here

4
abinop

In meinem Fall war es nur der Name meines Ziels: 

Ich habe es so umbenannt: MyApp.something und das gleiche Problem ist erschienen ..... Aber ich sah im Build-Einstellungen-Fenster, dass mein Produktmodulname wie folgt geändert wurde MyApp-etwas .. Also entfernte ich den Punkt in meinem Zielnamen (MyAppSomething) und das Problem war weg.

4

Keine der Lösungen funktionierte für mich. Neustart des Telefons behoben. Seltsam, aber es hat funktioniert. 

4
newDeveloper

keine dieser Lösungen schien zu funktionieren, aber als ich die Erlaubnis des World Wide Developer Cert in Use System defaults änderte, funktionierte es. Ich habe die Schritte und Screenshots in den Link unten eingefügt 

Ich möchte Sie dazu ermutigen, das Ticket in dem hier genannten Apple-Fehlerbericht zu protokollieren, da Apple diesen massiven Fehler wirklich beheben sollte: https://stackoverflow.com/a/41401354/559760

3
Mobile Bloke

Xcode 7.2, iOS 9.2 auf einem Gerät, 9.0 auf einem anderen Gerät. Beide hatten den Fehler. Keine Ahnung, was sich daran geändert hat, aber die oben genannten Lösungen für den WWDR waren für mich richtig. Installieren Sie das Zertifikat und das Problem gelöst.

https://forums.developer.Apple.com/message/43547https://forums.developer.Apple.com/message/84846

2
HG123

Es gibt viele Antworten, aber vielleicht hilft meine Antwort jemandem. 

Ich habe dasselbe Problem. Meine App funktioniert gut mit dem Simulator, aber auf dem Gerät ist abgestürzt, wie ich die Lunches-App abbekomme, und gibt wie oben Fehler. Ich habe alle Antworten und Lösungen ausprobiert. In Mein Fall, Mein Projekt habe ich mehrere Ziele. Ich habe aus Ziel A ein doppeltes Ziel B erstellt. Ziel B funktioniert gut, während Ziel A abgestürzt ist. Ich verwende unterschiedliche Image-Assets für jedes Ziel. Nach dem Suchen und Durchführen von Google habe ich etwas gefunden, das jemandem helfen könnte. 

Die App stürzt nicht mehr ab, wenn ich den Namen der Startbilder für beide Apps ändere. z. B. Ziel A Launch Image Asset-Name LaunchImage A. Target B Lunch Image Asset-Name LaunchImage B und ordnungsgemäß in der Registerkarte "Allgemein" jedes Ziels zugewiesen. Meine Apps funktionieren gut.

2
VDPATEL

Diese Fehlermeldung kann auch beim Upgrade von Xcode (und danach auf eine neue Version von Swift) auftreten, und Ihr Projekt verwendet ein Framework, das mit einer älteren/früheren Swift-Version erstellt/kompiliert wurde.

In diesem Fall wird das Problem durch das erneute Erstellen des Frameworks und das erneute Hinzufügen behoben.

2
Paul Popiel

Die einfachste und leicht zu ignorierende Methode: Reinigen und Wiederherstellen.

Dies löste das Problem, nachdem die oben genannten Antworten ausprobiert und nicht funktioniert hatten.

2
Michael Yang

Ich habe mehrere Versionen von Xcode gleichzeitig installiert. Das Framework wurde mit einer neueren Version von Xcode erstellt. Die App, die ich kompilieren wollte, war mit einer älteren Version von Xcode. Wenn ich das Framework und die App mit derselben Version von Xcode bereinigt und kompiliert habe, funktionierten die Dinge.

1
neoneye

Ich verwende Xcode 8.3.3 und Xcode 9.2. Die Lösung für mich war, meinen Standard-Xcode mit Xcode Select von 8 auf 9 zu ändern:

$ xcode-select --print-path

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

Edit: Eigentlich schien hier zu helfen, dass Xcode 9.2 die von Xcode 8.3.3 abgeleiteten Daten verwendete. Keine Lösung, aber zumindest kann ich mit meiner Arbeit fortfahren.

1
Matt Bearson

Ich verwende Xcode 7.2. Wenn Sie alle oben genannten Schritte ausgeführt haben und der Fehler weiterhin auftritt, löschen Sie das alte Zertifikat aus Keychain Access! Es ist so ein Schmerz, dies endlich zu beheben.

0
Maggie

Ich fing an, diesen ähnlichen Fehler beim Testen der S3-Datei mithilfe von AWS-Diensten zu erhalten. Unten war der Fehler .dyld: Bibliothek nicht geladen: @ rpath/AWSAutoScaling.framework/AWSAutoScaling

Ich habe viel gesucht und obige Lösungen sind für mich auch nicht hilfreich. Der folgende Link hat mir geholfen, dieses Problem zu lösen.

https://forums.developer.Apple.com/thread/21292

Welches besagt, um dieses Problem zu beheben, indem der WWDR (Apple Worldwide Developer Relations Certification Authority) neu heruntergeladen wird.

0
chanduthedev

Wenn Sie einen Fehler wie diesen erhalten:

Das Bundle "YourFrameworkTests" konnte nicht geladen werden, da es beschädigt ist oder die erforderlichen Ressourcen fehlen. Versuchen Sie, das Bundle erneut zu installieren. (dlopen_preflight (/ some/path /.../ YourFrameworkTests.xctest/YourFrameworkTests): Bibliothek nicht geladen: @ rpath/SomeOther.framework/SomeOther Referenziert von:/some/path/...)

verwenden Sie CocoaPods in Ihrem Framework und versuchen Sie dann, Podfile zu bearbeiten und inherit! :search_paths vom Test-Ziel zu entfernen , und führen Sie pod install erneut aus.

Weitere Informationen finden Sie unter https://github.com/CocoaPods/CocoaPods/issues/8868 .

0
Marius

Haben Sie kurz versucht, "Enable Bitcode = NO" zu aktivieren. Für mich geht das. 

In meinem Fall wurde mein Projekt in Object-C geschrieben und enthält ein Drittanbieter-Framework, das in Swift geschrieben wurde. Ich kann meine APP sowohl im Simulator als auch im realen Gerät im Entwicklermodus ausführen. Nachdem ich jedoch die APP mit dem Ad-hoc-Bereitstellungsprofil erreicht und diesen ipa-OTA auf einem realen Gerät installiert hatte, stürzte er ab. Erwähnen Sie nicht einmal den Upload in den Laden. Hoffen Sie, dass diese Informationen helfen können.

0
Tsung-Yi Tsai

Für mich war das Erstellen einer Mac OS-Befehlszeile Swift-App, die von Swift-Bibliotheken von Drittanbietern (z. B. SQLite) abhängig war, keine der oben genannten Lösungen zu funktionieren. Was funktionierte, war das direkte Hinzufügen des folgenden Pfads zu meinen Runpath-Suchpfaden in den Build-Einstellungen:

/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/macosx/

Dabei wurde zur Laufzeit eine Warnung ausgegeben, dass Xcode 2 Versionen von libswiftCore gefunden hat - was sinnvoll ist. Außer dass diese Zeile nicht eingeschlossen wurde, konnte Xcode keine libswiftCore-Versionen finden.

Jedenfalls ist das für mich eine gute Wahl, auch wenn es nicht richtig erscheint - meine App ist nur ein Dienstprogramm, das ich nicht verteilen möchte, und zumindest läuft es jetzt!

0
millionyearsold

So fügen Sie die Enterprise-Vertriebs-Zertifizierungslösung hinzu: Sie können Keychain öffnen und das Zertifizierungsprogramm überprüfen. Wenn es einen roten Text gibt, der besagt, dass die Vertrauenskette nicht überprüft werden kann oder es widerrufen wird, funktioniert es NICHT! Auf meinem Computer wurde unser Distributionszertifikat als widerrufen angezeigt, obwohl es im Webportal als noch gültig angezeigt wurde. Wir haben ein neues Distributionszertifikat erhalten, das in Keychain grün (gültig) war, und dieses Problem wurde behoben.

0
r590

Ich bin auf Xcode 8.3.2. Für mich war das Problem das AppleWWDRCA-Zertifikat sowohl im System- als auch im Anmelde-Schlüsselbund. Beides entfernt und nur zum Anmeldenamen hinzugefügt, jetzt läuft es wieder einwandfrei. 2 Tage verloren ????

0
Max

Wenn Sie von Xcode aufgefordert werden, Zertifikate zurückzusetzen, setzen Sie reset it. Mit diesen Fehlermeldungen kann die App ohne Absturz auf dem tatsächlichen Gerät ausgeführt werden. Sobald dieses Problem in einem Swift-Projekt behoben ist. Andere Swift-Projekte mit diesem Problem wurden ebenfalls behoben. 

Ich habe mich einen halben Tag lang darum gekämpft und fand, dass Reset-Zertifikate im Provisioning-Portal immer wieder helfen. 

0
oOEric

Aus dem Beitrag von https://github.com/CocoaPods/cocoapods-integration-specs/pull/24/files bedeutet dies, dass das Zeichen "Swift.dylib" ein Zeichen hat, aber nicht erfolgreich war. Ich habe nicht einmal ein neues Swift-Projekt mit Cocoapod-Unterstützung erstellt. 

0
BollMose

Ich habe das gleiche Problem, und das Problem ist wie folgt:

dyld: Library not loaded: @rpath/Result.framework/Result Referenced from: /private/var/mobile/Containers/Bundle/Application/74AD1FE2-7095-47D2-B059-520863050EE2/ReactiveCocoaTest.app/Frameworks/ReactiveCocoa.framework/ReactiveCocoa Reason: image not found

Meine Lösung ist unten:

In TARGET -> Build Setting -> Other Linker Flag -> löschen Sie das ReactiveCocoa-Framework. Wenn xxx.framework ist, sollten Sie die xxx löschen.

löschen Sie den ReactiveCocoa

 delete the ReactiveCocoa

0
aircraft

In meinem Fall funktionierte eines meiner Testziele, das andere jedoch nicht. Es gab den obigen Fehler mit einer fehlenden Bibliothek oder was auch immer. Ich habe die Einstellungen für beide Testziele verglichen und festgestellt, dass bei "Test Host" die Konfiguration fehlte. Ich kopierte das also vom funktionierenden Testziel und fixierte mein defektes Testziel!

 enter image description here

0
skr1p7k1dd

In meinem Fall,

Ich habe @executable_path/Frameworks eingestellt

Aber ich muss auch "Framework-Suchpfade" einstellen

$(PROJECT_DIR)/Frameworks

ändern als recursive

Was für mich funktioniert.

0
Max

Wenn Ihr Projekt über Cocoapoden und andere Schemata verfügt, versuchen Sie, das Pod-Update auszuführen. Das hat es für mich behoben.

0
gmogames

Für mich ist die Lösung hier unten Deaktivieren Sie das "Einbetten von Asset Packs in Produkt-Bundle", und dieses Problem ist weg

 enter image description here

0
ashish.surana

Die obigen Lösungen haben für mich nicht funktioniert. Ich behebe das Problem mit den folgenden Schritten:

  1. Ich musste zum Telefon gehen (Einstellungen> Profil) und die -Profile löschen, die sich im Telefon befanden (einschließlich aller Apps, die mit diesem Profil/diesen Bestimmungen verbunden sind.).
  2. Stellen Sie anschließend sicher, dass Sie die Apple-Bestimmungen in xcode herunterladen. Gehen Sie zu Xcode-Einstellungen> Konto und melden Sie sich bei Ihrem Apple-Entwicklerkonto an.
0
LuAndre