Ich verwende in meinem neuen Swift 2.0-Projekt einige externe Codes von Google, für die in früheren Versionen "libz.dylib" erforderlich war. Nach dem Update auf den neuen XCode/das neue SDK.
XCode kann jetzt die libz.dylib nicht importieren und löst einige Fehler aus
Undefinierte Symbole für die Architektur i386: "_deflate", referenziert von: + [GAICompressionUtil gai_dataByCompressingBytes: length: compressionLevel: mode:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) "_deflateEnd", referenziert von: gai_dataByByByByte: [ mode:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) "deflateInit2", referenziert von: + [GAICompressionUtil gai_dataByCompressingBytes: length: compressionLevel: mode:] in libGoogleAnalyticsServices.a (GAicompressionUtilate2) , referenziert von: + [GAICompressionUtil gai_dataByInflatingBytes: length: isRawData:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) "_inflateEnd", referenziert von: + [GAICompressionUtil gai_dataBytes: GAICompressionUtil: inflateInit2 ", referenziert von: + [GAICompressionUtil gai_dataByInflatingBytes: length: isRawData:] in libGoogleAnalyticsServices.a (GAICompressionUtil.o) l d: Symbol (e) für Architektur i386 nicht gefunden clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (Aufruf mit -v)
Wenn ich mir die verfügbaren Pakete in den "Build Phase" -Einstellungen ansehe, finde ich "libz.tbd", das anscheinend den Ersatz für die libz.dylib darstellt. Beim Importieren dieser Bibliothek bleibt der Linker-Fehler derselbe, aber ich erhalte diese zusätzliche Warnung:
warnung: Überspringen der Datei '/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd' (unerwarteter Dateityp 'text' in Build-Phase für Frameworks und Bibliotheken)
Irgendeine Idee, was zu tun ist?
Ich hatte das gleiche problem Ich habe einen Weg gefunden.
libz.dylib befindet sich jetzt unter libz.tbd Zitat aus dem Apple Entwicklerforum :
Für Neugierige sind die .tbd-Dateien neue "textbasierte Stub-Bibliotheken", die eine wesentlich kompaktere Version der Stub-Bibliotheken für das SDK bereitstellen und dazu beitragen, die Download-Größe erheblich zu reduzieren.
Hoffentlich wird bald mehr Dokumentation kommen.
edit
Zur Verdeutlichung werde ich Guitz Antwort mit dem aktualisierten Inhalt zitieren
- Gehen Sie zu Bauphasen> Binary mit Librairies verknüpfen> +> Andere hinzufügen
- Sobald Sie im Dateiauswahlfenster sind, drücken Sie "CMD" + Umschalt + G (Gehe zu Ordner) und geben Sie/usr/lib/ein.
- Aus/user/lib können Sie hinzufügen: libz.tbd und mehr ...
- Kompilieren und Spaß haben
Entfernen Sie alle dynamischen Bibliotheken (dylib) aus der Verknüpfungsphase mit Binärdateien. Es wird diese Bibliotheken für sich finden.
Ich habe dieses Problem in object-c project.ios9.1, xcode7.1
1.Gehen Sie zu Target> Build Phases> Binary mit Librairies verknüpfen> +
2.Wählen Sie libz.tbd und fügen Sie es hinzu
Es hat bei mir funktioniert
libz.dylib ist die dynamische Bibliothek für Zlib. Sie können Zlib von hier aus installieren http://zlib.net/
Sie können libz.1.dylib von folgendem Speicherort hinzufügen:/usr/lib /
Es hat bei mir funktioniert.
Sie können auch das lybz.dylib
from "Other Linker Flags" in Build Settings durch Hinzufügen des Arguments -lz
.
Ich musste dies tun, weil die .dylib-Bibliothek bei der Bereitstellung meiner App für unsere Tester mit der Methode, mit der Sie auf die Bibliothek aus/usr/lib verweisen, nicht aufgelöst werden konnte und die App beim Start abstürzte.