I'm wondering why the option "revert snapshot" on iOS is disabled in your code. I found it works well in my device after I have compiled a version without this check. It correctly revert my device to a specified snapshot and I can even specify whether revert the user space(on /var/mobile) or root space(on /).