2017 - Unglaublich, nur ein Neustart von Xcode hat dieses abscheuliche Problem für mich gelöst.
Fattie
Antworten:
152
Bei mir hat keine der vorherigen Lösungen funktioniert. Wir haben festgestellt, dass ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESin den Build-Einstellungen ein Flag (in früheren Versionen: "Eingebetteter Inhalt enthält schnellen Code") vorhanden ist, das auf YES gesetzt werden muss. Es war standardmäßig NEIN!
Dies hat es auch für mich behoben, ich habe die Einstellung für die Erweiterung auf true geändert. Das Projekt ist objc, aber die ext ist schnell und hat nicht von
Anfang
Dies war auch mein Vorsatz. Ich habe ein vorhandenes iOS-App-Projekt (ObjC), zu dem ich eine Heute-Erweiterung hinzufüge (neues Ziel im Projekt, Erweiterung ist ein Plugin für die Haupt-App). Ich musste in die App-Zieleinstellungen gehen und aktivieren, dass das Build-Setting- und Viola-Problem weg war. Sinnvoll, aber angesichts der Menge anderer Dinge, die Xcode 6.0 automatisch für Sie konfiguriert, ist es eine Schande, dass diese wichtige Option übersehen wurde.
Hsoi
Dies hat mein Problem behoben - wir hatten ein älteres Projekt mit viel ObjC, zu dem wir kürzlich Swift hinzugefügt haben. Obwohl das IPA erstellt wurde und die Swift-Bibliotheken enthielt, funktionierte es auf einigen iOS7-Geräten nicht, bis diese Build-Einstellung überprüft wurde und wir ein neues IPA erstellt haben. Dies funktionierte auf allen unseren problematischen Geräten.
Kendall Helmstetter Gelner
1
Sonst hat nichts funktioniert. Sie sind ein verdammter Zauberer, mein guter Herr!
Ricky Hartmann
2
Eingebetteter Inhalt enthält veralteten Swift-Code. Verwenden Sie ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
nivritgupta
91
Dieser Fehler kann auftreten, wenn bei der Konvertierung eines Objective-C-Projekts zur Verwendung von Swift ein Fehler aufgetreten ist. Das Problem ist, dass die Linker-Build-Einstellungen nie richtig konfiguriert wurden, sodass Sie dies von Hand tun müssen. Suchen Sie nach der Build-Einstellung Runpath Search Paths und setzen Sie sie auf:
$(inherited)@executable_path/Frameworks
EDIT: Ich sollte auch hinzufügen, dass es in letzter Zeit eine Flut dieser Fehler gegeben hat, die durch etwas ganz anderes verursacht wurden - Apple hat eine Änderung in Swift selbst vorgenommen, beginnend vielleicht mit Xcode 6.1 oder 6.1.1. Die einzige Lösung scheint darin zu bestehen, Xcode zu beenden, Ihre Zertifikate in Keychain Access zu zerstören, zum Mitgliedercenter zu gehen und alle Zertifikate und Profile (mit Ausnahme der Profile für Apps im Store - Sie können sie nicht löschen) zu löschen und dann das zu starten gesamter Zertifikatanforderungsprozess von Grund auf neu.
Hat für mich gearbeitet. Auf die neueste Xcode-Version aktualisiert und festgestellt, dass dieser Einstellungspfad in meinem Projekt zur älteren Version führte.
ObjectiveTC
1
hat funktioniert!! du hast meinen Tag gerettet! Ich habe die schnelle GitHub-Steuerung in Ziel C mit xcode 6 GM verwendet. Vielen Dank.
Imthegiga
1
Das hat auch bei mir funktioniert. Neustart von Xcode nicht.
Dan Loewenherz
1
arbeitete für mich. Übrigens habe ich am Ende der Fehlermeldung "Grund: Bild nicht gefunden" erhalten.
Peter Zhou
2
Gott sei Dank! Da war es!
BoilingLime
79
Ich bin mir nicht sicher, warum diese Frage abgelehnt wird. Ich hatte dieses Problem auch, als ich zum ersten Mal versuchte, Swift mit einem vorhandenen Projekt zu verwenden. Ein Xcode-Neustart hat dies auch für mich behoben.
Ich versuche, Swift in einem neuen iOS-Projekt zu verwenden, und ich erhalte diesen Fehler, wenn ich versuche, auf einem iOS 8-Gerät auszuführen, aber nicht im Simulator. Durch einen Neustart von Xcode, meinem Laptop oder meinem Telefon wird das Problem nicht behoben. Gibt es eine andere Lösung?
David Skrundz
2
Leider funktionierte dies unter Beta 4 nicht, als ich versuchte, eine Mac-App zu starten, die ein Swift-basiertes Framework verwendet.
Craig Otis
Bitte fügen Sie den @ Developer-Link in Ihre Antwort ein, da dies wirklich hilfreich ist.
Lachezar Todorov
Versuchen Sie dies, aber werfen Sie auch eine saubere.
Scott McKenzie
55
Ich habe lange nach diesem Thema gesucht. Es gibt mehrere Gründe, die dieses Problem verursachen.
Wenn Sie mit Swift-Code / Bibliothek in einem Objectice C-Projekt konfrontiert sind, sollten Sie Lösung 1-2-3 ausprobieren
Wenn Sie mit einem neuen Problem konfrontiert sind, passt eine Swift-Projektlösung 4 am besten zu Ihnen.
Lösung 1:
Starten Sie Xcode neu, dann Computer und iPhone
Lösung 2:
Gehen Sie zu den Projekterstellungseinstellungen und setzen Sie das Always Embed Swift Standard Libraries(vorherige Embedded Content Contains Swift Code) Flag aufYES
Lösung 3:
Gehen Sie zu den Projekterstellungseinstellungen und fügen Sie @executable_path/Frameworksdie Runpath Search PathsOption hinzu
Lösung 4:
Wenn keines der oben genannten Verfahren funktioniert, sollte dies der Fall sein. Apple scheint ein Ninja- Patch- Zertifikat zu sein, wie in AirSigns Post erwähnt
Bei InHouse-Zertifikaten
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
Sie haben ein neues Feld mit dem Namen OU hinzugefügt
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
Sie sollten also nur das Zertifikat und die Bereitstellung neu erstellen
Ich wollte hinzufügen ... MacOS-Projekte erfordern, @executable_path/../Frameworkswo iOS-Projekte es ohne das ..in der Mitte erfordern . Das Ändern dieses Werts ist wichtig, wenn Sie ein Ziel von einem Betriebssystem auf das andere konvertiert haben.
Matt Gallagher
41
In meinem Fall habe ich versucht, ein benutzerdefiniertes Framework zu importieren, und es wurde ein ähnlicher Fehler angezeigt. Es stellte sich heraus, dass ich das Framework in die eingebetteten Binärdateien und nicht in die verknüpften Frameworks und Bibliotheken importieren musste.
Eingebettete Binärdateien finden Sie unter Projekteinstellungen -> -> Allgemein
Ich habe diesen Fehler gesehen, als ich versucht habe, ein kompiliertes Framework zu verwenden, das in Swift geschrieben wurde (anstatt die Quelldateien als separates Ziel einzubetten). Die obige Lösung hat auch bei mir funktioniert.
Alex da Franca
Vielen Dank, hat meinen ganzen Tag gerettet.
Badrinath
1
Arbeitete für mich, nachdem ich versucht hatte, ein teilweise schnell geschriebenes Framework mit einem alten Projekt zu verknüpfen, das völlig objektiv war. Die Einstellung befand sich jedoch tatsächlich unter den Build-Einstellungen. Weitere Informationen hier: stackoverflow.com/questions/24163870/…
Pellet
Dies ist unter Zieleinstellungen, nicht Projekt, nur um sicherzugehen.
Legoless
16
Für Entwickler, die dieses Problem mit einer Adhoc / Enterprise-Distribution hatten,
Erstellen Sie das Produktionszertifikat aus dem Entwicklungsportal und generieren Sie das Verteilungsprofil neu. Laden Sie beide herunter und installieren Sie sie auf Ihrem Mac. Stellen Sie sicher, dass Sie in Ihren Xcode-Build-Einstellungen das richtige Profil ausgewählt und Ihre App neu erstellt haben.
Während dieser Link die Frage beantworten kann, brechen die Links. Aus diesem Grund wird empfohlen, die wichtigsten Teile des Links anzugeben. Nur-Link-Antworten werden nicht empfohlen.
Pokechu22
Arbeitete für meine Unternehmens-App. Vielen Dank!
Sylvanaar
15
Lösung 5:
In meinem Fall waren alle in der Antwort von accfews genannten Lösungen sehr hilfreich, aber keine hat funktioniert. Ich habe mein Problem gelöst, indem ich meine schnelle Bibliothek im Abschnitt "Eingebettete Binärdateien" im Abschnitt "Allgemein" des Ziels meines Projekts hinzugefügt habe. Vielleicht liegt das daran, dass ich mein schnelles Framework in meinen Arbeitsbereich aufgenommen habe? Was auch immer es jetzt kompiliert! Mach dich bereit Swift, ich bin hier!
OK, das schien zu funktionieren. Ich versuche nur, eine schnelle Codebibliothek für ein schnelles Projekt zu schreiben. Irgendwie frage ich mich immer noch, ob das richtig ist. Ich bin jedoch begeistert, dass es funktioniert.
kpierce8
Ich hatte meine Frameworks in den Abschnitt "Frameworks kopieren" der Registerkarte "Phasen erstellen" aufgenommen, aber ein Framework konnte hier nicht ausgewählt werden. Das "Allgemein" erlaubte die Auswahl dieses anderen Frameworks und fügte es den Build-Phasen hinzu, und die App wird erstellt und ausgeführt. Seltsamerweise konnte ich die App immer noch auf dem Simulator ausführen.
DJBP
Danke Christophe. Wie Sie haben Sie alle Lösungen ausprobiert, und es war eindeutig nicht intuitiv zu verstehen, dass eine schnelle Bibliothek nicht einfach in ein Projekt in ein anderes gezogen werden kann. Sie müssen die Bibliothek eindeutig in den eingebetteten Bereich einfügen (auch bekannt als schnelleres Modul, ich bezweifle, dass es andere Arten von eingebetteten Inhalten geben kann). Auch wenn Xcode es gut automatisch erkennen und die Arbeit für uns erledigen könnte ... Aber das ist nicht die Aufgabe unseres geliebten XCode;), definitiv hier, um unsere Zeit zu verschwenden ...
Mr Bonjour
Wenn die Bibliothek bereits in der Liste enthalten ist, stellen Sie außerdem sicher, dass sie als "Einbetten & Signieren" markiert ist. Dies behebt mein Problem.
SquareBox
10
Ein einfacher Neustart von Xcode löste das Problem für mich.
Dies geschah, nachdem versucht wurde, eine neue Klasse in ein altes Projekt einzufügen. Es gibt keine Informationen darüber, wie alt das Projekt ist. Das Löschen des Projekts und das Erzwingen der Aktualisierung des Caches sind also sinnvoll. Altes Projekt impliziert auch, dass es eine gute Chance gibt, dass das Zertifikat in der Zwischenzeit geändert wird, da Apple Production- und Developer-Zertifikate jedes Jahr ablaufen. Informationen zu den Hauptfehlern finden Sie in den technischen Fragen und Antworten von Apple unter. developer.apple.com/library/ios/qa/qa1886/_index.html . Das Gleiche ist mir passiert und Clean Build Folder lässt das Projekt erneut ausgeführt werden. Lassen Sie die Leute versuchen ..
Stakahop
Es geschah kurz nach dem erneuten Laden meines iOs-Zertifikats. Eine einfache Reinigung (Produktmenü) und alles funktioniert gut ;-)
Sébastien REMY
Hat perfekt funktioniert. Danke dir.
iSofia
3
Die Gründe dafür sind vielfältig. Nachdem ich gerade ein lustiges Wochenende damit verbracht hatte, ein weiteres Problem zu finden, das dies verursacht (die Reihenfolge der Codesignatur), wollte ich eine zusammenfassende Antwort erstellen, die alle möglichen Lösungen zusammenbringt:
In Embedded Inhalt Swift Code enthält zum Projekt. Sie müssen dieses Flag setzen, wenn Ihre App Swift-Code enthält.
Projekt reinigen . Neben einem Projekt> Bereinigen können Sie auch die Verzeichnisse DerivedDataund löschen Build. Suchen Sie unter den Einstellungen nach dem Standort von DerivedData. Buildsollte sich in Ihrem Projektordner befinden.
Stellen Sie sicher, dass Runpath Search Paths enthält@executable_path/Frameworks .
Stellen Sie sicher, dass Ihr Zertifikat Ihre Apple Team-ID im Feld Organisationseinheit (Organisationseinheit) enthält. Apple fügt diese für Sie hinzu. Widerrufen Sie einfach Ihr vorhandenes Distributionszertifikat und erstellen Sie ein neues, laden Sie es herunter, installieren Sie es auf KeyChain, generieren Sie alle Bereitstellungsprofile neu, laden Sie diese herunter und wieder aufbauen.
Xcode neu starten. Wenn im Grunde alles gut ist, aber Xcode noch nicht da ist.
Das ist das einfache Zeug. Wenn Sie Ihre eigene Befehlszeile erstellen, erstellen Sie möglicherweise Ihre eigenen .ipaDateien zum Hochladen. In diesem Fall müssen Sie Folgendes sicherstellen:
Stellen Sie sicher, dass die Version der Swift-Dateien SwiftSupport/iphoneosmit der Version in identisch ist.Contents/YourApp.app/Frameworks Da Swift zwischen den Versionen noch nicht binär kompatibel ist, müssen Sie sicherstellen, dass diese Versionen die sind, mit denen Sie Ihre App erstellt haben. Sie finden diese Bibliotheken unter /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos.
Unterzeichnen Sie die Bibliotheken und Frameworks erste . Sie müssen zuerst codesigndie Bibliotheken und Framework-Dateien (unter Frameworksim .appOrdner) aufrufen und dann den gesamten .appBaum signieren . Der .appBaum muss mit einem, entitlements.plistaber nicht mit den Frameworks signiert sein .
Wenn Swift 3.0 herauskommt und wir Swift nicht mehr mit unseren Apps bündeln müssen, wird dieses ganze Problem hoffentlich verschwinden.
Ich hatte dieses Problem bei der Verwendung einer Ad-hoc- (oder Unternehmens-) Mobilprovision mit einem Produktionszertifikat. Der Wechsel zu einem Entwicklungszertifikat und Mobileprovision löste das Problem.
Auf diese Weise können Sie die App möglicherweise in der Entwicklung ausführen. Wie werden Sie sie jedoch bereitstellen, wenn ein Ad-hoc- oder Unternehmensprofil nicht funktioniert?
Kristopher Johnson
2
Mein Projekt ist ein Swift-Projekt mit einigen Objective-C-Klassen. Ich hatte das gleiche Problem, als ich mit dem alten inHouse (Enterprise) -Zertifikat signiert war.
Die folgenden Schritte haben dies für mich behoben.
Erstellen und verwenden Sie ein neues Zertifikat und eine neue mobile Bereitstellung.
(Ref. AIRSIGNs Blog )
Runpath Search PathsStellen Sie die Build-Einstellung auf : $(inherited) @executable_path/Frameworks.
(Ref. Mats Antwort )
In unserem Fall wurde das Enterprise Distribution Certificate widerrufen. Durch das Generieren eines neuen Zertifikats und das Aktualisieren des Bereitstellungsprofils wurde das Problem behoben.
(Es scheint viele verschiedene Ursachen für diesen Fehler zu geben. Ich hoffe, dies hilft jemandem.)
Dies löste mein Problem. Heiliger Mist, was für eine Zeitverschwendung, dies zu beheben. Ich hoffe, dies löst die Probleme anderer Benutzer. Ich konnte meine App mit meinem benutzerdefinierten Framework debuggen, aber die Version der Build-Maschine nicht auf Jenkins ausführen. Durch das Widerrufen meiner Verteilungszertifikate und das Generieren eines neuen Unternehmensbereitstellungsprofils wurden die Builds für mich behoben.
Cynistersix
2
Dies gilt auch für Lösung 4
Accfews
2
Ich habe alle oben angegebenen Antworten ausprobiert, nichts hat funktioniert.
Ich habe das gleiche Problem festgestellt: Durch Festlegen der richtigen Codezeichenidentität wurde das Problem behoben (Build-Einstellungen-> Codezeichenzeichenidentität).
Gemäß Apple - technische Frage „Alle Unternehmen und Standard - Zertifikate iOS Entwickler , die erstellt werden , nachdem iOS 8 veröffentlicht wurde das neue Team - ID - Feld in der richtigen Stelle haben , damit Apps Swift Sprache ausführen“
Wenn Sie die drei Frameworks über eingebettete Binärdateien hinzufügen, werden sie auch verknüpften Frameworks und Bibliotheken hinzugefügt. Löschen Sie die drei Einträge in Linked Frameworks and Libraries , um das Problem zu lösen.
Magische Methoden wie das Neustarten von Xcode und der Neustart des Mac funktionieren bei mir nicht.
Vielen Dank für die Verbesserung des Formats. Es sieht besser aus. "Verknüpfte Frameworks und Bibliotheken" ist ein Abschnitt, nicht zwei. Ich ändere "und" in fett. @ Bartłomiej
Arbipher
特 来 shua fen zi shu bu ding
icemelon
2
Hinzufügen eines Frameworks als "Embedded Binary" anstelle von "Linked Frameworks and Libraries" - Mein Problem wurde behoben.
Ich habe auch das Flag Embedded Content Contains Swift Code auf YES gesetzt.
Upgrade auf die neueste Version von OS X (Yosemite)
Nach stundenlangem Ausprobieren kam ich zur Lösung dieses Problems.
- Wenn dies auf Ihren Fall zutrifft, natürlich.
Ich hatte das gleiche Problem, bis ich mein Mac OS X von Mavericks auf Yosemite aktualisiert habe.
- Es hat mein Problem behoben, ich hoffe, es behebt auch Ihr Problem
Dies funktionierte bei mir unter XCode 7.2.1. Ich habe das + im Bedienfeld „Phasen erstellen“ verwendet, die Phase „Neue Kopierdateien“ ausgewählt und dann das Framework aus der Arbeitsbereichsstruktur in den Abschnitt „Dateien kopieren“ gezogen. Schließlich habe ich Destination: Frameworks ausgewählt. Nach einem sauberen Build wurde meine Anwendung wie erwartet gestartet.
Rob Smallshire
1
Und wenn all das nicht hilft und Sie wirklich frustriert sind ... Versuchen Sie den besten Trick von allen: Cleanund nur um sicher zu gehen Clean Build Folder. :) Hoffe es hilft jemandem!
Keine dieser Lösungen schien für mich konsequent zu funktionieren; Nach ein paar erfolgreichen Läufen würde es wieder fehlschlagen. Das Flag "Eingebetteter Inhalt enthält schnellen Code" wurde für mich immer auf JA gesetzt.
Es stellte sich heraus, dass ich Xcode auf 6.3-kompatibel eingestellt hatte. Das Zurücksetzen auf 3.2-kompatibel löste das Problem:
Danke dir! Ich habe alles andere versucht. Ich habe es wieder auf 3.2 geändert, das Projekt bereinigt, Xcode neu gestartet und es hat funktioniert
gabriellanata
1
Ich hatte auch dieses Problem, nur dass es nicht gefunden wurde libswiftXCTest.dylib.
Die Lösung bestand darin XCTest.framework, dem Testziel in hinzuzufügen Build Phases/Link Binary with Library. Ich habe diesen Fehler erhalten, obwohl ich versucht habe, das Hauptziel zu erstellen.
Dies zeigte sich, als ich einem alten Projekt ein neues Today-Erweiterungsziel mit Swift-Sprache hinzufügte.
Einfach zu beheben, indem das Projekt auf die empfohlenen Einstellungen aktualisiert wurde. Xcode 6.0.1
Ich habe das gleiche Problem mit Mavericks, Xcode 6.1.1, beim Testen auf einem iPhone5 mit iOS 8.1.1. Ich habe alle möglichen Lösungen ausprobiert, einschließlich neuer Zertifikate und Bereitstellungsprofile, aber nichts hat geholfen. Ich habe die Änderungen Embedded Content Contains Swift Codeund Runpath Search Pathssowohl auf Projektebene und Zielebene.
Ich habe jetzt Yosemite installiert und ohne weitere Änderungen begann es zu funktionieren.
Das gleiche Problem hier, für mich war es Crashlytics / Fabric / Beta / Twitter / Wie auch immer sie sich nennen, eine Binärdatei hochzuladen, bei der die eingebetteten Frameworks fehlten. Wenn ich ein Archiv erstellt und dann einen Enterprise-Build auf die übliche Weise exportiert habe, haben sie einen Reiz gewirkt.
Nach Monaten und Monaten, in denen ich alles hier ausprobiert habe ... Definition von Wahnsinn ... das Starten von Xcode unter einem neuen Mac-Benutzer hat es für mich gelöst.
Ich habe ~ / Library / Developer / * entfernt und Xcode neu installiert - also keine Ahnung, was ich sonst noch formatieren muss, damit es funktioniert.
otool
Antworten:
Bei mir hat keine der vorherigen Lösungen funktioniert. Wir haben festgestellt, dass
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
in den Build-Einstellungen ein Flag (in früheren Versionen: "Eingebetteter Inhalt enthält schnellen Code") vorhanden ist, das auf YES gesetzt werden muss. Es war standardmäßig NEIN!quelle
Dieser Fehler kann auftreten, wenn bei der Konvertierung eines Objective-C-Projekts zur Verwendung von Swift ein Fehler aufgetreten ist. Das Problem ist, dass die Linker-Build-Einstellungen nie richtig konfiguriert wurden, sodass Sie dies von Hand tun müssen. Suchen Sie nach der Build-Einstellung Runpath Search Paths und setzen Sie sie auf:
EDIT: Ich sollte auch hinzufügen, dass es in letzter Zeit eine Flut dieser Fehler gegeben hat, die durch etwas ganz anderes verursacht wurden - Apple hat eine Änderung in Swift selbst vorgenommen, beginnend vielleicht mit Xcode 6.1 oder 6.1.1. Die einzige Lösung scheint darin zu bestehen, Xcode zu beenden, Ihre Zertifikate in Keychain Access zu zerstören, zum Mitgliedercenter zu gehen und alle Zertifikate und Profile (mit Ausnahme der Profile für Apps im Store - Sie können sie nicht löschen) zu löschen und dann das zu starten gesamter Zertifikatanforderungsprozess von Grund auf neu.
quelle
Ich bin mir nicht sicher, warum diese Frage abgelehnt wird. Ich hatte dieses Problem auch, als ich zum ersten Mal versuchte, Swift mit einem vorhandenen Projekt zu verwenden. Ein Xcode-Neustart hat dies auch für mich behoben.
quelle
Ich habe lange nach diesem Thema gesucht. Es gibt mehrere Gründe, die dieses Problem verursachen.
Wenn Sie mit Swift-Code / Bibliothek in einem Objectice C-Projekt konfrontiert sind, sollten Sie Lösung 1-2-3 ausprobieren
Wenn Sie mit einem neuen Problem konfrontiert sind, passt eine Swift-Projektlösung 4 am besten zu Ihnen.
Lösung 1:
Starten Sie Xcode neu, dann Computer und iPhone
Lösung 2:
Gehen Sie zu den Projekterstellungseinstellungen und setzen Sie das
Always Embed Swift Standard Libraries
(vorherigeEmbedded Content Contains Swift Code
) Flag aufYES
Lösung 3:
Gehen Sie zu den Projekterstellungseinstellungen und fügen Sie
@executable_path/Frameworks
dieRunpath Search Paths
Option hinzuLösung 4:
Wenn keines der oben genannten Verfahren funktioniert, sollte dies der Fall sein. Apple scheint ein Ninja- Patch- Zertifikat zu sein, wie in AirSigns Post erwähnt
Bei InHouse-Zertifikaten
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR
Sie haben ein neues Feld mit dem Namen OU hinzugefügt
Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR
Sie sollten also nur das Zertifikat und die Bereitstellung neu erstellen
quelle
@executable_path/../Frameworks
wo iOS-Projekte es ohne das..
in der Mitte erfordern . Das Ändern dieses Werts ist wichtig, wenn Sie ein Ziel von einem Betriebssystem auf das andere konvertiert haben.In meinem Fall habe ich versucht, ein benutzerdefiniertes Framework zu importieren, und es wurde ein ähnlicher Fehler angezeigt. Es stellte sich heraus, dass ich das Framework in die eingebetteten Binärdateien und nicht in die verknüpften Frameworks und Bibliotheken importieren musste.
Eingebettete Binärdateien finden Sie unter Projekteinstellungen -> -> Allgemein
quelle
Für Entwickler, die dieses Problem mit einer Adhoc / Enterprise-Distribution hatten,
Quelle: https://devforums.apple.com/message/1022908#1022908
quelle
Lösung 5:
In meinem Fall waren alle in der Antwort von accfews genannten Lösungen sehr hilfreich, aber keine hat funktioniert. Ich habe mein Problem gelöst, indem ich meine schnelle Bibliothek im Abschnitt "Eingebettete Binärdateien" im Abschnitt "Allgemein" des Ziels meines Projekts hinzugefügt habe. Vielleicht liegt das daran, dass ich mein schnelles Framework in meinen Arbeitsbereich aufgenommen habe? Was auch immer es jetzt kompiliert! Mach dich bereit Swift, ich bin hier!
quelle
Ein einfacher Neustart von Xcode löste das Problem für mich.
quelle
Für mich war das Problem auf die Tatsache zurückzuführen, dass meine Apple Worldwide Developer Relations-Zertifizierungsstelle ungültig war.
Laden Sie es hier herunter: https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Ziehen Sie es per Drag & Drop in Keychain Access, bereinigen Sie das Projekt und führen Sie es aus.
quelle
Ich hatte ein Obj-C-Projekt, in dem ich anfing, schnelle Quelldateien hinzuzufügen. Folgendes hat das Problem für mich behoben:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
Ich habe gerade ein neues Projekt aus den Vorlagen Xcode 6.3 erstellt und die Projekteinstellungen mit meinem alten Originalprojekt verglichen.
quelle
Versuchen Sie, die Alt-Taste gedrückt zu halten, und gehen Sie dann zu Produkt -> Build-Ordner bereinigen ...
Hoffe es wird jemandem helfen ..
quelle
Die Gründe dafür sind vielfältig. Nachdem ich gerade ein lustiges Wochenende damit verbracht hatte, ein weiteres Problem zu finden, das dies verursacht (die Reihenfolge der Codesignatur), wollte ich eine zusammenfassende Antwort erstellen, die alle möglichen Lösungen zusammenbringt:
DerivedData
und löschenBuild
. Suchen Sie unter den Einstellungen nach dem Standort vonDerivedData
.Build
sollte sich in Ihrem Projektordner befinden.@executable_path/Frameworks
.Das ist das einfache Zeug. Wenn Sie Ihre eigene Befehlszeile erstellen, erstellen Sie möglicherweise Ihre eigenen
.ipa
Dateien zum Hochladen. In diesem Fall müssen Sie Folgendes sicherstellen:SwiftSupport/iphoneos
mit der Version in identisch ist.Contents/YourApp.app/Frameworks
Da Swift zwischen den Versionen noch nicht binär kompatibel ist, müssen Sie sicherstellen, dass diese Versionen die sind, mit denen Sie Ihre App erstellt haben. Sie finden diese Bibliotheken unter/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
.codesign
die Bibliotheken und Framework-Dateien (unterFrameworks
im.app
Ordner) aufrufen und dann den gesamten.app
Baum signieren . Der.app
Baum muss mit einem,entitlements.plist
aber nicht mit den Frameworks signiert sein .Wenn Swift 3.0 herauskommt und wir Swift nicht mehr mit unseren Apps bündeln müssen, wird dieses ganze Problem hoffentlich verschwinden.
quelle
Ich hatte dieses Problem bei der Verwendung einer Ad-hoc- (oder Unternehmens-) Mobilprovision mit einem Produktionszertifikat. Der Wechsel zu einem Entwicklungszertifikat und Mobileprovision löste das Problem.
quelle
Mein Projekt ist ein Swift-Projekt mit einigen Objective-C-Klassen. Ich hatte das gleiche Problem, als ich mit dem alten inHouse (Enterprise) -Zertifikat signiert war.
Die folgenden Schritte haben dies für mich behoben.
(Ref. AIRSIGNs Blog )
Runpath Search Paths
Stellen Sie die Build-Einstellung auf :$(inherited) @executable_path/Frameworks
.(Ref. Mats Antwort )
quelle
Lösung 6:
In unserem Fall wurde das Enterprise Distribution Certificate widerrufen. Durch das Generieren eines neuen Zertifikats und das Aktualisieren des Bereitstellungsprofils wurde das Problem behoben.
(Es scheint viele verschiedene Ursachen für diesen Fehler zu geben. Ich hoffe, dies hilft jemandem.)
quelle
Ich habe alle oben angegebenen Antworten ausprobiert, nichts hat funktioniert.
Endlich funktioniert nach dem Update auf Yosemite
quelle
Ich habe das gleiche Problem festgestellt: Durch Festlegen der richtigen Codezeichenidentität wurde das Problem behoben (Build-Einstellungen-> Codezeichenzeichenidentität).
Gemäß Apple - technische Frage „Alle Unternehmen und Standard - Zertifikate iOS Entwickler , die erstellt werden , nachdem iOS 8 veröffentlicht wurde das neue Team - ID - Feld in der richtigen Stelle haben , damit Apps Swift Sprache ausführen“
quelle
Wenn Sie die drei Frameworks über eingebettete Binärdateien hinzufügen, werden sie auch verknüpften Frameworks und Bibliotheken hinzugefügt. Löschen Sie die drei Einträge in Linked Frameworks and Libraries , um das Problem zu lösen.
quelle
Hinzufügen eines Frameworks als "Embedded Binary" anstelle von "Linked Frameworks and Libraries" - Mein Problem wurde behoben.
Ich habe auch das Flag Embedded Content Contains Swift Code auf YES gesetzt.
quelle
Upgrade auf die neueste Version von OS X (Yosemite)
Nach stundenlangem Ausprobieren kam ich zur Lösung dieses Problems. - Wenn dies auf Ihren Fall zutrifft, natürlich.
Ich hatte das gleiche Problem, bis ich mein Mac OS X von Mavericks auf Yosemite aktualisiert habe. - Es hat mein Problem behoben, ich hoffe, es behebt auch Ihr Problem
quelle
Ich habe alle im Web gefundenen Lösungen ausprobiert, einschließlich Apple und neuer Zertifikate. Ohne Erfolg.
Die einzige Möglichkeit, xcode nach 6 Monaten auszuführen, bestand darin, ein neues Konto auf meinem MacBook zu erstellen.
quelle
Normalerweise verschwindet dieser Fehler, wenn Sie diese Bibliothek in Ihren Build-Phasen zum Segment "Dateien kopieren" hinzufügen.
quelle
Und wenn all das nicht hilft und Sie wirklich frustriert sind ... Versuchen Sie den besten Trick von allen:
Clean
und nur um sicher zu gehenClean Build Folder
. :) Hoffe es hilft jemandem!quelle
Keine dieser Lösungen schien für mich konsequent zu funktionieren; Nach ein paar erfolgreichen Läufen würde es wieder fehlschlagen. Das Flag "Eingebetteter Inhalt enthält schnellen Code" wurde für mich immer auf JA gesetzt.
Es stellte sich heraus, dass ich Xcode auf 6.3-kompatibel eingestellt hatte. Das Zurücksetzen auf 3.2-kompatibel löste das Problem:
quelle
Ich hatte auch dieses Problem, nur dass es nicht gefunden wurde
libswiftXCTest.dylib
.Die Lösung bestand darin
XCTest.framework
, dem Testziel in hinzuzufügenBuild Phases/Link Binary with Library
. Ich habe diesen Fehler erhalten, obwohl ich versucht habe, das Hauptziel zu erstellen.quelle
Dies zeigte sich, als ich einem alten Projekt ein neues Today-Erweiterungsziel mit Swift-Sprache hinzufügte. Einfach zu beheben, indem das Projekt auf die empfohlenen Einstellungen aktualisiert wurde. Xcode 6.0.1
quelle
Ich habe das gleiche Problem mit Mavericks, Xcode 6.1.1, beim Testen auf einem iPhone5 mit iOS 8.1.1. Ich habe alle möglichen Lösungen ausprobiert, einschließlich neuer Zertifikate und Bereitstellungsprofile, aber nichts hat geholfen. Ich habe die Änderungen
Embedded Content Contains Swift Code
undRunpath Search Paths
sowohl auf Projektebene und Zielebene.Ich habe jetzt Yosemite installiert und ohne weitere Änderungen begann es zu funktionieren.
quelle
Das gleiche Problem hier, für mich war es Crashlytics / Fabric / Beta / Twitter / Wie auch immer sie sich nennen, eine Binärdatei hochzuladen, bei der die eingebetteten Frameworks fehlten. Wenn ich ein Archiv erstellt und dann einen Enterprise-Build auf die übliche Weise exportiert habe, haben sie einen Reiz gewirkt.
quelle
Meine Umgebung: Cocos2d 2.0, Box2d, Ziel C.
Zusätzlich zu den anderen Antworten oben ging ich schließlich zur Registerkarte Allgemein und machte WatchKit optional.
quelle
Nach Monaten und Monaten, in denen ich alles hier ausprobiert habe ... Definition von Wahnsinn ... das Starten von Xcode unter einem neuen Mac-Benutzer hat es für mich gelöst.
Ich habe ~ / Library / Developer / * entfernt und Xcode neu installiert - also keine Ahnung, was ich sonst noch formatieren muss, damit es funktioniert.
quelle