Подтвердить что ты не робот

Преобразование цели статической библиотеки в целевой объект инфраструктуры в проекте Xcode

У меня есть проект Xcode, который создает статическую библиотеку. Моя команда планирует все новые разработки в Swift. Невозможно добавить файлы Swift в проект статической библиотеки. Мы отказываемся от поддержки iOS 7, поэтому теперь можно включить фреймворки в наше приложение iOS. Поэтому я намерен преобразовать проект статической библиотеки в проект фреймворка.

Я посмотрел, но я не могу найти никаких инструментов или советов о том, как выполнить это преобразование. Статическая библиотека большая (более 100 файлов .m).

Я надеюсь получить лучший ответ, чем создать новую цель параллельной структуры. Я попытался это дважды. Первый раз, как стремительная цель, но я не смог легко импортировать все файлы Objective C. Затем, как цель Objective C, но больше нет .pch.

4b9b3361

Ответ 1

Чтобы преобразовать статическую/динамическую связанную структуру из статической связанной библиотеки,

  • Добавить новый cocoa сенсорный фрейм как TARGET в существующем проекте статической связанной библиотеки.
  • На этапах сборки добавьте все .m,.mm,.c,.cpp,.metal и т.д. в фазу "\ Build Phases\Compile Sources" вашей статической связанной рамки.
  • Поместите заголовки, которые вы хотите открыть, в "\ Build Phases\Headers".
  • Для динамически связанных фреймворков не забудьте проверить параметр типа Mach-O в настройках сборки. Если вы собираетесь использовать swift, вам необходимо убедиться, что тип Mach-O задан как динамическая библиотека, чтобы он стал динамически связанной структурой. Для статической связанной структуры вам необходимо установить тип Mach-O как статическую библиотеку, но вы не можете использовать swift в преобразованной статической связанной структуре (только objective-c, objective-c ++, С++, C и т.д. допускается).

Затем для приложения, которое хочет использовать эту фреймворк, нужно просто включить заголовки в качестве #import и добавить структуру в "Build Phases\Link Binary With Libraries" вашего приложения. Если преобразованная структура - это динамически связанная структура, вам нужно будет поместить ее в "Встроенные двоичные файлы".

Ответ 2

Я видел, что кто-то создал фреймворк вручную, создав файл module.framework и скопировав все файлы заголовков в папке module.framework/Headers. Это решение, похоже, работает, проект может правильно импортировать файлы и правильно рассматривать их как структуру.

Я не уверен, что это лучший способ сделать это жестким, я пытаюсь сделать это в большом проекте, который ATM импортирует статическую библиотеку через cocoapods, но похоже, что у меня есть некоторые проблемы с видимостью некоторых классов с использованием рамки.