2012-04-07 80 views
2

我已經創建了一個基於iOS SDK 5.0的ios 4.1的應用,並使用3G(ios 4.3.3)3GS(5.1)3GS(5.0)iPad(5.1) 。我的應用在所有這些設備上表現良好。但是,當蘋果已經最終接受了應用程序,並且我已經將它下載到相同的設備上時,行爲已經發生了變化。問題是顯示的頁面過大,但是如果我移動它們,它們會正確地啓動屏幕。 當發佈後的應用程序改變了它的行爲時,您有沒有遇到類似的情況?iOS應用在appStore上提供後改變了行爲

而且最重要的。當真正的設備上的mac運行同一個應用程序表現出色時,我是如何重構這個bug的? 我可以補充說,基礎SDK被設置爲最新(5.0),但應用程序被存檔與不支持ios 5.1的XCode 4.2。

善待我,這是我的第一個問題:)

編輯: hotpaw的有用的提示後,我檢查這個問題是發佈版本。在運行conf中更改目標後,我可以重現設備上的錯誤。從調試到發佈。

有趣的是,令人沮喪的是,我無法解決問題,但是,我已經在xcode 4.3上的發佈模式下測試了我的應用程序,並且它工作正常。我沒有改變任何東西,但它的工作原理。它不能打包版本(見問題Xcode 4.3.1 - Packaging operation failed),所以我堅持與xcode 4.2

有一陣子,我懷疑這個錯誤是由編譯器在編譯拇指時造成的,解決方案是添加-mno-thumb到其他c標誌。但我沒有強制這個標誌。請參閱:iOS5 Xcode4.2 floating-point byte align error?

當我比較編譯日誌時,我可以看到xcode 4.3在使用-arch armv6編譯xcode 4.2時使用-arch armv6進行編譯。但它是我連接到計算機的相同設備。我沒有發現其他差異,但它們可能存在。如果它有幫助,我可以粘貼示例文件的編譯日誌。

回答

1

問題在於編譯器錯誤!

將-mno-thumb應用於我的項目後,我無法注意到這種差異,因爲我使用的庫(Three20)僅設置爲編譯引起問題的armv6,而不是我的項目。在向Three20的所有項目添加-mno-thumb之後,錯誤消失了!

我會注意到Three20團隊關於這個問題。

4

如果您只測試Debug Builds,然後將Release Build提交到App Store,則可能發生這種情況。對於最終測試,您需要強制Xcode使用發佈版本進行測試(可能通過編輯默認方案),然後提交此版本,而對代碼簽名之外的版本設置沒有任何更改。

您可能還想通過iTunes上的Ad Hoc安裝來最終測試您的發佈版本,該應用程序是在全新的重置設備上創建的,該設備的所有以前版本的應用程序均已從中刪除。請參閱Apple's directions for doing this

+0

謝謝,你的幫助讓我解決了這個問題:) – poioi 2012-04-11 09:13:47