Swisher issued a statement Friday on The Players' Tribune.
Slowed by knee injuries the past few years, Swisher appeared in 76 games with Atlanta and Cleveland in 2014. The 36-year-old played in 55 games last season for the Yankees' Triple-A Scranton/Wilkes-Barre team and then ended his season in July when his second child was born.
Swisher said, "Your body tells you when it's time to call it quits. And this offseason, my body was screaming, 'The dream is over, baby!'"
Selected by Oakland with the 16th overall pick in the 2002 amateur draft, Swisher hit .249 with 245 homers and 803 RBIs in 12 major leagues seasons with the Athletics (2004-07), White Sox (2008), Yankees (2009-12), Indians (2013-15) and Braves (2005).
He won the World Series with the Yankees in 2009 and was an All-Star the following year.
Swisher, 36, will join Fox Sports as a studio analyst for the 2017 season.
Information from The Associated Press was used in this report.