2011-03-30 59 views
6

我升級到XCode 4.XCode 4需要i386 for iPhone Sim?

如果我在XCode 4中製作一個新的iPad項目,一切正常。如果我在XCode 3中製作一個項目,然後將它帶到XCode 4,那也可以。

但是,我的一個項目不會編譯。錯誤:

No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7). 

爲了得到它來編譯,並在模擬器中運行,我結束了使用這些設置:

freaky but working settings in XCode 4

把I386拿到項目編譯和運行(thanks to this forum thread) ,但我的其他項目不是在有效架構中有i386並仍然有效。

如何讓我的項目像其他人一樣?是的,我仔細地瀏覽了這個項目(在XCode中,不是XML),而非編譯版本看起來完全像編譯好的朋友。

+0

也喜歡http://stackoverflow.com/questions/4915953/upgrading-to-xcode-4-error-no-architectures-to-compile-for – 2011-03-31 20:43:56

回答

1

在開發人員論壇中,我遇到了使用文本編輯器編輯.pbxproj文件的人,並以這種方式將條目添加到VALID_ARCHS中。當XCode4處理一些較舊的XCode3項目時,這似乎是一個問題(儘管我還沒有看到)。

我檢查了一個當前的項目,並且此行不存在,所以如果您看到此問題,請嘗試從您的project.pbxproj文件中將其刪除,然後重新啓動XCode。

+0

在我遇到過這個問題的一個項目中,我發現它是更容易**刪除項目文件中的VALID_ARCHS行,而不是嘗試編輯它。 這樣做,Xcode將恢復爲默認選項(例如Sim上的i386,Device上的armv6/7)。 – robc 2011-03-30 22:24:31

+0

這就是我最後說的,我認爲這可能是最好的選擇。我編輯了我的問題的最後一部分,使其更清楚。 – 2011-03-30 23:26:21

+0

太棒了,我會試試看。你的意思是「答案」的方式:)謝謝! – 2011-03-30 23:57:39

1

我有完全相同的問題,並編寫了一個小shell腳本,以編程方式編輯需要添加i386的行(我在每次git pull和tag簽出後在測試工具中執行此操作)。

放置在一個shell腳本下面的代碼,然後運行它時,你需要I386添加到所有的VALID_ARCHS =條目:

sed -i -e 's/.*VALID_ARCHS = armv7;.*/VALID_ARCHS = "armv7 i386";/g' project.pbxproj

哦,因爲這個腳本直接簡單,你需要與運行它時位於project.pbxproj文件所在的同一目錄中。

而且,正如所暗示的那樣,它會替換全局線。它取代了VALID_ARCHS = armv7的所有實例;與VALID_ARCHS =「armv7 i386」;並且引號是必需的,否則Xcode會拋出一個錯誤,告訴您無法分析project.pbxproj文件。

+0

聽起來不錯。這已經過去了幾年,所以我不知道如何評估這一點,但無論如何+1。 – 2013-08-19 20:44:37