首页 > 代码库 > swift与objectc混编 module-Swift.h file not found

swift与objectc混编 module-Swift.h file not found

大家都知道,swift与objective-c混编时,系统会自动生成一个swift.h文件。不是指那个bridge文件,那个是用来往swift里导入objective-c类的,说的是用来往objective-c里导swift这个。当时在我自己的电脑上运行没有问题,git上传后别人update死活提示XXX-swift.h file not found。大家也知道现在都觉得swift刚出来,是个坑,当时就害怕swift有什么特殊的设置,各种svn,git,swift的搜。没有结果,又各种path搜,也没有结果。然后用

 $find ~/Library/Developer/Xcode/DerivedData -name "*Swift.h" 

在人家终端上一运行,乖乖,文件是存在的。但是还是提示找不到。最后发现问题是个乌龙,人电脑设置的区分大小写,我的是不区分大小写的。在文件夹中找到的是“XXX-Swift.h”,而类里导入的是“XXX-swift.h”闹了个笑话,把小写改成大写就ok了。

当然。如果

Project must have a Module Name not including spaces.
Defines Module must be set to Yes in Build Settings, under Packaging.

这两点没有设置,是不会闹这个笑话的,因为你在自己的电脑上也无法生成这个文件。补充一句,module name 最好设置为""xxx-swift.h",xxx为自己的项目名,不如果项目名里有空格,千万不要用空格,用下划线来代替,如"my project"就是"my_project-swift.h"最好

swift与objectc混编 module-Swift.h file not found