С Xcode 6 мы получаем возможность создавать собственные Dynamic Cocoa Frameworks
.
Из-за:
Симулятор все еще использует
32-bit
библиотеку-
начиная с 1 июня 2015 г. обновления приложений, представленные в App Store, должны включать поддержку 64-разрядных версий и быть построены с помощью iOS 8 SDK ( developer.apple.com )
Нам нужно сделать толстую библиотеку для запуска проекта на устройствах и симуляторах. т.е. поддерживает как 32, так и 64 бит в Frameworks.
Но я не нашел никаких руководств, как экспортировать универсальный Fat Framework для будущей интеграции с другими проектами (и поделиться этой библиотекой с кем-нибудь).
Вот мои шаги по воспроизведению:
Установить
ONLY_ACTIVE_ARCH=NO
вBuild Settings
Добавить поддержку
armv7 armv7s arm64 i386 x86_64
вArchitectures
(обязательно)
- Соберите Framework и откройте его в 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, создавая какао Touch Framework - проблемы с архитектурой, но он не дублируется.
Обновить:
Я нашел "грязный прием" на этот случай. Смотрите мой ответ ниже . Если кто-то знает более удобный способ - дайте знать!