一亡驰、導(dǎo)出APP對(duì)應(yīng)的沙盒文件(這里只有使用真機(jī)運(yùn)行的APP才可導(dǎo)出)
? ? ? ? 該方法可用于開(kāi)發(fā)過(guò)程中孝偎,處理視頻租幕、圖片、配置文件等存儲(chǔ)數(shù)據(jù)出現(xiàn)問(wèn)題時(shí),導(dǎo)出沙盒進(jìn)行直觀分析(可通過(guò)配合斷點(diǎn)調(diào)試拾酝,對(duì)比代碼執(zhí)行前后目錄存儲(chǔ)的變化)燕少;同時(shí),在代碼中使用?NSUserDefault 保存的數(shù)據(jù)蒿囤,也可在沙盒包內(nèi)容中的“AppData/Library/Preferences/” 目錄下對(duì)應(yīng)的“包名.plist”文件中查看客们。
1.打開(kāi)Xcode,選擇頂部功能欄中的 “Window” ,在里面選擇 “Devices And Simulators” 項(xiàng)(Xcode 9之前該項(xiàng)名為“Devices”)材诽,接著會(huì)出現(xiàn)如圖 1 界面底挫;
2.在圖 1 界面中,在左邊欄選中對(duì)應(yīng)的調(diào)試真機(jī)岳守,接著右邊會(huì)出現(xiàn)真機(jī)設(shè)備相關(guān)信息凄敢。先在箭頭1所指的地方選中你需要導(dǎo)出沙盒的APP,接著點(diǎn)擊箭頭2指向的按鈕湿痢,并選中第二項(xiàng)“Download Container...”涝缝,最后保存到桌面或其它目錄即可。至此譬重,沙盒文件導(dǎo)出完畢拒逮;
3.查看沙盒:如圖 2,右鍵點(diǎn)擊沙盒文件臀规,并選中“顯示包內(nèi)容”即可看到沙盒里的文件信息等滩援。
二、使用“command+option+\”塔嬉,可為全局變量玩徊、方法進(jìn)行格式化注釋注釋。
三谨究、signal SIGPIPE 問(wèn)題
????????之前在處理和硬件設(shè)備交互的APP過(guò)程中恩袱,遇到過(guò) signal SIGPIPE 的一些崩潰問(wèn)題,后來(lái)是在APP端做了處理胶哲。大致原因是因?yàn)槭褂眠^(guò)程中畔塔,兩端socket的連接已經(jīng)斷開(kāi),但其中一端還在發(fā)送消息鸯屿,所以出現(xiàn)該問(wèn)題澈吨。
解決方案是在 iOS 的main函數(shù)中加入捕捉忽略該異常的代碼,如下所示:
? ? struct sigaction sa;
? ? sa.sa_handler = SIG_IGN;
? ? sigaction(SIGPIPE, &sa,0);
加入后寄摆,連接真機(jī)代碼調(diào)試時(shí)谅辣,如果出現(xiàn)該問(wèn)題,可在 lldb 中輸入 process handle SIGPIPE -s false 婶恼,回車?yán)^續(xù)運(yùn)行斷點(diǎn)即可屈藐。
四榔组、國(guó)行iPhone網(wǎng)絡(luò)權(quán)限的問(wèn)題
國(guó)行iPhone會(huì)有“允許應(yīng)用使用數(shù)據(jù)”的提示,在App首次安裝的時(shí)候如果拒絕可能會(huì)導(dǎo)致App在使用上出現(xiàn)問(wèn)題联逻。筆者在開(kāi)發(fā)中也有遇到過(guò)沒(méi)提示的情況搓扯,這個(gè)時(shí)候有個(gè)小技巧就是在第一次安裝APP后的某個(gè)頁(yè)面,偷偷用webview加載一個(gè)隱藏的網(wǎng)址比如?http://www.reibang.com/ 此時(shí)包归,就會(huì)彈出提示對(duì)網(wǎng)絡(luò)權(quán)限選擇或修改的提示框锨推。
五、iOS @syn同步數(shù)據(jù)時(shí)公壤,里面不要做數(shù)據(jù)的初始化(申請(qǐng)空間)换可,否則數(shù)據(jù)加載過(guò)快時(shí)會(huì)導(dǎo)致內(nèi)存泄漏