Having read all of the above, I’ve had a look at two out of several of my devices that use Bitwarden (iPad 2 and iPhone 6). The iPad shows the last sync was on 31st July. The iPhone shows the last sync was on 8th August.
I added a test item on my iPhone. It showed up almost immediately on my iPad. However, the dates showing for the last sync on both devices hasn’t changed even though they have both clearly synced. Both devices were logged in to my account at the time and the Bitwarden app was open on them both.
I then decided to see if the sync still works if the Bitwarden app was closed on my iPad when I updated the test item on my iPhone. After updating the test item on my iPhone, I opened the Bitwarden app on my iPad and the test item had not updated, so the iPad has not synced after opening it. I checked that the test item had been correctly updated on the Bitwarden Chrome plugin on my PC and it had been updated.
I then added another test item, this time on my iPad. This was correctly synced with the server and appeared on my iPhone (the iPhone was locked, but the app was running in the background). However (and this is rather worrying), the original test item which had not previously updated on the iPad, still had not updated, even after the iPad has synced when it added the second test item. If it had synced the second item that I had added to it, why hadn’t it received the first test item that I had changed on the iPhone? At this point, performing a manual sync on the iPad successfully received the changes for the first test item.
To summarise, the iOS apps all updated automatically if they are open on the device, but not if the app was closed (swipe up). Even after a successful auto-sync, the app did not report the latest date and time of the sync. If the app is closed, it never updates new items after it is opened unless you perform a manual sync.
System: Bitwarden self hosted on Ubuntu 18.04.3, latest Bitwarden and Docker versions. Latest iOS versions on iPhone and iPad.