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 如果對真機(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.在使用自己的寫的動態(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.單元測試
單元測試時(shí)因?yàn)槭且粋€(gè)獨(dú)立的工程招刹,所以把Framework的路徑重新配置一下恬试,否則會報(bào)找不到framework,直接在Project里進(jìn)行配置,單元測試的工程里就也有了疯暑。
這個(gè)地方有個(gè)坑:當(dāng)你直接把framework拖過去的時(shí)训柴,他生成 的是一個(gè)文件的路徑,而不是文件夾的目錄路徑妇拯,所以要將最后面那個(gè)文件給手動刪掉
參考連接?感謝作者的分享
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)于代理的生命周期問題會出現(xiàn)的bug
背景:一個(gè)單例類CCODSeatManager,里面有個(gè)代理協(xié)議CCODSeatManagerDelegate北滥,里面有針對登錄登出刚操,電話,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í)候如果空間不夠用舌劳,就會有各種問題,此時(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è)路徑下面