Добавление целевых объектов Framework и App Extension в проект IOS App, правильно ли я это делаю?

Я изучаю разработку IOS/Swift и хотел бы создать приложение для IOS, которое в будущем будет иметь собственное расширение Today. Я читал, что лучше поместить общую логику (например, логику, которая обращается к интернет-ресурсам, выполняет некоторую работу с результатом и т. Д.) Между приложением и его расширением в пользовательскую среду. Так как я думаю, что мне нужно Чтобы изменить как фреймворк, так и код приложения во время разработки приложения, я бы хотел избежать создания фреймворка в отдельном проекте, чем использовать функцию "Показать в Finder", чтобы найти пакет фреймворка, а затем перетащить его в приложение. проект... Итак, я хотел бы знать, является ли это правильным способом настройки рабочей области с приложением, используемой им структурой и расширением приложения Today:

  1. Создайте новый проект с целью приложения IOS
  2. Выберите проект в Навигаторе проекта, а затем выберите "Редактор" -> "Добавить цель..." и укажите Cocoa Touch Framework
  3. Editor-> Add Target... и укажите расширение сегодня
  4. Добавьте фреймворк в связанные фреймворки и библиотеки

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

Затем я заметил следующее предупреждение при компиляции проекта, но я не знаю, связано ли это с тем, как я настроил проект:

ld: warning: linking against dylib not safe for use in application extensions: /Users/gianni/Library/Developer/Xcode/DerivedData/TestFrameworkApp-dshihhfiuepeqzddbnpgnfwilhem/Build/Products/Debug-iphonesimulator/TestFramework.framework/TestFramework

Кстати, это нормально, что записи в папке " Продукты " всегда красные? Это из-за того, что я строю только для IOS Simulator, так как у меня нет платной учетной записи разработчика, которая позволяет мне создавать устройства для IOS? Помешает ли это мне построить фреймворк, который можно экспортировать для какого-то другого проекта, так как я не могу найти пакет фреймворка, щелкнув правой кнопкой мыши на продукте фреймворка и выбрав " Показать в Finder" (и поэтому не могу перетаскивать это к другому проекту)?

Я надеюсь, что я был достаточно ясен, и что вы укажете мне правильное направление, чтобы понять, каков предлагаемый способ начать мой новый проект:)

1 ответ

Для меня это звучит так, будто вы идете по тому же пути, что и я.

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

введите описание изображения здесь

Другие вопросы по тегам