Swift 2 / iOS 9 - libz.dylib не найден
Я использую некоторые внешние коды от Google в моем новом проекте Swift 2.0, который требовал "libz.dylib" в более ранних версиях. После обновления до нового XCode / нового SDK.
XCode теперь не может импортировать libz.dylib и выдает некоторые ошибки
Неопределенные символы для архитектуры i386: "_deflate", на который ссылаются из: +[GAICompressionUtil gai_dataByCompressingBytes:length:ressionLevel:mode:] в libGoogleAnalyticsServices.a(GAICompressionUtil.o) "_deflateEnd", ссылка на сжатие: mode:] в libGoogleAnalyticsServices.a (GAICompressionUtil.o) " deflateInit2 ", на который ссылается: gai_dataByInflatingBytes:length:isRawData:] в libGoogleAnalyticsServices.a(GAICompressionUtil.o) "_inflateEnd", на который ссылается: [GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] в libGoogleAnalyticsServices.a (GAICompressionUtil.o) ld: symbol (s) не найден для архитектуры i386 clang: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)
Просматривая доступные пакеты в настройках "фазы сборки", я могу найти "libz.tbd", который, кажется, заменяет libz.dylib. При импорте этой библиотеки ошибка компоновщика остается прежней, но я получаю это дополнительное предупреждение:
предупреждение: пропуская файл '/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/libz.tbd' (неожиданный тип файла 'text' в Этап сборки фреймворков и библиотек)
Есть идеи, что делать?
8 ответов
У меня такая же проблема. Я нашел какой-то путь вокруг.
- Перейти к этапам сборки> Связать двоичные файлы с библиотеками> + > Добавить другое
- В окне выбора файла выполните "CMD"+Shift+G (Перейти в папку) и введите / usr / lib /
- Из / usr / lib вы можете добавить: libz.dylib и другие...
- Компилируй и веселись
libz.dylib теперь можно найти в цитате libz.tbd на форумах разработчиков Apple:
Для тех, кому интересно, файлы.tbd - это новые "текстовые библиотеки-заглушки", которые предоставляют гораздо более компактную версию библиотек-заглушек для использования в SDK и помогают значительно уменьшить размер загружаемого файла.
Надеюсь, скоро появится больше документации.
редактировать
Чтобы прояснить это, я приведу ответ Гитца с обновленным содержанием.
- Перейти к этапам сборки> Связать двоичные файлы с библиотеками> + > Добавить другое
- В окне выбора файла выполните "CMD"+Shift+G (Перейти в папку) и введите /usr/lib/
- Из /user/lib вы можете добавить: libz.tbd и другие...
- Компилируй и веселись
Удалите все динамические библиотеки (dylib) из фазы связывания с бинарными файлами. Он найдет эти библиотеки самостоятельно.
Вы также можете добавить lybz.dylib
из "Другие флаги компоновщика" в настройках сборки, добавив аргумент -lz
,
Я должен был сделать это, потому что, используя метод, где вы ссылаетесь на библиотеку из / usr / lib, когда я развертывал свое приложение для наших тестировщиков, библиотека.dylib не могла разрешиться и вызвала сбой приложения при запуске.
У меня есть эта проблема в targe t-c project.ios9.1, xcode7.1
1. Перейти к цели> Фазы сборки> Связать двоичные файлы с библиотеками> +
2. выберите libz.tbd и добавьте его
У меня сработало
libz.dylib - это динамическая библиотека для Zlib. Вы можете установить Zlib отсюда http://zlib.net/
Вы можете добавить libz.1.dylib из папки:/usr/lib/
- Перейти к этапам сборки> Связать двоичные файлы с библиотеками> + > Добавить другое
- В окне выбора файла выполните CMD+Shift+G (Перейти в папку) и введите / usr / lib /
- Из / user / lib вы можете добавить: libz.1.dylib
Это сработало для меня.
Тем временем вы можете использовать предыдущий SDK. Это мой ответ для libsqlite3:
/questions/21087795/import-i-kompilyatsiya-swift-20-s-bibliotekoj-sqlite3/21087807#21087807
Изменить: (добавлено содержание ссылки)
Откройте терминал, введите (перейдите в нужную вам библиотеку, например, 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
из пути поиска библиотеки в настройках сборки.