Mobile CI: Versioning and Tracking Builds in JIRA
The answer will vary depend on the CI/CD tooling you are using.

If you are planning on using Atlassian's CI/CD tool Bamboo, you could use the Bamboo variable ${bamboo.buildNumber} which ties the build number of Bamboo to your version number.  You can have a task that will adjust the version based on this variable.  Bamboo
 integrates with Jira so that you can see the builds and deployments directly within Jira.  There is also Git so you could see the commits that went into the deployment.  This effectively would automate the second requirement you listed.

There are plugins available for Jira that will integrate with other CI/CD toolsets (e.g. Jenkins, CircleCI), and the idea would be the same: let the CI/CD server automate the versioning for you.