2010-09-24 29 views
1

我已經爲iPhone和OS X的目標靜態庫項目。 使用Xcode 3.2.2和更早版本,所有工作都很好,但在3.2.3中,蘋果似乎已經引入瞭如何處理目標設置的更改。 在3.2.2中,我可以從下拉菜單中選擇「base-sdk」,併爲每個iPhone模擬器,iPhone設備和Mac設置一個目標,並且xcode將始終自動爲該目標建立正確的平臺和體系結構。 現在,使用xcode 3.2.3和更高版本,您不能再選擇此選項。 在模擬器或設備的目標之間切換不會影響您爲平臺創建的平臺。您必須分別選擇平臺,然後爲該平臺構建所有目標。 Targeting multiple platforms in iPhone SDK 4 對於iPhone唯一的項目,我可以忍受它,只是只有一個目標,並從目標分別選擇平臺: 這個問題已經爲模擬器VS設備描述。的Xcode 3.2.3及以上 - 與目標靜態庫爲多個平臺

該變化的真正問題是在項目中有一個iPhone和一個mac目標: 如果選擇mac目標,您沒有選項了,但是它們仍然會影響設備和模擬器mac目標。 如果在將活動目標從iPhone切換到mac之前將平臺設置爲設備,那麼xcode不會爲mac目標找到CoreServices,因爲它正在iPhone設備框架中進行搜索,而這些框架不存在。在這種情況下,Xcode甚至可以爲arm構建,目標設置也清楚地告訴它爲i386構建。 如果切換回iPhone目標的設置平臺模擬器,然後再切換回MAC目標,CoreServices框架被發現,但模擬器一個被使用,而不是OS X的一個,從而導致成幾十個「錯誤的問題:在iPhone模擬器核心服務框架中的'CFXMLTreeRef''錯誤之前預期的聲明說明符或'...',雖然我沒有定義,儘管我當然希望使用mac目標的mac版本的框架。

正如我已經提到,這是版本的Xcode 3.2.3之前的所有工作的罰款。僅適用於iPhone或僅適用於Mac的項目仍在建設中。

任何想法,我怎麼能得到爲iPhone和MAC靜態庫的目標項目,建立在Xcode 3.2.3及以後的版本?

回答