Most of these are apps for timekeeping of employees that might lie. So having geo location and even facial recognition is pretty common.
If you're not going to enforce anything that proves they're actually present, how about just trust that they showed up and don't bother keeping attendance at all?