Add builds for different targets I already have a released build for iOS 9+ devices. Now I want to release a new version for only ARKit devices that requires arm64 too. But my build doesn't pass a verification in XCode for itunesconnect release. It shows an error that I can't change target devices range for already released bundleID. But if I change bundleID in XCode it will be another application. I want to provide an update only for ARKit enablers, how can I do it?
You can't have separate builds with the same BundleID shipped to the AppStore. If you really want to have "Something special" for devices that are ARKit capable - Use some kind of checks during the app launch. Here's the quote from Apple


  Important
  All ARKit configurations require an iOS device with an A9 or later processor. If your app otherwise supports other devices and offers augmented reality as a secondary feature, use this property to determine whether to offer AR-based features to the user.
  If your app requires ARKit for its core functionality, use the arkit key in the UIRequiredDeviceCapabilities section of your app's Info.plist to make your app available only on devices that support ARKit.


So you can use ARConfiguration.isSupported to check the device capabilities in the runtime. If It's not supported fallback to the "Old" implementation.

In order to compile the code for targets &lt; 11 you can mark methods or even classes with @available(iOS 11.0, *) like so:

@available(iOS 11.0, *)
func doSomeARStuff() {
    if ARConfiguration.isSupported { print("Supported") }
}


In order to call those methods using your existing code do it like:

if #available(iOS 11.0, *) {
    doSomeARStuff()
} else {
    // Fallback on earlier versions
}