我正在尝试上传使用Visual Studio构建的Xamarin编码的ipa文件。遇到这种架构错误。
xcode中有一些建议,但是如何在Xamarin Studio或Visual Studio中执行此操作? "Apps that include an arm64 are required to include to include both armv7 and armv7s architecture" Error in applicaiton loader
这是我的配置: vs config1, vs config 2
有没有人知道如何在不启用“ARMV7”的情况下实现这一目标?
[更新] 我正在考虑只支持iPhone5及更高版本的应用支持,但似乎在上传ipa时拒绝了。 我通过设置“ARMv7,ARMv7s,ARM64”设置来成功上传。 谢谢你们快速回复!
答案 0 :(得分:6)
此处的问题是,在您的第一张图片中,您可以看到Supported architectures
列为ARMv7s + ARM64
。 ARMv7s
与ARMv7
不同 - 它是一种衍生产品,只能在支持它的ARM CPU上运行。就iPhone而言,这将是iPhone 5及更新版本。
ARMv7s
支持,除非您使用它带来的任何非常具体的优化,否则通常不需要将其包含在您的应用中。
您只需使用下拉菜单将其更改为ARMv7 + ARM64
,即可成功提交您的应用。
答案 1 :(得分:0)
您必须在iOS csproj文件中编辑相关的Build Configuration。
我主要使用Xamarin Studio,因此我无法在Visual Studio菜单中引导您,但如果您在csproj文件的Visual Studio属性中找不到它,那么这就是我的Release构建配置的样子:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
<Optimize>true</Optimize>
<OutputPath>bin\iPhone\Release</OutputPath>
<DefineConstants></DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<MtouchArch>ARMv7, ARM64</MtouchArch>
<MtouchI18n>
</MtouchI18n>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<MtouchUseRefCounting>true</MtouchUseRefCounting>
<CodesignKey>iPhone Distribution</CodesignKey>
<IpaPackageName>
</IpaPackageName>
</PropertyGroup>
因此,编辑的重要部分是:
<MtouchArch>ARMv7, ARM64</MtouchArch>