Reputation: 21
I'm trying to upload ipa file, coded using Xamarin built from Visual Studio. Meet this architecture error.
There're some suggestion here in xcode, but how to do this in Xamarin Studio or Visual Studio ? "Apps that include an arm64 are required to include to include both armv7 and armv7s architecture" Error in applicaiton loader
Here is my configurations: vs config1, vs config 2
Does anyone know how to achieve this without enable "ARMV7" ?
[Updates] I was thinking to make app support only iPhone5 and above, but seems this rejected while upload ipa. I've succeed to upload by setting to build with "ARMv7, ARMv7s, ARM64" setting. Thank you guys for quick reply!
Upvotes: 2
Views: 1464
Reputation: 4127
The issue here is that in your first image you can see the Supported architectures
listed as ARMv7s + ARM64
. ARMv7s
is not the same as ARMv7
- it is a derivative that can only run on ARM CPUs that support it. In the case of iPhones, this would be the iPhone 5 and newer.
ARMv7s
support is not required by Apple, and generally there is no need to include it in your app unless you are using any of the, very specific, optimisations it brings.
You just need to use the dropdown to change this to ARMv7 + ARM64
and you will be able to submit your app successfully.
Upvotes: 7
Reputation: 10104
You would have to edit the relevant Build Configuration in your iOS csproj file.
I mainly use Xamarin Studio though so I can't guide you in the Visual Studio menus, but if you can't find it in the Visual Studio properties of the csproj file, this is what my Release build configuration looks like:
<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>
So the important part to edit is:
<MtouchArch>ARMv7, ARM64</MtouchArch>
Upvotes: 0