iOS: когда выбрать статическую библиотеку или платформу Cocoa Touch? - PullRequest
0 голосов
/ 23 апреля 2019

Для начала: я прочитал другие вопросы здесь, но они утверждают, что, например, Swift не может использоваться в Framework или / и Library или устарел (5 лет).

В чем заключаются преимущества и недостатки платформы Cocoa Touch и статической библиотеки Cocoa Touch для достижения этой цели?

Я пытаюсь поделиться кодом между двумя целевыми объектами iOS, например, цель iPhone и цель iPad (универсальная цель здесь не нужна).

Если я правильно понимаю, Статическая библиотека и код приложения будут объединены в один двоичный файл, а комбинация Framework и кода приложения будет представлять собой два двоичных файла. Я предполагаю, что это означает больше подписания и больше файлов DSYM для загрузки в инструменты отчетности о сбоях?

Кроме того, Framework должен / мог бы работать автономно, в то время как Статической библиотеке всегда нужен другой код.

А как насчет тестов, распространения в App Store, отладки (точек останова) и времени компиляции? Какой вариант лучше подходит для какой задачи?

1 Ответ

3 голосов
/ 23 апреля 2019

Некоторые пояснения Static vs Dynamic Frameworks: iOS Static vs Dynamic Frameworks разъяснения

Язык: Что касается использования Swift, прежде чем вы не смогли создать статическую библиотеку с ним,но с Xcode 9 и далее вы можете.Так что я думаю, что Свифт против ObjC не будет проблемой.Не было найдено никаких руководств по созданию статических библиотек с помощью Swift, только для создания фреймворков (например: https://www.raywenderlich.com/5109-creating-a-framework-for-ios).). Поэтому, возможно, Framework будет проще с точки зрения поиска ресурсов / ссылок.

dSYM:Ссылаясь на ответ сотрудников Apple: «Если вы строите структуру как зависимость от цели своего приложения, dSYM для платформы будут присутствовать в архиве, который вы создаете при архивации приложения для распространения. Если вы используете предоставленную средупоставщиком, который уже скомпилирован, вам нужно будет связаться с поставщиком фреймворка по поводу dSYM. "(https://forums.developer.apple.com/thread/70716). Что касается статических библиотек, они будут менее эффективными с точки зрения обрабатываемых вами dSYM. (Почему Xcode не генерирует dSYM для статической библиотеки )

Совместное проектирование для Frameworks: «Разработчик может свободно распространять инфраструктуру iOS без кодовой подписи, так как Consumer все равно перекодирует ее, но Xcode заставляет разработчикакодировать свои рамки при сборке для устройства iOS "( CreatИспользование фреймворков iOS / OSX: необходимо ли кодировать их перед распространением среди других разработчиков? )

Что касается тестов, то добавление платформы или статической библиотеки на этапах сборки объекта модульного тестирования должно выполнять эту работу..

Точки останова: Статические библиотеки: Отладка статической библиотеки в Xcode Каркасы: Xcode 9 - Точки останова Framework

Для того, что я прочитал вссылки, хотя статические библиотеки могут быть немного более эффективными, Frameworks намного проще в настройке.

...