如何使用MonoTouch解决“应用程序可执行文件缺少必需的体系结构”错误?

时间:2011-08-15 20:30:54

标签: xamarin.ios

目前我们还没有使用LLVM编译器。我发现如果我将“Minimum OS Version”设置为4.0进行编译,Application Loader将返回错误说: iPhone / IPod Touch:应用程序可执行文件缺少必需的体系结构。必须至少存在以下架构之一:armv7

我注意到这发生在MonoTouch的最后一个版本之前......但那时,LLVM编译器正在为我的项目工作,并且LLVM没有发生错误。几乎就好像引入LLVM编译器导致“旧的”编译方法以某种方式停止使用体系结构标记可执行文件。

有没有人看过这个或解决过它?我尝试将“armv7”添加到plist文件中的UIRequiredDeviceCapabilities(基于其他阅读),但这不能解决问题。

如果我将“最低操作系统版本”设置为3.0,那么应用程序加载器一切都很顺利,但结果.IPA很大。

4 个答案:

答案 0 :(得分:2)

我之前使用的是1.3解决方法,但在最近的操作系统升级后,应用程序加载程序1.3拒绝运行。

我从iTunes Connect下载了当前版本的应用程序加载程序,然后又回到了arm7所需的错误。

稍微探讨了一下后,我发现你现在必须使用LVVM编译器(在iPhone Build Options,Advanced选项卡中),然后从下拉列表中选择ARM6 + ARM7ARM7

执行此操作后,您应该能够使用新的应用程序加载器。

答案 1 :(得分:1)

根据“Information Property List Key Reference”,不应使用“MinimumOSVersion”密钥 - 至少不能直接在Info.plist中使用。

  

请勿在Info.plist文件中自行指定此密钥;它是系统编写的密钥。

我不确定这只是与XCode相关还是MonoDevelop做了类似的事情(基于你指定的SDK和部署目标)但是你最终可能会遇到冲突的属性?!

答案 2 :(得分:1)

我们遇到了完全相同的问题,问题是Application Loader本身。最新版本拒绝使用您提到的错误上传二进制文件。 然后我降级到Application Loader 1.3并且瞧,我能够再次上传。 您可以在此处找到Application Loader 1.3:http://itunesconnect.apple.com/apploader/ApplicationLoader_1.3.dmg

答案 3 :(得分:0)

1)左键单击项目图标(蓝色图标,在“运行”按钮下)。

2)在项目图标旁边(右侧),左键单击“PROJECT”(白色背景)下的项目名称。

3)选择“Build Settings”选项卡并查找“Build Active Architecture Only”选项卡-----更改为----- no