измените настройку SWIFT_OBJC_INTERFACE_HEADER_NAME и сделайте ее одинаковой для разных целей.Для этого измените инструкцию, которая генерирует это свойство, с $ (SWIFT_MODULE_NAME) -Swift.h на $ (PROJECT_NAME) -Swift.h , как объяснено здесь
ПослеВыполните эту команду Clean Build Folder, нажав Alt и войдя в меню Product.Поскольку имя заголовка является общим для целей, теперь его можно один раз импортировать в файл .m ObjectiveC, и все цели могут извлечь выгоду из классов Swift.
Если после сборки все еще отображается ошибка, убедитесь, что заголовок может бытьдостиг из XCode Cmd, нажав на его имя.Он должен открыть файл, содержащий код, подобный следующему:
SWIFT_CLASS("_TtC27ProjectName_Summary11MyClass")
@interface MyClass : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
Если необходимо убедиться, что эти заголовки генерируются, откройте терминал и используйте эту команду
find ~/Library/Developer/Xcode/DerivedData -name "*Swift.h"
Вы должны увидетьодин заголовок для каждой цели
Другая проблема, которая произошла со мной после этих изменений, заключается в том, что он начал выдавать ошибки в коде ObjectiveC, которые я не затрагивал.Проблема была из-за позиции импорта, как сообщается здесь :
Именно там, где в верхней части файла .m вы импортируете скрытый заголовок моста,разница.Обычным признаком проблемы является то, что вы получаете ошибку компиляции «Неизвестное имя типа», где неизвестный тип является классом, объявленным в Objective-C.Решение состоит в том, чтобы #import файла .h, содержащего объявление для неизвестного типа, также в ваших файлах Objective C, прежде чем #import скрытый заголовок моста.Необходимость сделать это может раздражать, особенно если рассматриваемый файл Objective-C не нуждается в информации об этом классе, но он решает проблему и позволяет продолжить компиляцию.
На самомend код компилируется и запускается на устройстве и симуляторе!
оригинальный ответ
Также вы можете попробовать это, вам нужно было импортировать -Swift.h для обоихframework и цель приложения
Например:
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
#import "XLPagerTabStrip-Swift.h"
#import "RealmSwift-Swift.h"
...... // Add all frameworks, subclasses, and dependance ios frameworks
#import "MyProject-Swift.h"
Вы можете прочитать эту статью Как импортировать заголовок файла и проверять пути