2012-10-29 26 views
1

我最近更新到IOS 6.我有一個項目,它適用於iOS 4.3,現在當我嘗試爲設備構建時,它顯示出很多引用錯誤。IOS 6中的引用錯誤

ld: symbol(s) not found for architecture armv7s 

其實我不知道所有的源代碼,我一直在使用.A也對一些課程,該課程.A也是我要求和Xcode 4.5.1內置(用於設備),並試圖與此,仍然沒有用。如果我使用模擬器,它工作正常,因爲設備出現問題。 我已經搜索了任何解決方案,發現有一些沒有幫助我的問題。 任何人在更新到iOS 6後都會遇到這種情況。如何擺脫它。

等待你的幫助。謝謝。

+0

在這裏搜索'armv7s symbols',您會發現很多關於此主題的現有問題。 – rmaddy

+0

這是因爲這些.a文件不是爲armv7架構而構建的。您需要通過指向iOS設備而不是模擬器來構建armv7。用這個替換項目中的.a文件,然後重試。 – iDev

+0

@ACB我已經問了兩次檢查,他們說它只用Xcode 4.5構建,爲了構建armv7我們需要在Xcode中做任何事情嗎? – Newbee

回答

1

對於快速解決方案,您可以在每個項目配置(調試,發佈和部署)以及目標的生成設置中檢查Build Active Architecture Only。這將允許您構建項目。

注意這只是一個暫時的solution.You確已更新您正在使用,以支持armv7s(架構的iPhone5)最新版本的庫或框架。

+0

雅現在成功了。你能告訴我,發生了什麼? – Newbee

+0

如果我繼續這樣,有什麼問題嗎? – Newbee

+0

'.a'文件是一個庫文件。這是預編譯的代碼。 armv7s架構在iPhone5中引入。所以當編譯庫時,創建者不會在庫項目的有效體系結構中添加這樣的體系結構(當時體系結構不存在)。在支持iOS6的新Xcode中,當我們用這個庫編譯我們的源代碼時,這些xcode在庫中也需要armv7s符號。但它不在那裏。這就是爲什麼它顯示錯誤。通過檢查'Build Active Architecture Only',我們告訴編譯器,只建立可用的架構。 –