ZBarSDK-1.3.1 BETA behebt das Problem ohne Neuaufbau.
Laden Sie einfach ZBarSDK-1.3.1.dmg herunter, entfernen Sie den ZBarSDK-Ordner aus Ihrem Projekt und ersetzen Sie ihn durch den letzten: Ссылка
Nachdem ich ZBar Sdk in mein Projekt integriert habe, beginnt mein xcode 5-DP mit der Warnung:
"ld: warning: Verknüpfung von ObjC für iOS Simulator, aber Objektdatei (/Documents/Projects/Project/Utility/ZBarSDK/libzbar.a(ZBarReaderViewController.o)) wurde für MacOSX kompiliert "
Erstellen einer ZBar-Bibliothek
Irgendwann wieder hatte ich ein anderes Problem mit ZBar und wurde zu einem hilfreichen Satz von Anweisungen hier geführt: Ссылка
Im Grunde sagen Ihnen die Anweisungen, wie Sie den Quellcode mit Mercurial auschecken und dann Ihre eigene libzbar.a-Datei kompilieren. Dies sollte Ihr Problem lösen.
Gerade in der letzten Nacht musste ich die Anweisungen noch einmal befolgen, weil meine Version von ZBar nach der Aktualisierung auf Xcode 5 nicht mehr lief. Ich ermutige Sie, dem obigen Link zu folgen, aber ich werde es tun weitgehend Krippe es hier, zusammen mit einigen Schritten, die ich für die neue iPhone-Plattform hinzugefügt habe.
Laden Sie herunter und installieren Sie Mercurial für Mac. Ich habe das neueste für OS X 10.8 genommen. (Der Installationsbildschirm scheint beim Starten des Installationsprogramms immer noch 10.7 zu lauten. Seien Sie also nicht überrascht.)
Laden Sie nach der Installation von Mercurial die Quelle für ZBar mit den folgenden Befehlen herunter:
%Vor%Wählen Sie im Xcode-Menü "Produkt & gt; Schema & gt; libzbar" und dann "Produkt & gt; Schema & gt; Schema bearbeiten ...". (Sie erhalten eine Warnung, dass das Projekt aktualisiert wurde, um den LLBD-Debugger zu verwenden. Yay!)
Wählen Sie "Ausführen" in der Build-Konfiguration und klicken Sie auf OK.
Als nächstes werden wir libzbar für das Gerät und den Simulator kompilieren. Wählen Sie in der Liste "Projekt und Ziele" das libzbar-Ziel aus und klicken Sie auf die Registerkarte "Build-Einstellungen". Überprüfen Sie Ihre Architektureinstellungen, wie im Screenshot gezeigt. (Stellen Sie sicher, dass es iOS und Arm64 Armv7 Armv7s sagt.)
Vergessen Sie auch nicht, Architekturen in Standardarchitekturen (armv7, armv7s, arm64) zu ändern , sonst wird Ihr Projekt nicht mit arm64 kompiliert. (Dies wird nicht richtig auf Screenshot gezeigt)
Nun, hier ist der Teil, den ich letzte Nacht entdeckt habe. Mein Bereitstellungsziel wurde auf iOS 3.1 festgelegt. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, mit dieser Einstellung in Xcode 5 zu kompilieren. Ich habe es zu iOS 7.0 geändert.
Nachdem Sie Ihre Einstellungen überprüft und alle erforderlichen Änderungen vorgenommen haben, führen Sie Build aus. Gehen Sie zurück zu "Produkt & gt; Schema & gt; Schema bearbeiten ..." und prüfen Sie das Drop-down-Menü "Ziel". (Siehe Screenshot oben.) Ich hatte meine iPhone Retina (3,5 Zoll). Ändern Sie es zu iOS-Gerät und führen Sie Build ein zweites Mal aus. Sie haben die Bibliothek jetzt zweimal erstellt: einmal für den Simulator und einmal für das Gerät. Sie müssen die beiden Bibliotheken kombinieren. Gehe in das folgende Verzeichnis im Terminal:
%Vor%Darin gibt es eine Reihe kryptisch benannter Verzeichnisse, von denen eines "zbar" beginnt. Hier ist mein vollständiger Pfad als Beispiel:
%Vor%Gehen Sie in dieses zbar-Verzeichnis und wechseln Sie dann in das Build / Products-Verzeichnis.
%Vor%Dort sehen Sie zwei Ordner: Release-iphoneos und Release-iphonesimulator. (In jedem befindet sich eine lizbar.a-Datei.) Kombinieren Sie sie mit dem folgenden Befehl:
%Vor%Sie haben jetzt eine universelle Bibliothek (libzbar.a) erstellt, die Sie verwenden sollten und die die mit Ihrer ZBar-Distribution erhält. Es befindet sich im selben Build / Product-Verzeichnis.
Wie ich schon sagte, habe ich die Anweisungen des Verfassers des oben stehenden Links, Herrn Cappelli, weitgehend abgeglichen und für den neuesten Xcode aktualisiert.
Erstellen einer ZBar-Bibliothek
Irgendwann wieder hatte ich ein anderes Problem mit ZBar und wurde zu einem hilfreichen Satz von Anweisungen hier geführt: Ссылка
Im Grunde sagen Ihnen die Anweisungen, wie Sie den Quellcode mit Mercurial auschecken und dann Ihre eigene libzbar.a-Datei kompilieren. Dies sollte Ihr Problem lösen.
Gerade in der letzten Nacht musste ich die Anweisungen noch einmal befolgen, weil meine Version von ZBar nach der Aktualisierung auf Xcode 5 nicht mehr lief. Ich ermutige Sie, dem obigen Link zu folgen, aber ich werde es tun weitgehend Krippe es hier, zusammen mit einigen Schritten, die ich für die neue iPhone-Plattform hinzugefügt habe.
Laden Sie herunter und installieren Sie Mercurial für Mac. Ich habe das neueste für OS X 10.8 genommen. (Der Installationsbildschirm scheint beim Starten des Installationsprogramms immer noch 10.7 zu lauten. Seien Sie also nicht überrascht.)
Laden Sie nach der Installation von Mercurial die Quelle für ZBar mit den folgenden Befehlen herunter:
%Vor%Wählen Sie im Xcode-Menü "Produkt & gt; Schema & gt; libzbar" und dann "Produkt & gt; Schema & gt; Schema bearbeiten ...". (Sie erhalten eine Warnung, dass das Projekt aktualisiert wurde, um den LLBD-Debugger zu verwenden. Yay!)
Wählen Sie "Ausführen" in der Build-Konfiguration und klicken Sie auf OK.
Als nächstes werden wir libzbar für das Gerät und den Simulator kompilieren. Wählen Sie in der Liste "Projekt und Ziele" das libzbar-Ziel aus und klicken Sie auf die Registerkarte "Build-Einstellungen". Überprüfen Sie Ihre Architektureinstellungen, wie im Screenshot gezeigt. (Stellen Sie sicher, dass es iOS und Arm64 Armv7 Armv7s sagt.)
Vergessen Sie auch nicht, Architekturen in Standardarchitekturen (armv7, armv7s, arm64) zu ändern , sonst wird Ihr Projekt nicht mit arm64 kompiliert. (Dies wird nicht richtig auf Screenshot gezeigt)
Nun, hier ist der Teil, den ich letzte Nacht entdeckt habe. Mein Bereitstellungsziel wurde auf iOS 3.1 festgelegt. Sie erhalten eine Fehlermeldung, wenn Sie versuchen, mit dieser Einstellung in Xcode 5 zu kompilieren. Ich habe es zu iOS 7.0 geändert.
Nachdem Sie Ihre Einstellungen überprüft und alle erforderlichen Änderungen vorgenommen haben, führen Sie Build aus. Gehen Sie zurück zu "Produkt & gt; Schema & gt; Schema bearbeiten ..." und prüfen Sie das Drop-down-Menü "Ziel". (Siehe Screenshot oben.) Ich hatte meine iPhone Retina (3,5 Zoll). Ändern Sie es zu iOS-Gerät und führen Sie Build ein zweites Mal aus. Sie haben die Bibliothek jetzt zweimal erstellt: einmal für den Simulator und einmal für das Gerät. Sie müssen die beiden Bibliotheken kombinieren. Gehe in das folgende Verzeichnis im Terminal:
%Vor%Darin gibt es eine Reihe kryptisch benannter Verzeichnisse, von denen eines "zbar" beginnt. Hier ist mein vollständiger Pfad als Beispiel:
%Vor%Gehen Sie in dieses zbar-Verzeichnis und wechseln Sie dann in das Build / Products-Verzeichnis.
%Vor%Dort sehen Sie zwei Ordner: Release-iphoneos und Release-iphonesimulator. (In jedem befindet sich eine lizbar.a-Datei.) Kombinieren Sie sie mit dem folgenden Befehl:
%Vor%Sie haben jetzt eine universelle Bibliothek (libzbar.a) erstellt, die Sie verwenden sollten und die die mit Ihrer ZBar-Distribution erhält. Es befindet sich im selben Build / Product-Verzeichnis.
Wie ich schon sagte, habe ich die Anweisungen des Verfassers des oben stehenden Links, Herrn Cappelli, weitgehend abgeglichen und für den neuesten Xcode aktualisiert.
Nachdem ich ZBar Sdk in mein Projekt integriert habe, beginnt mein xcode 5-DP mit der Warnung:
"ld: warning: Verknüpfung von ObjC für iOS Simulator, aber Objektdatei (/Documents/Projects/Project/Utility/ZBarSDK/libzbar.a(ZBarReaderViewController.o)) wurde für MacOSX kompiliert "
Seit Dezember 2014 gibt es eine einfachere Lösung als Mario's Antwort. Verwenden Sie CocoaPods und fügen Sie diese Zeile zu Ihrer Poddatei hinzu:
%Vor%Führen Sie dann das klassische %code% aus. Es wird gut bauen, einschließlich für arm64.
ZBarSDK-1.3.1 BETA behebt das Problem ohne Neuaufbau.
Laden Sie einfach ZBarSDK-1.3.1.dmg herunter, entfernen Sie den ZBarSDK-Ordner aus Ihrem Projekt und ersetzen Sie ihn durch den letzten: Ссылка
Ich habe den Fehler umgangen, indem ich "Build Active Architecture Only" in YES geändert habe, nicht nur für Debug, sondern auch für Release ... Zumindest für jetzt, das hat mich gerettet.