2012-02-19 61 views
10

我剛剛通過Mac App Store將Xcode更新至版本4.3,並發現我無法再在iOS 3.x設備上進行調試。我有運行iOS 3.1.3的iPhone 3G和運行iOS 3.2的第一代iPad。Xcode 4.3並在iOS 3.x設備上進行調試

在這兩個設備上,似乎Xcode 4.3安裝應用程序並嘗試啓動應用程序。該應用程序顯示啓動畫面,但從未完成啓動。調試器輸出窗口中沒有任何類型的錯誤消息或消息。我唯一的線索是當我按下暫停按鈕時,我可以看到設備/ Xcode卡在以下函數中:addimagesToAllImages看起來與Apple的DYLD有關。

調試在iOS 5設備上正常工作,並且在之前的Xcode 4.2安裝上工作。我已經重新啓動了我的Mac,iOS 3.x設備,並且沒有改變行爲,包括清除所有緩存。

任何人有什麼想法是怎麼回事?謝謝您的幫助。

+0

它看起來像XCode 4.3強制編譯器LLVM 3.1和調試器lldb,不支持在iOS 3.您是否檢查該項目仍在編譯與LLVM GCC? – bontoJR 2012-02-20 16:03:23

+0

感謝Junior B.我將Build Option「C/C++/Objective-C編譯器」改爲「LLVM GCC 4.2」,但仍然遇到同樣的問題。是否有另一個設置,我需要改變使用GCC和/或GDB調試器來獲取xcode? – 2012-02-20 16:30:01

+1

好的,我想到了初級B對調試器的暗示。我去了「管理方案」並選擇了我正在進行的計劃並點擊「編輯」。在「運行」部分下,我將調試器從LLDB更改爲GDB。現在在iOS 3.x和5.x設備上調試工作正常。另外,我將編譯器留給了xcode 4.3首選的LLVM 3.1設置。 – 2012-02-20 17:06:05

回答

13

好吧,我想到了Junior B對調試器的暗示。我去了「管理方案」並選擇了我正在進行的計劃並點擊「編輯」。在「運行」部分下,我將調試器從LLVM更改爲GDB。現在在iOS 3.x和5.x設備上調試工作正常。另外,我將編譯器留給了xcode首選的LLVM 3.1設置。

希望這可以幫助別人接受xcode的升級顧問推薦的設置和他們的iOS 3.x調試中斷。

+0

令人難以置信 - 我通過我的代碼浪費了一天的時間來了解我做錯了什麼。我厭倦了不得不跟蹤所有這些小問題 - 電腦應該爲你做這個!如果編譯到ios3設備,建議gdb是必要的,蘋果當然可以進行檢查並彈出警告。感謝衛斯理的解決方案。 – amergin 2012-06-29 11:58:44

1

您是否安裝了「iOS 3.0 - 3.2.2 Device Debugging Support」組件?

從菜單欄中選擇Xcode> Preferences ...,然後在Preferences窗口中選擇Downloads> Components。找到適用於iOS 3.0支持的行,然後單擊安裝按鈕。

+0

嗨,羅布,謝謝你的迴應。是的,iOS 3.0 - 3.2.2設備調試支持已安裝。只是爲了踢我安裝了4.0設備調試支持以及行爲沒有改變。 – 2012-02-19 22:29:26

-2

海MyDear朋友,

I am having one simple solution as follows: 

「的Xcode - >設置 - >調試 - >勾選自動清除調試控制檯」 結果每次運行應用程序

0

只有時間清除控制檯當遇到同樣的問題時,從LLDB切換到GDB對我來說還不夠。因爲我在git中做了一個較老的工作提交,所以我想出了Xcode項目設置中的哪些更改,以便我能夠解決這個錯誤。因此,我可以從我的$ PROJECT.xcodeproj/project.pbxproj

GCC_THUMB_SUPPORT = NO; 

還刪除以下行的所有出現解決這個問題,我從

恢復值
LastUpgradeCheck = 0430; 

LastUpgradeCheck = 0420; 

由於我將我的方案配置爲'共享',這些設置也存儲在項目目錄(項目.xcodeproj目錄中的子目錄'xcshareddata')中,因此也會更改爲v在git中是可以的。我恢復的另一個變化中「$ PROJECT.xcodeproj/xcshareddata/xcschemes/$ PROJECT.xcscheme」中刪除這兩個行:

LastUpgradeVersion = "0430" 
ignoresPersistentStateOnLaunch = "NO" 

在.xcsheme文件中的另一個變化是那selectedDebuggerIdentifier「和」的值selectedLauncherIdentifier'以'.GDB'而不是'結尾。LLDB「,但這實際上與您通過遵循Wesley接受的答案所得到的一樣。

這些更改解決了我的問題,並且我可以在iOS 3.1.3上運行的iPhone Classic上再次進行調試。

但是,在將這些編輯與您最喜愛的文本編輯器一起使用之前,我強烈建議使用Git(或至少本地備份!)之類的版本控制系統。