xcode как разрабатывать с помощью фреймворков

Спасибо, что потратили время на чтение моего вопроса.

Я работаю iOS-разработчиком уже более 2 лет, и сегодня мне до сих пор стыдно, потому что я не знаю, как обращаться с фреймворками. Я создал несколько проектов, используя свои собственные фреймворки, но я никогда точно не понимал, как лучше всего это делать.

Давайте посмотрим на следующий пример:

Project -> FrameworkA -> AFNetworking - Charts - FMDB - больше

Итак, у меня есть большой FrameworkA со всем поведением приложения, а затем небольшой проект, ссылающийся на этот FrameworkA и настраивающий только значки, тексты и изображения. Я использую для управления зависимостями CocoaPods, и я хотел бы использовать его с FrameworkA. Благодаря этому я мог легко ссылаться на внешние библиотеки, но, похоже, это не работает для фреймворков, а только для проектов. Итак, мои вопросы: как я могу добавить AFNetworking, Charts, FMDB и т. д. в свой FrameworkA, а затем ссылаться на структуру из моего проекта?

Я ценю, если вы можете дать мне некоторое представление об использовании CocoaPods или любого другого менеджера зависимостей. Мне не нравится старый способ делать это вручную.

Я надеюсь, что мой случай ясен. Спасибо!


person Matias Cohen    schedule 27.06.2018    source источник
comment
Не стыдись. Это тяжело. Продолжайте пытаться!   -  person Aaron    schedule 27.06.2018
comment
Кроме того, вопрос и проблема, которые у вас есть, вообще не ясны. В чем проблема? Просьба уточнить.   -  person Aaron    schedule 27.06.2018
comment
Я точно не знаю, как разработать frameworkA, который зависит от некоторых других фреймворков (например, AFNetworking), используя менеджер зависимостей (как CocoaPods). А затем связать frameworkA из любого проекта. Спасибо   -  person Matias Cohen    schedule 28.06.2018


Ответы (1)


Похоже, вы спрашиваете, как внедрить внешние фреймворки, такие как AFNetworking, в фреймворк, который вы разрабатываете, а затем использовать этот фреймворк в своем приложении.

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

Я бы порекомендовал сделать это с помощью CocoaPods или Carthage, чтобы связать внешние фреймворки (AFNetworking и т. д.) с вашим фреймворковым проектом. Но сделать, чтобы попытаться внедрить их.

Затем в своем проекте приложения снова используйте CocoaPods или Carthage для связи в вашей структуре (вам не нужно будет связывать внешние, если вы не используете их напрямую в коде приложения). Затем добавьте необходимые шаги сборки, чтобы скопировать файл фреймворка и все внешние файлы фреймворка в каталог фреймворка готового приложения.

person drekka    schedule 28.06.2018
comment
Спасибо @drekka, но я думаю, что CocoaPods невозможно использовать с фреймворками. Я даже пытался и получил ошибку компиляции следующим образом: «могу ли я использовать какаоподы при создании сенсорной инфраструктуры какао»> stackoverflow.com/questions/35927109/ - person Matias Cohen; 28.06.2018
comment
Вероятно, это не фреймворки как таковые, а статические библиотеки, которые выглядят как фреймворки. Для этого вам просто нужно связать их, и они будут скомпилированы в двоичный файл вашего фреймворка/приложения. - person drekka; 05.07.2018