Ios - Як експортувати; жир; Какао Touch Framework (для симулятора та пристрою) Переповнення стеку
С Xcode 6 ми отримуємо можливість створювати власні Dynamic Cocoa Frameworks .

Симулятор все ще використовує 32-розрядну бібліотеку
починаючи з 1 червня 2015 року оновлення додатків, подані в App Store, повинні містити 64-розрядну підтримку та створюватися за допомогою пакета SDK для iOS 8 (developer.apple.com)
Ми повинні створити жирну бібліотеку, щоб запускати проект на пристроях та тренажерах. тобто підтримує як 32, так і 64 біти в Frameworks.
Але я не знайшов жодного посібника, як це робити експорт універсальний фреймворк для майбутньої інтеграції з іншими проектами (і поділитися цією бібліотекою з кимось).
Ось мої кроки для відтворення:
Встановіть ONLY_ACTIVE_ARCH = НІ в налаштуваннях збірки
Додайте підтримку armv7 armv7s arm64 i386 x86_64 до Архітектури (точно)
- Створіть Framework і відкрийте його у Finder:
- Додайте цей фреймворк до іншого проекту
Фактичний результат:
Але врешті-решт у мене все ще виникають проблеми із запуском проекту з цим фреймворком відразу на пристроях та симуляторі.
якщо я беру фреймворк з папки Debug-iphoneos - він працює на пристроях і отримує помилку на симуляторах: ld: символ (и) не знайдено для архітектури i386
Архітектури в жировому файлі: CoreActionSheetPicker: armv7 armv7s arm64
якщо я беру фреймворк з папки Debug-iphonesimulator - він працює на симуляторах. і у мене помилка на пристрої: ld: символ (и) не знайдено для архітектури arm64
Архітектури в жировому файлі: CoreActionSheetPicker: i386 x86_64
Отже, як створити динамічну структуру, яка працює на пристроях та тренажерах?
Оновлення:
Я знайшов "брудний хак" для цієї справи. Дивіться мою відповідь нижче. Якщо хтось знає більш зручний спосіб - будь ласка, дайте мені знати!
6 Відповіді 6
Актуальність цієї відповіді: липень 2015 р. Найімовірніше, що все зміниться.
TLDR;
В даний час Xcode не має інструментів для автоматичного експорту універсального фреймворку, тому розробник повинен вдатися до ручного використання інструменту lipo. Також згідно з цим радаром перед подачею розробнику AppStore, який є споживачем фреймворку, також необхідно використовувати lipo для зняття фрагментів симулятора з фреймворку.