2010-04-12 41 views
2

這是我的情況:我有我想要包含在我的項目中的第三方框架的源代碼。我正在開發10.6,但我想支持10.5,所以我有基礎SDK和部署目標設置爲10.5。如何在可運行於10.5的OS X 10.6上構建應用程序和框架?

我可以構建框架和應用程序,並在Xcode和機器上運行應用程序。但是,它在10.5.8上失敗並崩潰。崩潰報告說

Unknown required load command 0x80000022

我也曾嘗試建立框架10.5.8機器上,該架構設置爲'32/64位通用」。移動此框架到10.6機器,並試圖建立應用程序是否運行,但應用程序運行失敗,拋出的多個錯誤:

-[NSCFArray matchAndAssemble:]: unrecognized selector sent to instance 0x3503c0

有沒有人見過這個?你知道一個修復或解決方法嗎?這不是一個不常見的情況。

+0

所以,剛需迂腐,如果建立在10.5得到的圖書館工作正常的10.5,同樣SDK版本,建立在10.6,導致不同的二進制甚至當你的目標10.5?這讓我的腦海裏有些微不足道。但他們我更像一個Linux人。 :-) – 2010-04-12 19:52:05

+0

我發現如果我將架構設置爲'本地架構'並將基本SDK和部署設置爲10.5,則構建了框架和應用程序,但我有一個工作程序,但其中一個不會真正運行在10.5 – 2010-04-12 23:19:29

回答

0

回答的第一個錯誤:unable to read unknown load command 0x80000022 - Stack Overflow,以及它可能具有的第二個錯誤的軸承。你使用的是什麼版本的Xcode和SDK?

+0

Xcode是版本3.2.2和SDK(基本SDK)是10.5。所以第一個答案根本沒有幫助我,因爲他的目標是iPhone,而我的目標是Mac OS X.相同的錯誤信息,但完全不同的情況。 – 2010-04-12 19:00:35

2

裝載機命令被標記爲壓縮的二進制這是僅在10.6支持二進制類型的loader命令。

matchAndAssemble:不是的NSArray/NSMutableArray裏的(記錄)方法。不過,這是PKParser套件的一種方法。這是你正在嘗試構建的框架嗎?

無論如何,您的項目中的某些內容僅爲10.6而構建,可能是該框架。檢查所有目標的構建設置以及任何子項目的任何目標,並在任何第三方框架上執行otool -l以查找22加載命令。

+0

是的,我正在嘗試構建ParseKit,但我需要10.5和10.6。我將仔細檢查構建設置,但我已經對它們進行過幾次了。 – 2010-04-12 21:39:55

+0

嘗試在項目的所有二進制文件上運行otool -l(即在框架和應用程序中構建的庫/可執行文件,查看是否有任何加載命令是0x80000022,那至少會告訴你哪個目標導致了問題。 – JeremyP 2010-04-12 22:36:13

+0

應該在發佈前檢查:0x80000022在otool中表示爲cmd LD_DYLD_INFO_ONLY。如果我構建了一個部署目標爲10.6的parsekit,我得到一個LD_DYLD_INFO_ONLY加載命令,但是如果我使用10.5的部署目標構建它, LD_DYLD_INFO命令。 – JeremyP 2010-04-12 22:49:07

相關問題