一、關(guān)于GDB掛起問(wèn)題
1.首先什么是GDB,GDB就是調(diào)試工具,在iOS中 xcode中的斷點(diǎn)查看就是調(diào)試工具中的一種方式。
2.iOS中的調(diào)試命令可以點(diǎn)擊這查看GDB調(diào)試命令,反正還是挺好玩的。
3.如何動(dòng)態(tài)GDB調(diào)試:動(dòng)態(tài)調(diào)試?yán)?--gdb基礎(chǔ)篇。
4.如何預(yù)防發(fā)布版本GDB掛起,可以看看念茜的其中一篇博文:iOS中GDB阻斷。
總結(jié):反正沒(méi)啥坑,直接配置
二、關(guān)于代碼混淆問(wèn)題
1.關(guān)于代碼混淆,很多處理方式都是在預(yù)編譯階段處理,關(guān)于什么是預(yù)編譯,可以看看iOS的預(yù)編譯探究
2.也可以看下iOS安全攻防(二十三):Objective-C代碼混淆?以及iOS代碼混淆----自動(dòng),總之看了就能直接配置上去。
3.目前iOS代碼混淆----自動(dòng)有個(gè)不完美的地方就是,當(dāng)你查看.app包的內(nèi)容時(shí),你會(huì)發(fā)現(xiàn)你的混淆對(duì)象都會(huì)暴露出來(lái):

但是這個(gè)方法是可以解決的:只要將其list放入工程根目錄,并且修改下腳本就可以解決:解決暴露list問(wèn)題?如圖:

4.目前使用這兩種方式混淆有個(gè)坑,當(dāng)你想混淆 cocoapods 中的方法,會(huì)發(fā)現(xiàn)編譯能編譯過(guò),但是運(yùn)行時(shí)會(huì)崩潰,崩潰原因就是找不到該方法。目前也沒(méi)有找到好的方式。
5.使用代碼混淆,如果你使用的過(guò)多很有可能會(huì)被蘋果拒絕,目前已經(jīng)有人遇到這問(wèn)題了。
總結(jié):如果只需混淆主工程方法,并且混淆少量代碼,可以使用。如果混淆大量代碼或者涉及到cocoapods慎用。如果用于馬甲包那就拼人品。