Objective c ';ProductModuleName Swift.h';未找到子项目的文件

Objective c ';ProductModuleName Swift.h';未找到子项目的文件,objective-c,swift,swift5,Objective C,Swift,Swift5,我有一个项目(P1)和一个子项目(P2)。P2包含一个Swift文件(F2.Swift),P1包含一个目标C文件(F1.h和F1.m)。我试图进入F1中的F2。我该怎么做 我试图在F1.m中导入,但它抛出了错误'P2-Swift.h'文件未找到 编辑: 另外,子项目是静态库。XCode在DerivedData文件夹中为应用程序数据旁边的静态swift库生成头文件: /Users/user/Library/Developer/Xcode/DerivedData/ YourApp-gwvcb

我有一个项目(P1)和一个子项目(P2)。P2包含一个Swift文件(F2.Swift),P1包含一个目标C文件(F1.h和F1.m)。我试图进入F1中的F2。我该怎么做

我试图在
F1.m
中导入
,但它抛出了错误
'P2-Swift.h'文件未找到

编辑:
另外,子项目是静态库。

XCode在

DerivedData
文件夹中为应用程序数据旁边的静态swift库生成头文件:

/Users/user/Library/Developer/Xcode/DerivedData/
    YourApp-gwvcbdfthcschccmeafalxjghrzo
        Build
            Intermediates.noindex
                StaticLib.build
                    Debug-iphonesimulator
                        StaticLib.build
                            DerivedSources
其中“StaticLib”是您的库名称

因此,您只需在
生成设置中设置此路径即可
标题搜索路径

$(OBJROOT)/StaticLib.build/$(CONFIGURATION)-$(PLATFORM_NAME)/StaticLib.build/DerivedSources


如果以后出现
找不到或使用自动链接库
的错误,这意味着您的项目是纯objc,您需要为swift扩展它。要解决此问题,只需将空swift文件添加到您的objc项目中,所需的swift库将包含到您的应用程序中。

您可以在F1.m文件中添加产品模块名称,然后像这样导入它#导入“ObjCBridgingHeader swift.h”


“ObjCBridgingHeader”是我的项目名称,您可以在产品模块名称中进行检查。

这是否回答了您的问题@Jimmy我尝试添加
路径
,但对我无效。如何将子项目集成到项目中,例如静态或动态库?它是一个静态项目。我创建了一个项目并拖放到另一个项目@iUriiThis已经解决了。我需要添加modulemap并运行这个博客中提到的脚本。这已经在我的项目中完成了。我甚至可以访问P1中P2的Objective-c文件。唯一的问题是我无法访问P1的Objective-c文件中的Swift文件@iUrii@Soumya“不能访问swift文件是什么意思?”StaticLib Swift.h'具有来自静态库的所有公共类/结构,因此您只需将此头文件导入.m文件。