2010-08-09 62 views
1

包括靜態庫的時候,我發現了以下錯誤:在 文件如何讓Xcode 3.2.3構建一個特定的架構?

這個工作30秒以前

缺少必需i386硬件架構下,只有當失敗我升級到3.2.3 Xcode中。我用「file」命令來檢查 - 是的,XCode正在構建完全錯誤的架構(armv6 + armv7而不是i386)。

這似乎是最新的Xcode中的一個主要錯誤,在這個錯誤中,Apple已經重寫了編譯/編譯/鏈接設置。發佈說明中有一個註釋非常模糊地說,他們已經「改變它」,因爲它曾經是「混亂」。這沒有幫助。

的圖書館很清楚的生成設置說:

「有效架構:I386」

這裏有沒有困惑 - Xcode是建設比目標說,它應該以外的東西。

現在的問題是:你怎麼解開這個?你如何強迫Xcode做它應該做的?我從頭開始重新安裝Xcode,清理所有內容,並手動檢查構建文件。這沒有什麼錯(而且,當然,它在Xcode 3.2.2完美工作)

回答

3

相當多的研究之後,我相信答案是:

「這是現在不可能的 - 蘋果有故意硬編碼的XCode忽略構建設置」

不過,我想出了一個腳本它會自動構建項目的所有平臺(您需要使用靜態庫 - 現在沒有多少選擇,因爲Apple已禁用了目標),並且腳本可以輕鬆修改爲執行所有目標,而不是所有平臺:

Build fat static library (device + simulator) using Xcode and SDK 4+

+0

你提交了一個蘋果的錯誤? – 2010-09-06 19:29:23

+0

鑑於他們故意改變*(c.f.發佈說明給出了一個揮手模糊的理由),我懷疑他們會關心一個錯誤報告:(。 – Adam 2010-09-09 14:25:20

1

右鍵單擊您的目標應用程序下目標並確保該基地SDK被設置到iOS。

+0

我假設你的意思是「iPhone設備4.0」或「iPhone模擬器4.0」,因爲你所描述的不存在,據我所知 - 如果是這樣,是的,它已經是。 – Adam 2010-08-09 19:59:53