Swift 2 / iOS 9-libz.dylib нужна не найден


Я использую некоторые внешние коды от google в моем новом проекте Swift 2.0, который требовал "libz.dylib нужна" в более ранних версиях. После обновления до Нового XCode / нового SDK.

XCode теперь не может импортировать libz.dylib и выдает некоторые ошибки

неопределенные символы для архитектуры i386: "_deflate", ссылка из: +[GAICompressionUtil gai_dataByCompressingBytes: length:compressionLevel: mode:] in libGoogleAnalyticsServices.a (GAICompressionUtil.о) "_deflateEnd", ссылка из: +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel: mode:] в libGoogleAnalyticsServices.a (GAICompressionUtil.о) "deflateInit2", ссылается: +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel: mode:] в libGoogleAnalyticsServices.a (GAICompressionUtil.о) "_inflate", ссылка из: +[GAICompressionUtil gai_dataByInflatingBytes: length: isRawData:] в libGoogleAnalyticsServices.a (GAICompressionUtil.о) "_inflateEnd", ссылка из: +[GAICompressionUtil gai_dataByInflatingBytes:length: isRawData:] в libGoogleAnalyticsServices.a (GAICompressionUtil.о) " inflateInit2", ссылается: +[GAICompressionUtil gai_dataByInflatingBytes:length: isRawData:] в libGoogleAnalyticsServices.a (GAICompressionUtil.о) ld: символ(ы) не найден для архитектуры i386 лязг: ошибка: не удалось выполнить команду компоновщика с кодом выхода 1 (Используйте-v для просмотра вызова)

при просмотре доступных пакетов в настройках " этап сборки "я могу найти" libz.tbd", который, похоже, является заменой libz.dylib нужна. При импорте этой библиотеки ошибка компоновщика остается прежней, но я получаю это дополнительное предупреждение:

предупреждение: пропуск файла '/Применения/Xcode-бета.приложение/содержание/разработчик/платформы/iPhoneSimulator.платформа / разработчик / SDKs / iPhoneSimulator9.0.sdk/usr/lib / libz.tbd '(неожиданный тип файла "текст" в фазе сборки фреймворков и библиотек)

есть идеи, что делать?

8 51

8 ответов:

У меня была та же проблема. Я нашел какой-то обходной путь.

  1. перейти к этапам сборки > связать двоичный файл с Librairies > + > добавить другие
  2. один раз в окне выбора файла сделайте "CMD"+Shift+G (перейдите в папку) и введите /usr/lib/
  3. из /usr / lib вы можете добавить: libz.dylib и больше...
  4. компиляция и получайте удовольствие

libz.dylib теперь находится под libz.Подлежит определению цитата из форумов разработчиков Apple:

для тех, кто очень любопытный .файлы будут определены новые "текстовые заглушки библиотеки", которые обеспечивают гораздо более компактную версию заглушки библиотеки для использования в SDK, и помогают значительно уменьшить его размер файла.

надеюсь, больше документации будет приходить скоро.

edit

чтобы прояснить это, я приведу ответ Guitz с обновленным контентом

  1. перейти к этапам сборки > связать двоичный файл с Librairies > + > добавить другие
  2. один раз в окне выбора файла сделайте "CMD"+Shift+G (перейдите в папку) и введите /usr/lib/
  3. из /user / lib вы можете добавить:libz.tbd и многое другое...
  4. компилируйте и получайте удовольствие

удалите все динамические библиотеки (dylib) из фазы связывания с двоичными файлами. Он найдет эти библиотеки самостоятельно.

У меня есть эта проблема в проекте objective-C.iOS 9 охота.1,xcode7.1

1.Перейдите в цель> этапы сборки >связать двоичный файл с Librairies > +

2.выберите сайт libz.tbd и добавить его

Это сработало для меня

libz.dylib нужна, динамических Либ для работы с zlib, вы можете установить эту библиотеку отсюда http://zlib.net/

вы можете добавить libz.1.dylib из location: / usr / lib/

  1. перейти к этапам сборки > связать двоичный файл с Librairies > + > добавить другие
  2. один раз в окне выбора файла выполните CMD+Shift+G (перейдите в папку) и введите /usr/lib/
  3. из /user / lib вы можете добавить: libz.1.dylib нужна

Это сработало для меня.

вы также можете добавить lybz.dylib с "Другие Флаги Компоновщика" на Параметры Построения добавив аргумент -lz.

Я должен был сделать это, потому что, используя метод, где вы ссылаетесь на библиотеку из /usr/lib, когда я развернул свое приложение для наших тестеров .библиотека dylib не смогла решить и вызвала сбой приложения при запуске.

между тем вы можете использовать предыдущий SDK. Это мой ответ для libsqlite3:

https://stackoverflow.com/a/30981161/627794

Edit: (добавлено содержимое ссылки)

откройте терминал, введите (перейдите в нужную библиотеку, например libz)

locate libsqlite3.dylib

вы найдете несколько таких файлов:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libsqlite3.dylib
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libsqlite3.dylib

перейдите в настройки вашего проекта - > этапы сборки - > связь с двоичными файлами. Добавьте оба файла, нажав +, тогда Add Other. Нажмите Cmd-Shift-G, и скопируйте-вставьте путь к файлу. Нажмите Open.

если вы устанавливаете sqlite3 с помощью macports, удалите /opt/local/lib из пути поиска библиотеки в настройках сборки.