The San Francisco 49ers have signed punter Colton Schmidt to a three-year deal.