У меня есть статическая статическая библиотека с двумя средами архитектуры (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 разбивает многие из них.