Xamarin.ios 如何解决;应用程序可执行文件缺少所需的体系结构;MonoTouch的错误?

Xamarin.ios 如何解决;应用程序可执行文件缺少所需的体系结构;MonoTouch的错误?,xamarin.ios,Xamarin.ios,我们目前没有使用LLVM编译器。我发现,如果我在编译时将“最小OS版本”设置为4.0,应用程序加载程序将返回一个错误,说明: iPhone/IPod Touch:应用程序可执行文件缺少所需的体系结构。必须至少存在以下体系结构之一:armv7 我注意到这种情况也发生在MonoTouch的上一个版本之前……但当时,LLVM编译器正在为我的项目工作,LLVM没有出现错误。这几乎就好像LLVM编译器的引入导致“旧”编译方法以某种方式停止使用体系结构标记可执行文件 有没有人看到过这个或是解决过这个问题?我

我们目前没有使用LLVM编译器。我发现,如果我在编译时将“最小OS版本”设置为4.0,应用程序加载程序将返回一个错误,说明: iPhone/IPod Touch:应用程序可执行文件缺少所需的体系结构。必须至少存在以下体系结构之一:armv7

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

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

如果我将“Minimum OS Version”设置为3.0,则应用程序加载程序一切正常,但结果是.IPA很大。

根据“”,不应使用“MinimumOSVersion”键-至少不应直接在Info.plist中使用

不要在Info.plist文件中自己指定此密钥;它是一个系统写入的密钥

我不确定这是否只是与XCode相关,或者MonoDevelop是否做了类似的事情(基于您指定的SDK和部署目标),但可能最终会导致属性冲突

根据“”,不应使用“MinimumOSVersion”键-至少不应直接在Info.plist中使用

不要在Info.plist文件中自己指定此密钥;它是一个系统写入的密钥


我不确定这是否只是与XCode相关,或者MonoDevelop是否做了类似的事情(基于您指定的SDK和部署目标),但可能最终会导致属性冲突

我们遇到了完全相同的问题,问题是应用程序加载器本身。最新版本由于您提到的错误而拒绝上载二进制文件。 然后我降级到应用程序加载器1.3,瞧,我又可以上传了。
您可以在这里找到Application Loader 1.3:

我们遇到了完全相同的问题,问题是Application Loader本身。最新版本由于您提到的错误而拒绝上载二进制文件。 然后我降级到应用程序加载器1.3,瞧,我又可以上传了。
您可以在这里找到Application Loader 1.3:

我以前使用过1.3解决方案,但在最近的操作系统升级后,Application Loader 1.3拒绝工作

我从iTunes Connect下载了当前版本的application loader,并返回到arm7必需错误中

经过仔细研究,我发现现在必须使用LVVM编译器(在iPhone构建选项中的“高级”选项卡中),然后从下拉列表中选择
ARM6+ARM7
ARM7


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

我以前使用1.3解决方案,但在最近的操作系统升级后,应用程序加载器1.3拒绝工作

我从iTunes Connect下载了当前版本的application loader,并返回到arm7必需错误中

经过仔细研究,我发现现在必须使用LVVM编译器(在iPhone构建选项中的“高级”选项卡中),然后从下拉列表中选择
ARM6+ARM7
ARM7

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

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

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

3) 选择“构建设置”选项卡并查找“仅构建活动体系结构”选项卡------更改为------否(no

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

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


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

如果您不使用LLVM,mono AOT编译器将生成一个ARMv6二进制文件。也许其他一些设置暗示您希望发布一个ARMv7二进制文件?似乎将最低操作系统版本设置为4.0意味着您将提供一个ARMv7二进制文件,但是如果我是第一个遇到这个问题的人,我会感到惊讶。实际上,将最低操作系统设置为3.2也有同样的错误。只有将最小OS设置为3.0才能避免此错误…如果您不使用LLVM,则mono AOT编译器将生成ARMv6二进制文件。也许其他一些设置暗示您希望发布一个ARMv7二进制文件?似乎将最低操作系统版本设置为4.0意味着您将提供一个ARMv7二进制文件,但是如果我是第一个遇到这个问题的人,我会感到惊讶。实际上,将最低操作系统设置为3.2也有同样的错误。仅将最小操作系统设置为3.0可避免此错误…我并没有实际将其放入info.plist中-我只是使用MonoDevelop项目设置来指定最小操作系统。我没有实际将其放入info.plist中-我只是使用MonoDevelop项目设置来指定最小操作系统。非常感谢-我下次体验问题碰巧的是,我似乎找到了一个有效的设置组合,但我发誓这是我过去尝试过的组合,但没有成功。苹果的网站上不再存在ApplicationLoader_1.3.dmg,所以这个解决方案不再有效。我对最新的app loader没有任何问题,因此不再需要修复。非常感谢-下次遇到问题时,我会尝试一下。碰巧的是,我似乎找到了一个有效的设置组合,但我发誓这是我过去尝试过的一个组合,但没有成功。ApplicationLoader_1.3.dmg不再存在于苹果的网站上,所以这个解决方案不存在