美文网首页程序员
Unknown type name 'xxx' 、Could n

Unknown type name 'xxx' 、Could n

作者: zhangyunjiang | 来源:发表于2020-05-16 16:20 被阅读0次

    今天运行以前的项目是报错
    Unknown type name 'xxx' 、Could not build module 'xxx'
    硬是在网上查找了半天也没有解决问题;网上的东西虽然很多,但是也很杂乱,最后通过自己的努力解决的问题,生活着实不易,如果你荣幸遇见,可做参考。

    Could not build module 'xxx'

    出现Could not build module 'xxx'问题,首选项可能是在pch文件添加 #ifdef __OBJC __

    #ifdef __OBJC__
    #import <Foundation/Foundation.h>
     XXX //其他引用
    #endif
    

    可是你得知道 #ifdef __OBJC __ 到底是什么意思
    这边文章有了解
    https://www.jianshu.com/p/74290b5940d9

    其次:如果使用到C++混编到,关于Compile Sources As 到底应该选择 Objective-C++ 昵,还是 According to File Type。貌似在选择Objective-C++ 后确实能解决Could not build module 'xxx',编译的时候确实不报错 Could not build module 'xxx',但是如果你更多的类型定义问题浮现,实则是得不偿失的做法


    截图.png

    具体详情介绍
    可以查看:
    https://blog.csdn.net/mad1989/article/details/40590371

    Unknown type name 'xxx'

    关于Unknown type name 'xxx' 错误,一定是重复而导致的,无需多想,只不过有些重复的比较好找,有些不太好找,普通的可以通过Xcode 工具进行搜索,然后删除重复的部分即可,但是这次我遇到的不是这样,Unknown type name 'tls_protocol_version_t' 我通过工具进行搜索发现,根本搜索不到tls_protocol_version_t 这个东西。


    截图

    但是通过查看内部库存代码,我发现了问题


    截图
    发现了这两个属性是在iOS13.0的时候定义的,怪不得之前没有报错;
    查看了注释
    The minimum allowable versions of the TLS protocol, from <Security/SecProtocolTypes.h>  
    

    突然感觉有了思路,是不是自己在引入security.framework 这个东西的时候出了问题;然后网上搜索了一般,发现 security.framework 是关于RAS 加密的,而自己的程序并没有使用到,于是我将 security.framework 删除后,奇迹般的发现工程跑起来了,这算不算是运气好。
    最后问题到这里算是解决了,但是仍然有许多疑问 security.framework 是系统内部库,为啥也会报错,于是我看了一下未删除前的 security.framework 的路径,才发现,这他妈谁干的。。。security.framework 竟然是工程目录下

    总结

    首先感谢各位博主给予的支持
    https://www.jianshu.com/p/74290b5940d9
    https://blog.csdn.net/mad1989/article/details/40590371

    通过这事,还是发现自己太年轻了,解决问题是总是治标不治本的处理,认为报20个错误和报2个错误对比,报2个错误的方式一定就是正确的解决方法;第二,关于网络上的错误处理方式,还是得结合自己的实际去处理问题,并不是说他人的方法就能处理好自己项目的问题,还是得因项目而定,一步一步查找出问题;

    相关文章

      网友评论

        本文标题:Unknown type name 'xxx' 、Could n

        本文链接:https://www.haomeiwen.com/subject/cqtrohtx.html