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
- Neustart von Xcode, iPhone, Computer
- Reinigung & Umbau
- Widerrufen und Erstellen eines neuen Zertifikat- / Bereitstellungsprofils
- Runpath Search Paths ist
$(inherited) @executable_path/Frameworks
- Eingebetteter Inhalt enthält Swift-Code lautet "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
Antworten:
Bei mir hat keine der vorherigen Lösungen funktioniert. Wir haben festgestellt, dass in den Build-Einstellungen das Flag "Swift Standard Libraries immer einbetten" vorhanden ist, das auf YES gesetzt werden muss. Es war standardmäßig NEIN!
Build Settings > Always Embed Swift Standard Libraries
Nachdem Sie dies eingestellt haben, bereinigen Sie das Projekt, bevor Sie es erneut erstellen.
Für begeisterte Leser einige Erklärungen Der wichtigste Teil ist:
Die Flagge wurde früher genannt
Embedded Content Contains Swift Code
quelle
Überraschenderweise habe ich mein Projekt (Shift + cmd + K) nur "bereinigt" und es hat funktioniert. Schien jedoch mit dem Zertifikat verwandt zu sein.
quelle
Ich bekam diesen Fehler, als ich entfernte:
von
Runpath Search Paths
in meinen Build-Einstellungen. Durch das Ersetzen wurde alles wieder repariert (Gott sei Dank für die Quellcodeverwaltung!)Ich weiß nicht, wie es dort hingekommen ist, aber es scheint notwendig zu sein, damit eine Binärdatei ihre eingebettete Swift-Laufzeit findet.
quelle
@loader_path/../Frameworks
MacOS-Unit-Tests und@loader_path/Frameworks
iOS-Unit-Tests hinzugefügt werden.Für das Gerät müssen Sie außerdem das dynamische Framework zum
Embedded binaries
Abschnitt auf derGeneral
Registerkarte des Projekts hinzufügen .quelle
In Xcode 8 ist die Option für
Embedded Content Contains Swift Code
Option nicht mehr verfügbar.Es wurde umbenannt in
"Always Embed Swift Standard Libraries = YES"
quelle
Ich denke, es ist ein Fehler, wenn Zertifikate direkt aus Xcode generiert werden. So lösen Sie (zumindest in Xcode 6.1 / 6A1052d):
quelle
OK, teilen Sie hier eine andere Ursache für diesen Fehler. Ich habe ein paar Stunden gebraucht, um das zu klären.
In meinem Fall lautete die Vertrauensrichtlinie meines Zertifikats in Keychain Access Always Trust. Durch Zurücksetzen auf die Standardeinstellungen wurde das Problem behoben.
Um das Fenster mit den Zertifikatseinstellungen zu öffnen, doppelklicken Sie auf das Zertifikat in der Liste der Zertifikate für den Schlüsselbundzugriff.
quelle
Ich hatte dieses Problem beim Ausführen meiner Swift-Tests (aber nicht meiner App). Es stellt sich heraus, dass der Test mehr als
@executable_path/Frameworks
in seinerRunpath Search Paths
Build-Einstellung für das Testziel enthalten musste. Das Festlegen der Runpath-Suchpfade auf Folgendes hat mir sehr geholfen:quelle
carthage copy-frameworks
da es sich um eine sekundäre Abhängigkeit handelte (eine, die ein von mir verwendetes Framework hinzugefügt hatte )Dieses Problem tritt in Xcode 10.2 erneut auf . Sie müssen das folgende Paket von Apple herunterladen und installieren. Es bietet Swift 5 Runtime-Unterstützung für Befehlszeilentools .
https://support.apple.com/kb/DL1998?locale=de_DE
quelle
msvcrt.dll
Sie haben die festlegen ,
Runpath Search Paths
um@executable_path/Frameworks
wie im folgenden Screenshot von Build - Einstellungen gezeigt:Wenn in Swift eingebettete Frameworks erstellt wurden, können Sie
YES
die Build-Optionen festlegenEmbedded Content Contains Swift Code
.quelle
otool -L
denn diese Dylibs sagten mir, dass sie bereits@rpath/...
für ihren eigenen Weg benutzten . Wenn Sie nun den Runpath-Suchpfad auf den Pfad dieses Ordners setzen, kann ich mein Tool ausführen und es findet die Dylibs, die in einem Ordner daneben gespeichert sind.@rpath/libswiftAppKit.dylib
. Ein Problem führte mich zu der Erkenntnis, dass ich den Suchpfad hinzufügen musste:@executable_path/../Frameworks/
basierend auf diesen Anweisungen . Ob dies nur für meine Projektstruktur gilt, kann ich nicht sagen. Bemerkenswerterweise musste ich DerivedData nicht bereinigen, damit diese Einstellung wirksam wurde!Ich denke, Apple hat es bereits unter Abstürzen der Swift-App zusammengefasst, als versucht wurde, auf die Swift-Bibliothek libswiftCore.dylib zu verweisen
Zitiert aus technischen Fragen und Antworten QA1886 :
Als AirSign Jungs geben Sie das Problem Wurzeln aus dem fehlenden OU - Attribute im Betreff - Feld des In-House - Zertifikats .
Betreff: UID = 269J2W3P2L, CN = iPhone Verteilung: Firmenname , OU = 269J2W3P2L , O = Firmenname , C = FR
Ich habe ein Unternehmensentwicklungszertifikat, das das Problem durch Erstellen eines neuen Zertifikats gelöst hat.
quelle
Lassen Sie uns Projekt P importiert benutzerdefinierte Bibliothek L, dann müssen Sie L hinzufügen
P -> Build Phases -> Embed Frameworks -> +
. Das ist für mich in Ordnung.quelle
Der einfachste und am leichtesten zu ignorierende Weg: Reinigen und wieder aufbauen.
Dies löste das Problem, nachdem die obigen Antworten ausprobiert wurden und nicht funktionierten.
quelle
Ich hatte das gleiche Problem, nachdem ich auf einen neuen Mac gewechselt war, und nach Stunden, als ich alle vorgeschlagenen Antworten in den Fragen ausprobiert hatte, funktionierte nichts davon 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
quelle
Ändern Sie die Ressourcen für Copy Pods für das Ziel von:
zu:
quelle
Ich habe das Problem gelöst, indem ich die abgeleiteten Daten gelöscht habe und diesmal hat es richtig funktioniert. Versucht mit Xcode 7.3.1GM
quelle
Diese Fehlermeldung kann auch beim Upgrade von Xcode (und anschließend auf eine neue Version von Swift) auftreten, und Ihr Projekt verwendet ein Framework, das mit einer älteren / früheren Version von Swift erstellt / kompiliert wurde.
In diesem Fall wird das Problem behoben, indem das Framework neu erstellt und hinzugefügt wird.
quelle
Nachdem ich alles ausprobiert hatte, stellte ich schließlich fest, dass der Build nicht immer jedes Detail zu enthalten scheint. Vielleicht, um den Prozess zu beschleunigen ... Um eine GANZE Verpackung zu gewährleisten, bevor Sie auf einem Gerät laufen, führen Sie zuerst eine Reinigung durch: Shift-Cmd-K. Dann bauen mit: Cmd-B. Führen Sie es anschließend auf Ihrem Gerät aus. Einfach. Herzliche Grüße an alle netten Jungs an diesem Ort!
quelle
In meinem Fall war es nur der Name meines Ziels:
Ich habe es so umbenannt: MyApp.something und das gleiche Problem sind aufgetreten. Aber ich habe im Fenster Build-Einstellungen gesehen, dass mein Produktmodulname wie folgt geändert wurde: MyApp-etwas . Also habe ich den Punkt in meinem Zielnamen ( MyAppSomething ) entfernt und das Problem war behoben .
quelle
Nachdem ich alles ohne Erfolg ausprobiert hatte, funktionierte es für mich, es
@executable_path/Frameworks
aus dem zu entfernenPackaging section
(ich weiß nicht, wie es überhaupt dazu kam, dort zu sein).quelle
Keine der Lösungen hat bei mir funktioniert. Durch einen Neustart des Telefons wurde das Problem behoben. Seltsam, aber es hat funktioniert.
quelle
Keine dieser Lösungen schien zu funktionieren, aber als ich die Erlaubnis des World Wide Developer-Zertifikats in änderte
Use System defaults
funktionierte es. Ich habe die Schritte und Screenshots in den unten stehenden Link aufgenommenIch würde Sie ermutigen, das Ticket wie hier erwähnt im Apple-Fehlerbericht zu protokollieren, da Apple diesen massiven Fehler wirklich beheben sollte: https://stackoverflow.com/a/41401354/559760
quelle
Xcode 7.2, iOS 9.2 auf einem Gerät, 9.0 auf einem anderen. Beide hatten den Fehler. Keine Ahnung, was sich dadurch geändert hat, aber die obigen Lösungen für den WWDR waren für mich richtig. Installieren Sie das Zertifikat und das Problem ist behoben.
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
quelle
Es gibt viele Antworten, aber vielleicht hilft meine Antwort jemandem.
Ich habe das gleiche Problem. Meine App funktioniert in Simulator einwandfrei, aber auf dem Gerät ist es abgestürzt, als ich die App lunches habe und wie oben einen Fehler ausgibt. Ich habe alle Antworten und Lösungen ausprobiert. In meinem Fall, Mein Projekt, habe ich mehrere Ziele. Ich habe aus Ziel A ein doppeltes Ziel B erstellt. Ziel B funktioniert einwandfrei, während Ziel A abgestürzt ist. Ich verwende für jedes Ziel unterschiedliche Bildelemente. Nach dem Suchen und Google habe ich etwas gefunden, das jemandem helfen könnte.
Die App stürzt nicht mehr ab, wenn ich den Namen von Startbildern für beide Apps ändere. zB Ziel A Launch Image Asset-Name LaunchImage A. Ziel B Mittagessen Name des Image-Assets LaunchImage B und ordnungsgemäß zugewiesen auf der Registerkarte Allgemein jedes Ziels. Meine Apps funktionieren einwandfrei.
quelle
Für mich schien das Erstellen einer MacOS-Befehlszeilen-Swift-App, die von Swift-Bibliotheken von Drittanbietern (z. B. SQLite) abhing, keine der oben genannten Lösungen zu funktionieren. Was funktioniert hat, 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 gewarnt, dass Xcode zwei Versionen von libswiftCore gefunden hat - was sinnvoll ist. Abgesehen davon, dass das Nichteinschließen dieser Zeile dazu führte, dass Xcode keine Versionen von libswiftCore fand.
Wie auch immer, das reicht für mich, auch wenn es nicht richtig erscheint - meine App ist nur ein Dienstprogramm, das ich nicht verteilen möchte, und zumindest läuft es jetzt!
quelle
Ich habe mehrere Versionen von Xcode gleichzeitig installiert. Das Framework wurde mit einer neueren Version von Xcode erstellt. Die App, die ich zu kompilieren versuchte, war mit einer älteren Version von Xcode. Als ich sowohl das Framework als auch die App mit derselben Version von Xcode bereinigt und kompiliert habe, haben die Dinge funktioniert.
quelle
Ich habe diesen ähnlichen Fehler beim Testen des Hinzufügens einer S3-Datei mithilfe von AWS-Diensten erhalten. Unten war der Fehler. dyld: Bibliothek nicht geladen: @ rpath / AWSAutoScaling.framework / AWSAutoScaling
Ich habe viel gesucht und obige Lösungen sind auch für mich nicht hilfreich. Der folgende Link hat mir geholfen, dieses Problem zu lösen.
https://forums.developer.apple.com/thread/21292
Damit soll dieses Problem behoben werden, indem der WWDR (Apple Worldwide Developer Relations Certification Authority) erneut heruntergeladen wird .
quelle
Ich bin auf Xcode 8.3.2. Für mich war das Problem, dass sich das AppleWWDRCA-Zertifikat sowohl im System- als auch im Anmeldeschlüsselbund befand. Beide wurden entfernt und dann nur zum Anmeldeschlüsselbund hinzugefügt. Jetzt läuft es wieder einwandfrei. 2 Tage verloren 😭
quelle
Ich verwende Xcode 8.3.3 und Xcode 9.2. Die Lösung für mich bestand darin, 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
Bearbeiten: Eigentlich schien hier zu helfen, dass Xcode 9.2 die abgeleiteten Daten aus Xcode 8.3.3 verwendete. Keine Lösung, aber es ermöglicht mir zumindest, meine Arbeit voranzutreiben.
quelle
Wenn Sie einen Fehler wie diesen erhalten:
und verwenden Sie CocoaPods in Ihrem Framework, versuchen Sie dann, das zu bearbeiten
Podfile
undinherit! :search_paths
vomTest
Ziel zu entfernen , und führen Sie es auspod install
erneut aus.Weitere Informationen finden Sie unter https://github.com/CocoaPods/CocoaPods/issues/8868 .
quelle