iOS 6 Mono and backward compatibility

2019-04-09 16:12发布

问题:

I'm updating my app to ios6 and i having following problems

  1. it is not possible to build application by architectures supported ARMv6 + ARM v7 but just only ARM v7 (the error is that iOS6 is not compatible with ARM v6). This means that my application will not work with all devices?

  2. building application with ARMv7 is not possible to use the flag LLVM ... (error MT3001)

  3. building application with SD 6 will also backward compatible with others iOS lower and all other devices (see question / error 1).

My system configuration is

  • MonoDevelop 3.0.4.7
  • MonoTouch 6.0.0.0
  • Mono 2.10.9

回答1:

The device architectures Xamarin.iOS 7.0 supports depend on the version of Xcode you have installed:

  • Xcode 4.5 (or later): ARMv7 and ARMv7s.
  • Xcode 4.4 (or earlier): ARMv6 and ARMv7.

This is a limitation each version of Xcode has, not Xamarin.iOS itself. Note that if you want to specifically use any iOS6 features, you need Xcode 4.5.

If you only build for ARMv7, you will lose support for the initial iPhone, iPhone 3G (but not 3GS) and the first and second generations of iPod. Here is a full list:

ARMv6 (Xamarin.iOS discontinued support for ARMv6 with v8.10)

  • iPhone (original), 3G
  • iPod 1st, 2nd generation

ARMv7

  • iPhone 3GS, 4, 4S
  • iPad 1, 2, 3, Mini
  • iPod 3, 4, 5th generation

ARMv7s

  • iPhone 5
  • iPhone 5c
  • iPad 4

ARM64 (Xamarin.iOS started supporting ARM64 in v8.6)

  • iPhone 5s
  • iPhone 6, 6+
  • iPad Air
  • iPad Mini 2, 3

This means that if you want to still be compatible with old devices, you need to use Xcode 4.4 (and give up on any iOS6 features).