web-dev-qa-db-fra.com

Swift 2 / iOS 9 - libz.dylib non trouvé

J'utilise des codes externes de Google dans mon nouveau Swift 2.0 qui nécessitait "libz.dylib" dans les versions précédentes. Après la mise à jour vers le nouveau XCode/le nouveau SDK.

XCode est maintenant incapable d'importer le libz.dylib et lève quelques erreurs

Symboles non définis pour l'architecture i386: "_deflate", référencés depuis: + [GAICompressionUtil gai_dataByCompressingBytes: length: compressionLevel: mode:] mode:] dans libGoogleAnalyticsServices.a (GAICompressionUtil.o) "deflateInit2", référencé depuis: + [GAICompressionUtil gai_dataByCompressingBytes: longueur: compressionLevel: mode:] dans libGoogleAnalyticsServices.a (.). , référencé à partir de: + [GAICompressionUtil inflateInit2 ", référencé depuis: + [GAICompressionUtil gai_dataByInflatingBytes: length: isRawData:] dans libGoogleAnalyticsServices.a (GAICompressionUtil.o) l d: symbole (s) non trouvé (s) pour l'architecture i386 clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)

En parcourant les packages disponibles dans les paramètres de "phase de construction", je peux trouver "libz.tbd", qui semble remplacer le libz.dylib. Lors de l'importation de cette lib, l'erreur de l'éditeur de liens reste la même, mais je reçois cet avertissement supplémentaire:

avertissement: fichier à ignorer '/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd' (type de fichier inattendu 'texte' dans Phase de construction de Frameworks & Libraries)

Une idée de ce qu'il faut faire?

52
Daniel K.

J'ai eu le même problème. J'ai trouvé une sorte de chemin autour.

  1. Aller aux phases de construction> Lier un binaire avec les librairies> +> Ajouter autre
  2. Une fois dans la fenêtre de sélection de fichier, faites "CMD" + Maj + G (Aller au dossier) et tapez/usr/lib /
  3. Depuis/usr/lib, vous pouvez ajouter: libz.dylib et plus encore ...
  4. Compiler et s'amuser
112
Guitz

libz.dylib se trouve maintenant sous libz.tbd extrait du Apple :

Pour ceux qui sont curieux, les fichiers .tbd sont de nouvelles "bibliothèques de stub basées sur du texte", qui fournissent une version beaucoup plus compacte des bibliothèques de stub à utiliser dans le SDK et permettent de réduire considérablement la taille de son téléchargement.

Espérons que plus de documentation sera bientôt disponible.

edit

Pour le clarifier, je citerai Guitz answer avec le contenu mis à jour

  1. Aller aux phases de construction> Lier un binaire avec les librairies> +> Ajouter autre
  2. Une fois dans la fenêtre de sélection de fichier, faites "CMD" + Maj + G (Aller au dossier) et tapez/usr/lib /
  3. Depuis/user/lib, vous pouvez ajouter: libz.tbd et plus ...
  4. Compiler et s'amuser
82
helgetan

Supprimez toutes les bibliothèques dynamiques (dylib) de la phase de liaison avec les fichiers binaires. Il trouvera ces bibliothèques par lui-même.

8
AZ0

J'ai ce problème dans objective-c project.ios9.1, xcode7.1

1.Allez vers la cible> Étapes de la construction> Lier un binaire avec des bibliothèques> +

2.sélectionnez libz.tbd et ajoutez-le

Ça a fonctionné pour moi

2
iengchen

libz.dylib est la bibliothèque dynamique de Zlib, vous pouvez installer Zlib à partir d’ici http://zlib.net/

1
Prabhu.Somasundaram

Vous pouvez ajouter libz.1.dylib à partir de l'emplacement:/usr/lib /

  1. Aller aux phases de construction> Lier un binaire avec les librairies> +> Ajouter autre
  2. Une fois dans la fenêtre de sélection de fichier, faites CMD + Maj + G (Aller au dossier) et tapez/usr/lib /
  3. Depuis/user/lib vous pouvez ajouter: libz.1.dylib

Cela a fonctionné pour moi.

0
Vin

Vous pouvez également ajouter le lybz.dylib de "Autres drapeaux de l'éditeur de liens" dans Paramètres de construction en ajoutant l'argument -lz.

Je devais le faire parce que, en utilisant la méthode où vous référencez la bibliothèque à partir de/usr/lib, lorsque j'ai déployé mon application sur nos testeurs, la bibliothèque .dylib n'a pas pu être résolue et a entraîné le blocage de l'application au lancement.

0
tentmaking