Runtime error iOS - device info / Metal issue?

Trying to run app on an iOS device, and getting a EXC_BAD_ACCESS

Call stack is:
deviceMTL
getInstance
getDeviceInfo
gatherGPUInfo
setOpenGLView
didFinishLaunchingWithOptions

Seems like device = 0x0

Works fine in the simulator, but not on device, no idea why.

You haven’t stated what device you’re testing on, including which version of iOS. Does the version of iOS on the device support Metal?

The device is an iPad running iOS 10.3.3, Metal should be available from iOS 8 I believe, which is the deployment target. I am seeing this in the logs though:

[247:17239] Metal API Validation Enabled

Doesn’t support metal.

Doesn’t support metal.

Doesn’t support metal.

I had to change a bunch of build settings in the project to even get it to build, like changing build SDK from iphonesimulator to iOS, I’m not sure if there’s some other setting I’ve missed.

I found this thread from 2 years ago, looks like the same issue:

device is iPad 4th gen, and I guess metal isn’t supported, but cocos supports iOS as low as iOS 8 I thought? I could increase the min iOS version to 11 to exclude iPad 4th gen, but not sure that would cover all devices that don’t support metal.