Подтвердить что ты не робот

Обтекание статической библиотеки в Cocoa Touch Framework

У меня есть статическая статическая библиотека с двумя средами архитектуры (armv7, arm64). Я пытаюсь заставить его работать с быстрым и обернуть его в Cocoa Touch Framework.

Что я делаю:

  • Создать проект Cocoa Touch Framework
  • Перетащите статическую библиотеку с заголовками
  • Установите OTHER_LDFLAGS в -all_load
  • Установите ONLY_ACTIVE_ARCH в NO
  • Установите VALID_ARCHS и ARCHS в armv7 и arm64
  • Сборка с конфигурацией сборки релиза
  • Захватите файл .framework из DerivedData/../../Продукты/

Когда я поместил эту .framework в мой быстрый проект, добавьте раздел Embedded Binaries в мои общие настройки цели, импортируйте фреймворк и используйте один из его классов, я получаю undefined symbols for architecture arm64 или undefined symbols for architecture armv7.

EDIT:
Не уверен, что это помогает, но я заметил, что размер статической библиотеки составляет около 34 МБ, но размер сгенерированного .framework составляет около 12 МБ.

ИЗМЕНИТЬ 2:
Я запускал nm -arch arm64 -g myLibraryName как в статической библиотеке, так и в сгенерированной динамической библиотеке. Динамическая библиотека не содержит всех символов, которые имеет статическая библиотека. Кажется, что процесс сборки XCode разбивает многие из них.

4b9b3361

Ответ 1

Думаю, вы также забыли добавить:

Проект Цель Фазы сборки Ссылка на двоичные файлы с библиотеками. add + the: libz.dylib или libz.tbd (Так как Xcode 7, файлы *.dylib являются now *.tbd файлами)

Обязательно также очистите папку: /User/yourname/Library/Developer/XCode/DerivedData

P.S: Если вы хотите, вы также можете добавить libz.tbd из "Другие флаги компоновщика" в Настройки сборки, добавив аргумент -lz.