2012-02-16 51 views
2

更新到5.2.4的MonoTouch和提交應用程序到App Store後,它是由應用程序加載器拒絕,因爲:MonoTouch的:「缺少必要的架構ARMv7的」

「的iPad:應用程序可執行文件丟失。所需的體系結構在以下體系結構(S)的 至少有一個必須顯示:ARMv7" 的

是否有辦法解決在MonoTouch的?

+1

我也有同樣的問題,我通過在項目選項的iPhone Build部分的Advanced選項卡中簡單地啓用LLVM與ARMv7來解決它。我添加了一條評論,因爲我沒有真正將其作爲答案,因爲這只是一個快速修復,我也想知道一個真正的修復。 – 2012-02-16 21:39:00

+1

我應該添加ARMv6嗎?支持較舊的iPhone 3? – 2012-02-16 21:40:24

+1

我向Xamarin提交了一個錯誤報告 – 2012-02-16 21:49:29

回答

4

爲了滿足蘋果公司的架構需求爲iPad,你可以使用:

  • LLVM的選項,並選擇的ARMv7(不需要的ARMv6當應用程序僅適用於iPad的);或

  • --armv7添加到附加的mtouch參數。這不會使用LLVM編譯器(但是常規的Mono AOT編譯器),但會生成一些(不是很多)ARMv7程序集。

使用LLVM會產生更小更快的代碼,但它會採取更多的時間來構建應用程序(這不是一般釋放到AppStore的問題)。 OTOH你不能使用這個選項來進行調試(對於appstore的構建來說,再也不是問題)。

我應該添加ARMv6嗎?支持較舊的iPhone 3?

蘋果公司的消息表明你正在構建一個iPad的專用應用程序。如果不是這種情況,那麼您需要更改此設置(以允許iPhone,iPod Touch),而不是ARM-CPU選擇(當您定位舊設備時,只使用ARMv6即可)。

+0

我強制應用程序擁有兩個ARM,因爲它是通用應用程序。一旦我做到了,它就可以工作。我向Xamarin提交了一個bug,因爲我們以前從未需要設置ARM。 – 2012-02-16 22:18:07

+0

我認爲蘋果最近提出了這個要求*更重要*(它越來越受歡迎)。然而,我對這個消息感到驚訝...無論如何,一個具有ARMv6和ARMv7的通用應用程序對於較舊和較新的設備都是最佳的(但是由於它將有兩個二進制文件合併在一起,因此更大)。 – poupou 2012-02-16 22:21:17

相關問題