Я нахожусь в процессе добавления классов Swift в существующий проект Objective-C. В рамках этого я добавил MyProjectTests.swift
к цели MyProjectTests
. Он импортирует классы Swift из целевого MyProject
с import MyProject
, и это прекрасно работает.
Теперь я хочу использовать @import Swift;
и в MyProjectTests.m
. Однако компилятор выдает ошибку Module 'MyProject' not found
.
У меня есть эти вопросы:
Сделать так, чтобы импорт и @import успешно выполнялись в тестовой цели
Почему компилятор Swift видит модуль MyProject
, а компилятор Objective-C — нет? Какие настройки сборки в MyProjectTest
мне нужно изменить, чтобы @import MyProject
тоже удалось.
Экспортировать классы Objective-C из основной цели
В конечном итоге MyProjectTest.swift
и MyProjectTest.m
также потребуется доступ к классам Objective-C от цели MyProject
. До сих пор у меня были многоцелевые такие файлы, но я хочу переключиться на использование модулей и здесь.
Насколько я понимаю, это вопрос предоставления файла module.map
, в котором будут перечислены заголовочные файлы. для классов, которые я хочу "экспортировать".
Какие именно шаги я должен пройти? Где я должен поместить заголовочный файл и какие параметры сборки мне нужно изменить в двух целях MyProject
и MyProjectTests
?
В настоящее время у меня есть (пока пустой) module.map
внутри моего проекта, и настройки сборки для цели MyProject
включают Defines Module: Yes
, Product Module Name: MyProject
.
ОБНОВЛЕНИЕ Сейчас я задаюсь вопросом, возможно ли невозможно открыть файлы (Objective-C) из приложения iOS (вместо framework) как модуль. Но тогда это уже работает для файлов Swift (каким-то образом).