С Xcode 6 мы получаем возможность создавать собственный динамический Cocoa Frameworks
.
Из-за:
-
Симулятор по-прежнему использует библиотеку
32-bit
-
начиная с 1 июня 2015 г. Обновления приложений, представленные в App Store, должны включать поддержку 64-битной версии и быть построены с помощью SDK iOS 8 (developer.apple.com)
Мы должны сделать жировую библиотеку для запуска проекта на устройствах и симуляторах. то есть поддерживать 32 и 64 бит в Framework.
Но я не нашел никаких руководств, как экспортировать универсальную жировую структуру для дальнейшей интеграции с другими проектами (и поделиться этой библиотекой с кем-то).
Вот мои шаги для воспроизведения:
-
Установите
ONLY_ACTIVE_ARCH=NO
вBuild Settings
-
Добавьте поддержку
armv7 armv7s arm64 i386 x86_64
вArchitectures
(точно)
- Построить структуру и открыть ее в Finder:
- Добавьте эту структуру в другой проект
Фактический результат:
Но в итоге у меня все еще есть проблема с запуском проекта с этой структурой на устройствах и симуляторе сразу.
-
если я беру фреймворк из папки
Debug-iphoneos
- он работает на устройствах и получает ошибку на тренажерах:ld: symbol(s) not found for architecture i386
xcrun lipo -info CoreActionSheetPicker
Архитектуры в жирном файле: CoreActionSheetPicker: armv7 armv7s arm64
-
если я беру фреймворк из папки
Debug-iphonesimulator
- он работает на симуляторах. и у меня есть ошибка на устройстве:ld: symbol(s) not found for architecture arm64
xcrun lipo -info CoreActionSheetPicker
Архитектуры в файле жира: CoreActionSheetPicker: i386 x86_64
Итак, как создать динамическую структуру, которая работает на устройствах и симуляторах?
Этот ответ связан с Xcode 6 iOS Создание Cocoa Touch Framework - проблемы с архитектурой, но он не дублируется.
Обновление:
Я нашел "грязный взлом" для этого случая. См. Мой ответ ниже. Если кто-то знает более удобный способ - пожалуйста, дайте мне знать!