The 49ers have signed S Darcel McBath to a one-year deal.