xamarin ios发布 - 包含arm64架构的应用程序需要包含armv7

时间:2016-08-08 10:29:46

标签: ios xamarin xamarin.ios release

我正在尝试上传使用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 config1vs config 2

有没有人知道如何在不启用“ARMV7”的情况下实现这一目标?

[更新] 我正在考虑只支持iPhone5及更高版本的应用支持,但似乎在上传ipa时拒绝了。 我通过设置“ARMv7,ARMv7s,ARM64”设置来成功上传。 谢谢你们快速回复!

2 个答案:

答案 0 :(得分:6)

此处的问题是,在您的第一张图片中,您可以看到Supported architectures列为ARMv7s + ARM64ARMv7sARMv7不同 - 它是一种衍生产品,只能在支持它的ARM CPU上运行。就iPhone而言,这将是iPhone 5及更新版本。

Apple不要求

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>