1.頭文件導(dǎo)入時(shí)報(bào)錯(cuò)
類似這種看關(guān)鍵詞,是在編譯時(shí)候發(fā)現(xiàn)了重復(fù),可以全局搜索一下,
首先看看是不是導(dǎo)入頭文件時(shí)候?qū)?? .h后綴誤寫成了.m
其次在Targets-Build Phases-Compile sources中查找錯(cuò)誤提示中的類名,看是不是有兩個(gè)完全重復(fù)的.m文件
2.使用三方庫時(shí)報(bào)錯(cuò)
添加極光推送時(shí)按照網(wǎng)上的一些文章,沒有細(xì)看極光的官網(wǎng),少添加了一個(gè) .tbd 文件,添加了libresovl.tbd后就可以了
這里的重點(diǎn)是: Undefined symbols 如果對(duì)真機(jī)和模擬器架構(gòu)不是十分清楚的話容易被后面的架構(gòu)所迷惑關(guān)于架構(gòu)方面的可以參考這里鏈接感謝原作者
這種情況通常是用三方時(shí)候少加依賴庫了,仔細(xì)看看官方文檔,看看需要添加哪些庫一般就可以解決了
3. ?'libxml/tree.h' file not found
正確做法因該是Header Search Paths 設(shè)置為 ? ?${SDKROOT}/usr/include/libxml2
4.在使用自己的寫的動(dòng)態(tài)庫(Framework)時(shí)遇到的問題:
Could Not build module 'Social(或其它的名字xxxx)'
解決:change In target setting the "Allow Non-modular Includes in Framework modules" setting to YES(從stackoverflow查到的答案)
5.使用socket.io(swift寫的) 時(shí)報(bào)錯(cuò)
描述:dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/containers/Bundle/Application/76625E1A-5250-4FA4-807D-09B1877A3F13/X001.app/Frameworks/SocketIO.framework/SocketIO
Reason: image not found。
解決:1.將這個(gè)設(shè)置為 YES
2.如果是非蘋果官方的庫,要將embed那里進(jìn)行設(shè)置,進(jìn)行嵌入embed framework
6.單元測(cè)試
單元測(cè)試時(shí)因?yàn)槭且粋€(gè)獨(dú)立的工程,所以把Framework的路徑重新配置一下,否則會(huì)報(bào)找不到framework,直接在Project里進(jìn)行配置,單元測(cè)試的工程里就也有了。
這個(gè)地方有個(gè)坑:當(dāng)你直接把framework拖過去的時(shí),他生成 的是一個(gè)文件的路徑,而不是文件夾的目錄路徑,所以要將最后面那個(gè)文件給手動(dòng)刪掉
參考連接?感謝作者的分享
7. 團(tuán)隊(duì)開發(fā),git 提交不完成,導(dǎo)致找不到某個(gè)文件
背景:團(tuán)隊(duì)開發(fā)中,一個(gè)兄弟用了個(gè)三方庫,里面包含了SDWebImage,他刪除了工程中原來的SD庫,然后在git提交時(shí),自己的圖片庫中包含的SD沒有提交,當(dāng)時(shí)他忘記在藍(lán)色文件夾前面打勾了,他以為那個(gè)沒用,結(jié)果,其他人pull代碼之后就發(fā)現(xiàn)問題了,找不到這個(gè)文件
解決方案:讓那個(gè)同事將他沒有提交的庫,打上勾,提交一下,再pull下,就沒問題了。
8. 關(guān)于代理的生命周期問題會(huì)出現(xiàn)的bug
背景:一個(gè)單例類CCODSeatManager,里面有個(gè)代理協(xié)議CCODSeatManagerDelegate,里面有針對(duì)登錄登出,電話,IM 的相關(guān)代理方法,最典型的是登錄,登出,初始化登錄后,在登錄頁面有登錄成功的代理回調(diào),這個(gè)時(shí)候,這個(gè)單例被當(dāng)前VC持有,代理的生命周期在登錄這個(gè)VC里面 ,現(xiàn)在去 登出VC,里面也有這個(gè)單例的代理,然后登出的代理執(zhí)行完之后,反初始化,然后再回到登錄界面,進(jìn)行初始化登錄,相關(guān)的代理方法就不走了,因?yàn)楫?dāng)前的代理被登出VC持有,所以需要在登錄中重新設(shè)置一下代理,所以這種情況,需要在viewWillAppear中設(shè)置一下。
9.電腦內(nèi)存不夠,導(dǎo)致莫名報(bào)錯(cuò)
因?yàn)楣倦娔X是128G的,導(dǎo)致有時(shí)候莫名的報(bào)錯(cuò),因?yàn)閤code運(yùn)行時(shí)候,需要運(yùn)行空間,進(jìn)行數(shù)據(jù)相關(guān)的備份和整理,這時(shí)候如果空間不夠用,就會(huì)有各種問題,此時(shí),要首先clean,刪除derivedata,還不行,就要重啟電腦,刪一些東西,六點(diǎn)空閑空間出來。
10?library not found for -lstdc++.6.0.9 相關(guān)問題
首先需要下載相關(guān)的缺少的庫?傳送門,感謝作者
真機(jī)支持,找到真機(jī)路徑:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
將lstdc++.6.0.9? 放到這個(gè)目錄下;
模擬器支持,模擬器路徑
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
將下面的文件放到這個(gè)目錄下
還有一個(gè)路徑
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/
將上面的那三個(gè)庫也放到這三個(gè)路徑下面