Common mistake, confusing apps and firmware.
DJI GO is a software app(lication) that runs on iOS and Android devices. The two versions are independent from each other and - as of today - the latest iOS version is 3.1.11, whereas Android is at 3.1.6. Both iOS and Android have a mechanism to update existing apps, and - depending on user settings - the update can happen automatically or manually. What's important to understand is that updating DJI GO is not any different than updating other apps, like Snapchat or Instagram or Whatsapp.
The All-in-one firmware (this is how DJI calls it) is the software that is installed on our P3S, and it's currently at version 1.9.20. It's called "all-in-one" as it actually contains multiple packages: I don't know the details, but potentially every little sub-system of the P3S could have its own firmware (flight controller, speed controllers, camera, radio, battery, etc) and a certain "all-in-one" version might contain updates for some components and not others.
In the P3S, firmware upgrades are available via the DJI GO: when a new (firmware) version is available, the app notifies the user who can start the process (without going into details, the all-in-one firmware package is downloaded by the app from DJI, and then loaded to the AC microSD card, from where it gets pushed on the individual components).
Firmware versioning is completely independent from the DJI GO app version, although the overall P3S end-user experience is a combination of both, as some features are controlled by the app and others by the firmware. This is why you can find threads here claiming that some combinations (app + firmware) work better than others.