I'm working with ARKit Feature , with recent major iOS release, but I'm getting a crash with error failed assertion
MTLRenderPassDescriptor: MTLStoreActionMultisampleResolve store action for the depth attachment is not supported by device
I already have iOS11 beta, installed in my iPhone device.
As all answers above this is a hardware constraint to A9 chips. Anyway it is a good practice to addAdding ARKit to UIRequiredDeviceCapabilities on Info.plist will give you a better feedback running apps that primary function is ARKit based.
To be able to run ARKit your device should be able to support it. Not only using the latest iOS will help. As apple mention in the Keynote WWDC 2017 they support A9 chips and Above which means iPhone 6s and Above will be able to run and test ARKit.
Related
I would like my app to be used on iPhone8 or above only. I've checked iOS Device Compatibility but i believe it's outdated. No mention of the newer phones like XS/XS Max/XR.
iPhone8/X & above use the A11 Bionic chips, Water resistant to a depth of 1 metre for up to 30 minutes & supports Wireless charging or even devices with the notch. Features not available in older devices/models.
I have already restricted it to iPhone7 & above by using nfc as key in UIRequiredDeviceCapabilities
So is there a way to restrict my app to iPhone 8/X and above by setting the UIRequiredDeviceCapabilities keys? If so what are those keys?
Any help is appreciated.
I don't think you can.
An alternative could be checking the device on AppDelegate didFinishLaunching and prompting a device not supported then close app
I'm developing an iOS game using ARKit. The game concept only works if 6DOF tracking is available, which means that an A9 chip or newer is available.
I don't want users to install the game on older devices like an iPhone 6 - on these devices ARKit would fallback to 3DOF tracking, which doesn't make sense for my game concept (I need translation tracking).
How can I enforce this restriction, that the app can only be installed on devices supporting 6DOF (which, to my knowledge is equivalent to iPhone 6S or newer or iPad Pro or newer, or A9 or newer)?
I checked the iOS Device Compatibility Documentation and the UIRequiredDeviceCapabilities Reference but did not find anything suitable.
It doesn't seem to be in the UIRequiredDeviceCapabilities Reference yet, but as mentioned in the WWDC talk on ARKit there is a UIRequiredDeviceCapabilities key: using arkit in there ensures that your app is offered only to devices with 6DOF support.
Also, to clarify your list: 6DOF supported devices, aka A9 (and better) devices include...
iPhone 6s and later
iPhone SE
any iPad Pro
iPad 5th gen (just "iPad", but the one introduced April 2017)
I'm using the Google Maps API for iOS to essentially highlight a width of coverage using the GMSPolygon.
Running the iOS simulator I get an odd behavior. Using both a iOS 9.3 build for all the testing, the map properly highlights coverage using the location simulated by the simulator on an iPhone 5S, 6, and newer.
You can see this in this screen capture that I did: 5S Highlighting
Now when using the iPhone 4S and 5 it does not draw the GMSPolygons! iPhone 5 Not Highlighting
A few things to note, I made sure that location permission were authorized on all testing and the same "city Run" simulation was used on all the testing. Again the highlighting works fine on 5S and newer devices running 9.3, but not on 4S & 5 using 9.3. Is there a fundamental API change in the CLLocationManager between the builds for these devices?
As discussed in Simulator User Guide, there are some hardware and API differences in Simulator which may affect your app when testing in Simulator.
In addition to that, please note of these hardware features that are not simulated as of iOS 8.2:
Motion support (accelerometer and gyroscope) are unsupported.
Audio and video input (camera and microphone) are unsupported.
Proximity sensor
Barometer
Ambient light sensor
Aside from those, there are also API differences wherein Simulator APIs don’t have all the features that are available on a device such as these:
Receiving and sending Apple push notifications
Privacy alerts for access to Photos, Contacts, Calendar, and Reminders
The UIBackgroundModes key
Handoff support
Please try going through the Simulator User Guide for more information.
I'm currently writing an application that is only supported on iPad Air 1 + 2. I am checking for device compatibility in code, but is there a way to also specify that on the App Store?
I haven't been able to find anything past UIRequiredDeviceCapabilities, which only specifies certain characteristics that the device must have. As far as I can tell, there is no discerning characteristic under UIRequiredDeviceCapabilities between iPad Air and iPad 2.
Using UIRequiredDeviceCapabilities is the right way to go. Based on the list here:
iOS Device Compatibility Reference, I guess you can use metal or opengles-3, which are both available only on iPad Air models but not on iPad 2.
I hope this helps. Good luck.
Will Metal work on non A7 devices? (for example iPhone 5 or iPad Mini (not retina)). If not, is any way to create application for Metal supported devices only?
It is for A7 or greater. The WWDC videos say "Designed for A7" and they kept emphasizing that throughout the presentations.
Based on prior experience with frameworks I believe it would actually be based on iOS version and not processor, but Metal could be an exception. Apple does say "Metal provides extremely low-overhead access to the A7 GPU" in documentation making me believe it only works with A7.
Problem is solved. There is metal capability in device capabilities (in plist).
It's based on processor: it needs 64-bit gpu. I set my builds to arm64.
Metal is apple's implementation of OpenGL 3 supposedly without all of the "crud from 20 years of software dev" so the video says.