今天運(yùn)行以前的項(xiàng)目是報(bào)錯(cuò)
Unknown type name 'xxx' 领跛、Could not build module 'xxx'
硬是在網(wǎng)上查找了半天也沒(méi)有解決問(wèn)題撤奸;網(wǎng)上的東西雖然很多,但是也很雜亂矢棚,最后通過(guò)自己的努力解決的問(wèn)題府喳,生活著實(shí)不易,如果你榮幸遇見(jiàn)兜粘,可做參考弯蚜。
Could not build module 'xxx'
出現(xiàn)Could not build module 'xxx'問(wèn)題,首選項(xiàng)可能是在pch文件添加 #ifdef __OBJC __
#ifdef __OBJC__
#import <Foundation/Foundation.h>
XXX //其他引用
#endif
可是你得知道 #ifdef __OBJC __ 到底是什么意思
這邊文章有了解
http://www.reibang.com/p/74290b5940d9
其次:如果使用到C++混編到路鹰,關(guān)于Compile Sources As 到底應(yīng)該選擇 Objective-C++ 昵晋柱,還是 According to File Type诵叁。貌似在選擇Objective-C++ 后確實(shí)能解決Could not build module 'xxx',編譯的時(shí)候確實(shí)不報(bào)錯(cuò) Could not build module 'xxx'浓领,但是如果你更多的類(lèi)型定義問(wèn)題浮現(xiàn),實(shí)則是得不償失的做法
具體詳情介紹
可以查看:
https://blog.csdn.net/mad1989/article/details/40590371
Unknown type name 'xxx'
關(guān)于Unknown type name 'xxx' 錯(cuò)誤漫仆,一定是重復(fù)而導(dǎo)致的泪幌,無(wú)需多想,只不過(guò)有些重復(fù)的比較好找吗浩,有些不太好找没隘,普通的可以通過(guò)Xcode 工具進(jìn)行搜索,然后刪除重復(fù)的部分即可阀湿,但是這次我遇到的不是這樣瑰妄,Unknown type name 'tls_protocol_version_t' 我通過(guò)工具進(jìn)行搜索發(fā)現(xiàn),根本搜索不到tls_protocol_version_t 這個(gè)東西灾挨。
但是通過(guò)查看內(nèi)部庫(kù)存代碼劳澄,我發(fā)現(xiàn)了問(wèn)題
發(fā)現(xiàn)了這兩個(gè)屬性是在iOS13.0的時(shí)候定義的浴骂,怪不得之前沒(méi)有報(bào)錯(cuò)宪潮;
查看了注釋
The minimum allowable versions of the TLS protocol, from <Security/SecProtocolTypes.h>
突然感覺(jué)有了思路狡相,是不是自己在引入security.framework 這個(gè)東西的時(shí)候出了問(wèn)題食磕;然后網(wǎng)上搜索了一般,發(fā)現(xiàn) security.framework 是關(guān)于RAS 加密的滔悉,而自己的程序并沒(méi)有使用到,于是我將 security.framework 刪除后回官,奇跡般的發(fā)現(xiàn)工程跑起來(lái)了,這算不算是運(yùn)氣好歉提。
最后問(wèn)題到這里算是解決了,但是仍然有許多疑問(wèn) security.framework 是系統(tǒng)內(nèi)部庫(kù)版扩,為啥也會(huì)報(bào)錯(cuò)侄泽,于是我看了一下未刪除前的 security.framework 的路徑,才發(fā)現(xiàn)悼尾,這他媽誰(shuí)干的。窄刘。舷胜。security.framework 竟然是工程目錄下
總結(jié)
首先感謝各位博主給予的支持
http://www.reibang.com/p/74290b5940d9
https://blog.csdn.net/mad1989/article/details/40590371
通過(guò)這事,還是發(fā)現(xiàn)自己太年輕了翻伺,解決問(wèn)題是總是治標(biāo)不治本的處理沮焕,認(rèn)為報(bào)20個(gè)錯(cuò)誤和報(bào)2個(gè)錯(cuò)誤對(duì)比,報(bào)2個(gè)錯(cuò)誤的方式一定就是正確的解決方法辣辫;第二魁巩,關(guān)于網(wǎng)絡(luò)上的錯(cuò)誤處理方式,還是得結(jié)合自己的實(shí)際去處理問(wèn)題谷遂,并不是說(shuō)他人的方法就能處理好自己項(xiàng)目的問(wèn)題,還是得因項(xiàng)目而定畴嘶,一步一步查找出問(wèn)題;