I finally managed to get my cocos rebuild of the game of TestFlight last night. This morning one of my testers sent the first report. It looks like the shaders are not firing on a non metal device, or are not working correctly. The rendering is obviously working but you can see from the screenshot that the character is not rendering correctly, nor is the terrain. I have included a comparative screenshot running on my XR phone.
The users device is and iPad Air 2 running iOS 14.2
Cocos2d-x v4 for iOS is compiled with the Metal renderer, so there is no runtime selection between OpenGL and Metal. If the device didn’t have the Metal API, then your app shouldn’t have worked at all.
It’s really strange though that it is rendering everything but the shaders. Are these custom shaders that aren’t working? Are the Cocos2d-x built-in shaders working?
It could be that there is shader code that may not be supported by those older devices, so you need to figure out what that is and change the code so it works on the lowest device version you’re willing to support. Once you do that it should also work on the newer devices.
The good news is that I can replicate on an old iphone6 for dev. Again the app runs fine it’s just my shaders. What would be the best/easiest way to test some cocos shaders on my sprites?