Which rendering backend are you using? This will determine which backends work, and restrictions on texture sizes. GLES3 mandates support for non-power-of-two textures, but GLES2 doesn't. Therefore, if you're using GLES2, make sure all your textures use power-of-two sizes, especially if they have mipmaps or repeat enabled.
Both iOS and Android support ETC2, but only when using the GLES3 renderer. When using the GLES2 renderer, the only VRAM compression algorithm supported on both Android and iOS is ETC1.
In Godot 3.x, PVRTC can be used on iOS, but it involves additional steps since Godot does not include a PVRTC compressor. (PVRTC is only supported on iOS, not on Android due to hardware limitations.)