it-swarm.com.de

Die Datei ist universell (drei Slices), enthält jedoch nicht den Slice-Fehler von a(n) ARMv7-s für statische Bibliotheken unter iOS.

Ich habe ein Upgrade von Xcode durchgeführt und bei Verwendung externer statischer Bibliotheken erhalte ich die folgende Meldung:

ld: file is universal (3 slices), enthält aber nicht a(n) armv7s slice:/file/location für architektur armv7s clang: error: linker befehl mit exit code 1 fehlgeschlagen Aufruf)

Gibt es eine Möglichkeit, dies zu umgehen und der Bibliothek Unterstützung hinzuzufügen, wenn der Entwickler der Bibliothek ihre Bibliothek noch nicht aktualisiert hat?

403
Dafna Elazazer

Wenn Sie die Unterstützung für eine Architektur entfernen möchten, z. B. ARMv7-s in Ihrem Fall, verwenden Sie menu Project - > Build Settings -> entfernen Sie die Architektur aus "gültigen Architekturen".

Sie können dies als vorübergehende 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 die Option "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 dem Release daran erinnert werden, dass Sie Bibliotheken von Drittanbietern, die Sie verwenden, aktualisieren sollten.

418
Nicholas

Ich habe in den Build-Einstellungen des Ziels einfach zwischen "Nur aktive Architektur erstellen" und "Ja" umgeschaltet und es ist jetzt OK!

191
Blasco73

Versuchen Sie, armv7s aus der "gültigen Architektur" des Projekts zu entfernen, um dieses Problem für iOS 5.1-Telefone zu beheben

27
Arthur Jen

Ich habe gerade ein Update gepostet hier das auch in diesem Fall zutrifft - im Grunde genommen führen Sie ein hexadezimales Suchen und Ersetzen in Ihrer externen Bibliothek durch, um den Eindruck zu erwecken, dass es sich um ARMv7s-Code handelt. Sie sollten in der Lage sein, lipo zu verwenden, um es in 3 statische Bibliotheken aufzuteilen, die ARMv7-Bibliothek zu duplizieren/zu ändern und dann lipo erneut zu verwenden, um eine neue Bibliothek für alle 4 Architekturen zusammenzustellen.

13
Ertebolle

Flurry-Unterstützung für iPhone 5 (ARMv7s) Wie ich gestern bereits erwähnt habe, hat Flurry unmittelbar nach der Ankündigung am Mittwoch damit begonnen, an einer Version des iOS SDK zu arbeiten, um den ARMv7s-Prozessor im neuen iPhone 5 zu unterstützen.

Ich freue mich, Ihnen mitteilen zu können, dass die Arbeit abgeschlossen ist und das SDK jetzt auf der Website verfügbar ist.

5
RAZ

verwenden Sie das Menü Projekt -> Einstellungen erstellen ->

entfernen Sie dann armv7s von den "gültigen Architekturen". Wenn standard ausgewählt wurde, löschen Sie dies und fügen Sie armv7 hinzu.

4
Panky

Falls 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 Auslieferung baute, ließ ich versehentlich mein iPhone 4S eingesteckt, und so baute Xcode meine Bibliothek nur für die eingesteckte Architektur, anstatt die Projekteinstellungen zu befolgen. 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.

1
Raphael Ayres

In meinem Fall habe ich eine Verknüpfung zu einer Drittanbieter-Bibliothek hergestellt, die etwas älter war (entwickelt für iOS 6 unter XCode 5/iOS 7). Daher musste ich die Bibliothek eines Drittanbieters aktualisieren, eine Bereinigung und Erstellung durchführen, und sie wird jetzt erfolgreich erstellt.

0
Jay Imerman