I really loved using GoodReader for years (despite its severe limitation of being iOS-only), but I had to abandon it and settle for dumb Acrobat Reader.
The reason is GoodReader's totally non-standard way of syncing files, at least with Dropbox.
What GoodReader does, whenever you sync a file with Dropbox, is that it first
deletes the previous version of that book file in Dropbox, and then it immediately uploads the updated version of the book.
You might think that that's fine, but it's definitely not. Even though the book file is missing for only a split second on Dropbox, this is enough to destroy the file's
version history in Dropbox. For Dropbox, it's a completely new file every time (even though it has the same file name), and version history for book files can't be recovered at all.
I tried to resolve this with both Dropbox and GoodReader tech support, but it's definitely a GoodReader issue. There is no such problem with syncing to Dropbox via Acrobat Reader, for example.
Acrobat Reader really only uploads an
updated version of the original file, just like it should. GoodReader should learn to sync files with Dropbox in this standard way as well.
Unfortunately, the reply from GoodReader tech support was that they're unable to do anything about this currently. So, I had to stop using GoodReader.