Ich habe die Xcode- Version aktualisiert und bei Verwendung externer statischer Bibliotheken wird folgende Meldung angezeigt:
ld: Datei ist universell (3 Slices), enthält jedoch kein (n) armv7s Slice: / Datei / Speicherort für Architektur armv7s clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf anzuzeigen)
Gibt es eine Möglichkeit, dies zu umgehen und der Bibliothek Unterstützung hinzuzufügen, wenn der Entwickler der Bibliothek seine Bibliothek noch nicht aktualisiert hat?
ios
objective-c
xcode
ios6
static-libraries
Dafna Elazazer
quelle
quelle
Antworten:
Wenn Sie die Unterstützung für eine Architektur entfernen möchten, z. B. ARMv7-s in Ihrem Fall, verwenden Sie das Menü Projekt -> Build-Einstellungen -> Entfernen Sie die Architektur aus "gültigen Architekturen".
Sie können dies als temporäre Lösung verwenden, bis die Bibliothek aktualisiert wurde. Sie müssen die Architektur aus Ihrem Hauptprojekt entfernen, nicht aus der Bibliothek.
Alternativ können Sie das Flag für "Nur aktive Architektur erstellen" Ihrer Debug-Konfiguration auf "Ja" setzen. Belassen Sie die Option "Nur aktive Architektur erstellen" in der Release-Konfiguration auf "Nein", damit Sie vor der Veröffentlichung eine Erinnerung erhalten, dass Sie alle von Ihnen verwendeten Bibliotheken von Drittanbietern aktualisieren sollten.
quelle
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).
vom Linker erhalten, den ich nur durch Hinzufügeni386
zur Liste der gültigen Architekturen lösen konnte .Ich habe in den Build-Einstellungen des Ziels einfach "Nur aktive Architektur erstellen" auf "Ja" umgeschaltet, und jetzt ist es in Ordnung!
quelle
Versuchen Sie, armv7s aus der "Gültigen Architektur" des Projekts zu entfernen, um dieses Problem für iOS 5.1-Telefone zu lösen
quelle
Ich habe gerade gebucht ein Update hier , dass auch in diesem Fall gelten würde - im Grunde, was Sie tun ein Hex - Suchen und Ersetzen in Ihrer externen Bibliothek dafür , dass es den ARMv7s Code denken. Sie sollten in der Lage sein,
lipo
es in 3 statische Bibliotheken aufzuteilen, die ARMv7-Bibliothek zu duplizieren / zu ändern und dannlipo
erneut eine neue Bibliothek für alle 4 Architekturen zusammenzustellen.quelle
Flurry-Unterstützung für iPhone 5 (ARMv7s) Wie bereits im gestrigen Beitrag erwähnt, begann Flurry unmittelbar nach der Ankündigung am Mittwoch mit der Arbeit an einer Version des iOS SDK, um den ARMv7s-Prozessor im neuen iPhone 5 zu unterstützen.
Ich freue mich, Ihnen mitteilen zu können, dass die Arbeit erledigt ist und das SDK jetzt auf der Website verfügbar ist.
quelle
Verwenden Sie das Menü Projekt -> Build-Einstellungen ->
Entfernen Sie dann armv7s aus den "gültigen Architekturen". Wenn Standard gewählt wurde, löschen Sie diesen und fügen Sie dann armv7 hinzu.
quelle
Für den Fall, dass dies jemandem passiert. Ich habe meine eigene Bibliothek erstellt, um sie mit einem Code von Drittanbietern zu verwenden. Während ich es für die Lieferung erstellt habe, habe ich versehentlich mein iPhone 4S angeschlossen gelassen, und so hat Xcode meine Bibliothek nur für die angeschlossene Architektur erstellt, anstatt den Projekteinstellungen zu folgen. Entfernen Sie alle angeschlossenen Geräte und erstellen Sie die Bibliothek neu, verknüpfen Sie sie, und alles sollte in Ordnung sein.
Ich hoffe es hilft.
quelle
In meinem Fall habe ich eine Verknüpfung zu einer etwas alten Drittanbieter-Bibliothek hergestellt (entwickelt für iOS 6 unter XCode 5 / iOS 7). Daher musste ich die Bibliothek eines Drittanbieters aktualisieren, ein Clean and Build durchführen und sie wurde nun erfolgreich erstellt.
quelle