Gestern (10.03.14), als iOS 7.1 veröffentlicht wurde, habe ich auch ein Upgrade auf Xcode 5.1 durchgeführt und festgestellt, dass mein PhoneGap / Cordova-Projekt nicht mehr mit meinem iPhone 5s kompiliert werden kann. Ich habe Cordova auch auf die neueste Version aktualisiert: v 3.4.0-0.1.3.
Ich habe viele verschiedene Lösungen zu SO gelesen, die sich darauf beziehen, aktive Architekturen zu ändern und nur aktive Architekturen zu erstellen, und keine davon funktioniert. Also hier ist, was ich versucht habe und die Fehler, die ich bekomme. Anfangs habe ich den Fehler bekommen:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
Also habe ich folgendes versucht. Ich habe das CordovaLib-Unterprojekt in meinem Projekt ausgewählt und sowohl im Projekt als auch im Ziel unter Build Architectures zu Build Settings gewechselt und sichergestellt, dass arm64
es in keiner der Debug- oder Release-Architekturen enthalten ist. Zu diesem Zeitpunkt ist Build Active Architecture Only auf "Ja" gesetzt. Dies führte zu folgendem Fehler:
file was built for archive which is not the architecture being linked (armv7):
<long file path omitted> libCordova.a
Undefined symbols for architecture armv7
Wenn Sie Build Active Architecture Only auf "No" setzen, wird der Fehler erneut wie folgt:
missing required architecture arm64 in file <long file path omitted> libCordova.a
Undefined symbols for architecture arm64
Ich bin mir nicht sicher, was ich sonst noch versuchen soll. Die Architektureinstellungen des Projekts enthalten nur den Schlüssel "Base SDK", der auf iOS 7.1 eingestellt ist. Das Projektziel verfügt nicht über Architektureinstellungen. Ich bin mir ziemlich sicher, dass das Problem beim eingebetteten CordovaLib-Teilprojekt liegt. Was kann ich tun, damit dieses Ding erfolgreich auf meinem Gerät kompiliert wird?
Update: Gleiches Problem bei Apaches Jira: https://issues.apache.org/jira/browse/CB-6223
Antworten:
@Shazron hat das Update auf dem Apache JIRA veröffentlicht - er stellt fest, dass das Update als Teil von Cordova 3.5 veröffentlicht wird:
Hier ist ein Link zu Shazrons vollständiger Beschreibung dieses Problems: http://shazronatadobe.wordpress.com/2014/03/12/xcode-5-1-and-cordova-ios/
Es ist jetzt veröffentlicht und die Kurzversion von dem, was zu tun ist, ist:
Cordova CLI 3.4.1-0.1.0 ist erschienen, einschließlich Cordova iOS 3.4.1, das alle in diesem Blogbeitrag erwähnten Korrekturen enthält. Aktualisieren Sie Ihre Cordova-CLI. Wenn Sie bereits ein Projekt haben, führen Sie ein „Cordova-Plattform-Update ios“ durch.
quelle
Ein weiterer Ansatz, der funktioniert:
quelle
Das Downgrade von Xcode 5.1 auf 5.0.2 funktionierte für mich, ich konnte es kaum erwarten, eine offizielle Cordova 3.5-Version mit dem Fix zu erhalten.
Eine Kopie der vorherigen Version erhalten Sie hier: https://developer.apple.com/downloads/index.action
quelle
Sie haben gerade eine neue Version 3.4.1 veröffentlicht , die diese Probleme behebt .
Daher aktualisiere ich eine einzelne Datei, um auf TAG 3.4.1 zu verweisen:
Zeile 24 von:
zu:
Dann entfernen Sie den iOS-Ordner in Ihrem Projekt und führen Folgendes aus:
Dadurch wird die neue Vorlage basierend auf 3.4.1 mit allen Patches heruntergeladen.
quelle
Folgen Sie den Anweisungen in diesem Video: https://www.youtube.com/watch?v=EIkJAKcz8DE
Fügen Sie einfach arm64 in Ihre Projekte ein und entfernen Sie die gesamte bedingte Architektur von Cordovas Projekt.
quelle
Ich konnte meine App in XCode 5.1 erstellen lassen, indem ich zuerst das CordovaLib-Projekt separat von XCode aus erstellte und dann mein Projekt erstellte.
quelle
Sie müssen nur die arm64-Architektur zu jeder Anweisung und Gebäudeeinstellung hinzufügen, ich meine, zu Ihrem aktuellen Projekt und zum Cordova-Projekt.
Zu Ihrem Projekt:
auf Cordova:
UND DAS WICHTIGSTE
-Gültige Architekturen in Cordova Build-Einstellungen
Diese Konfiguration generiert viele Warnungen, ändert jedoch nur "% d" für "% ld" in allen Zeilen, die in der Warnung angegeben sind.
quelle
Nimm das Xcode-Symbol und ziehe es in den Papierkorb!
Gehen Sie hier https://developer.apple.com/downloads/index.action?name=Xcode und laden Sie 5.0.2 herunter und installieren Sie es.
Führen Sie nach der Installation xcode aus und testen Sie den Emulator vom Terminal aus.
Hat für mich gearbeitet, aber nervig!
quelle