关于'XXXX' is unavailable: cannot find Swift declaration for this class的问题如何解决

最近被Swift和OC混编折磨了许久,许多问题都一知半解,现在记录一下在使用自己的framework时,遇到一个问题。

Swift App工程导入了混合OC+Swift的Swift Framework,在使用其中的Swift类时报错:
'XXXX' is unavailable: cannot find Swift declaration for this class

奇怪了,Swift代码调用Swift Framework中的Swift类,居然找不到申明。
但是用OC类引用framework中的Swift类时,却是可以使用,而且编译也没有问题。无语中...

最后在stackoverflow看到一个解决方案,才顺利解决,现在记录一下解决方案。

  • 首先创建完通用framework后,执行一下步骤:
    1、打开合并之前的Release-iphoneos和Release-iphonesimulator包
    2、进入XXXX.framework/Modules/XXXX.swiftmodule
    3、复制文件 .swiftdoc.swiftmodule
    4、打开通用framework
    5、进入XXXX.framework/Modules/XXXX.swiftmodule
    6、粘贴在步骤3中的文件
    最后的通用框架包路径XXX.framework/Modules/XXX.swiftmodule/应包含以下文件:
    arm.swiftdoc
    arm.swiftmodule
    arm64.swiftdoc
    arm64.swiftmodule
    i386.swiftdoc
    i386.swiftmodule
    x86_64.swiftdoc
    x86_64.swiftmodule
    因为Swift编译器需要每个架构的swiftmodule映射文件。

好了,到这里就解决了Swift App工程导入了混合OC+Swift的Swift Framework,使用其中的Swift类时报错的问题。

终于解决了,真是心累呀!!!

参考文献:https://stackoverflow.com/questions/35030199/myclass-is-unavailable-cannot-find-swift-declaration-for-this-class

你可能感兴趣的:(关于'XXXX' is unavailable: cannot find Swift declaration for this class的问题如何解决)