一頭霧水的時(shí)候环揽,真覺得Framework調(diào)試就是個(gè)坑仔役;待坑填滿的時(shí)候胁赢,原來啊Framework調(diào)試就那幾步间护。
1.關(guān)于模擬器和真機(jī)
Framework編譯(當(dāng)然Build Configuration要選Debug亦渗,一般情況下沒有做特殊設(shè)置,調(diào)試情況下都是Debug)的時(shí)候可以選擇真機(jī)或者模擬器 汁尺,如果編譯為iOS Device時(shí)法精,在工程build路徑(可以在Build Settings里設(shè)置)下的Debug-iphoneOS?目錄下,復(fù)制出來用就只能用在真機(jī)上均函;相反編譯為模擬器時(shí),只能用在模擬器上菱涤。
如果想讓Framework能在真機(jī)和模擬器上通用苞也,可以用lipo 命令來合并真機(jī)和模擬器分別生成的Framework包里的與之同名無后綴名的文件,具體命令如下:
lipo -create 真機(jī)framework文件路徑(sample.framework/sample) 模擬器framework文件路徑(sample.framework/sample) -output 合并后文件的輸出路徑(.../sample)
至于上面路徑粘秆,可以打開finder直接將文件拖進(jìn)‘終端’的窗口即可如迟。
執(zhí)行過后可以得到一個(gè)sample的文件,將Framework中的文件替換為當(dāng)前生成后的sample文件,即可在真機(jī)與模擬器下運(yùn)行殷勘。
2.關(guān)于Framework的調(diào)試
首先將Framework的工程整個(gè)復(fù)制到你的App工程的文件夾下此再,之后用add Files的方法引入Framework工程文件,這樣現(xiàn)在的App工程就會有兩個(gè)工程target玲销,一個(gè)是Framework输拇,一個(gè)是App,可以設(shè)置Framework的build路徑和app的Framework Search路徑相同贤斜,或者將生成的Framework拷貝到App的Framework Search路徑下策吠;將Framework引入工程中,即可進(jìn)行工程的聯(lián)調(diào)瘩绒,對Framework進(jìn)行調(diào)試猴抹。
注意事項(xiàng):
1)如果工程在debug模式下,單步執(zhí)行時(shí)亂跳锁荔,就是單步執(zhí)行的位置定位不準(zhǔn)蟀给,有可能是Framework有改動,但是聯(lián)調(diào)的卻不是最新的阳堕,此時(shí)可以把Framework和App都clean跋理,重新編譯;
2)保證Framework工程文件的Build Settings中Gernerate Debug Symbols 的選項(xiàng)為YES 嘱丢,這樣才能保證 framework是可以調(diào)試的薪介;
3)調(diào)試時(shí),App與Framework的Edit Scheme 中的Build Configuration(debug 和 release選項(xiàng)) 要一致越驻;
4)調(diào)試時(shí)汁政,如果想從模擬器換成真機(jī)要重新導(dǎo)入相應(yīng)的Framework,clean工程缀旁,并重新編譯记劈;如果Framework build路徑和App的Framework Search路徑一致,就只需clean并巍,再重新編譯目木。