2010-07-14 115 views
0

我有一個問題superweird:的XCode建設:相同配置的行爲不同

運行在我的3.1.3的iPhone 3G我的版本作爲當前配置的應用程序時,我得到一個崩潰(EXC_BAD_ACCESS)。 (在調試配置或模擬器中運行良好,在運行iOS4的設備上完美運行)。

我的第一個猜測是發佈配置中的一個設置錯誤/缺失。爲了測試它,我只是複製了我的調試配置,然後出乎意料地得到了同樣的錯誤(雖然配置只是一個工作的副本)。

我不明白爲什麼,配置應該是相同的,一個工作,而不是另一個。

如果有人想開導我,我就把頭撞在牆上。

謝謝

注:基地SDK爲4.0和部署目標爲3.0

+0

不要問我啓用NSZombie,它沒有幫助。 Thx – Thomas 2010-07-14 17:58:27

回答

0

我修復了這個問題。

這是三20庫故障。我已更新到支持iOS 4的主分支,但不幸的是這打破了對3.1.3的支持。 (顯然沒有記錄的東西)

無論如何,我發現this post,這幫助我發現問題。我只需要申請this patch,然後我就可以在3.1.3設備和iOS4上運行我的項目

奇怪的事情:爲什麼當我初始化UIActionSheet時崩潰了(在一行代碼中並不相關與Three20庫)?

謝謝你的幫助。

0

也許你有一個未分配的局部變量。 Object-C遵循C如何做到這一點。所以在一個發行版本中,你不能假設任何局部變量在調試時都被初始化爲0(在這種情況下,我猜測一個指針)。

編輯: 通過 - 初始化爲編譯器(或更好的-Wall)編譯器在這些上發出警告Apple gcc man page注意只有在優化器打開時纔有效。

+0

Thx。我已經手動檢查過,但有一種方法可以自動執行 – Thomas 2010-07-14 18:15:29

+0

我剛剛用-Wuninitialized進行了重新編譯,並發現了一個未初始化的局部變量。但是這並沒有解決我的問題。 無論如何,我的應用在運行iOS4的設備上以發佈模式運行良好。我只在iOS 3.1上得到這個崩潰。3(發佈模式) 謝謝你反正 – Thomas 2010-07-14 19:07:47

0

您應該檢查內存泄漏和處理內存警告。內存量可能是您引用的環境之間的最大差異。

在另一種情況下,我曾經發現模擬器速度更快,因此某種競爭條件沒有出現,而設備上也出現了這種情況。這是您引用的環境中的第二個差異:速度。

試着找出你的崩潰並從那裏調查。 NSLog所有didReceiveMemoryWarnings。尋找你做出假設的地方,即關於靜態信息。

相關問題