[英]How can I debug in a framework in Xcode?
我有兩個項目,一個是networkLib
進行登錄和其他一些網絡功能,另一種是usingLibDemo
。 所以我有兩個項目的所有源代碼。
該networkLib
項目成果框架,叫做myNetKit.framework
,這是使用usingLibDemo
。
現在我成功使用myNetKit.framework
登錄,但有時崩潰,可能在main()沒有堆棧信息,但有時Xcode給我堆棧信息如下:
所以我知道崩潰的地方:
但是Utils.m
沒有暴露, Xcode如何獲取堆棧信息和崩潰線,並最終為我打開源文件? 因為我的磁盤中有源代碼?
如果是這樣,我怎樣才能逐步調試myNetKit.framework
,當它沒有崩潰時?
非常感謝任何提示。
如果有人將來會有相同的問題(現在我正在使用Xcode 8):
您可以:
不要忘記在框架項目中設置一些斷點。
當庫使用所有符號構建時,它包含嵌入其自身的每個源文件的完整路徑。 如果用十六進制查看器打開.a,實際上可以看到這個。 有了這個,XCode將知道如何獲取源文件。
設置斷點更具挑戰性。 您基本上必須通過單步執行這些文件中的方法,使XCode從庫中慢慢發現源文件。 一旦XCode打開了文件,您就可以在其中的任何位置設置斷點。
這有點痛苦,但它可以工作,如果你不想,你不必將庫項目作為一個子項目。
您還可以將整個庫( networkLib
)項目添加到項目中,並通過在項目設置中添加依賴項來動態鏈接庫。 因此,您可以擁有項目中的所有源代碼。 所以你可以在運行時調試它。
處理多個框架項目時,請使用XCode Workspace。 當您使用工作空間時,斷點將起作用,您可以在沒有來回調試的情況下找到崩潰。 從長遠來看,管理框架要容易得多。
以下工作考慮了您單獨擁有框架項目並將a.framework添加到某個項目B的場景 。
您現在將看到程序在框架中設置的斷點處停止。
您應該調試單獨輸出框架的項目networkLib。 該框架沒有類似app的結構,因此無法調試其他項目中的框架文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.