The 28-year-old arrives on a free transfer after his contract with Lyon expired.
Gomis had been in Swansea for a medical earlier this week, with the club announcing a four-year contract today.
"Swansea City is pleased to announce the signing of French international striker Bafetimbi Gomis, subject to international clearance," said a statement on the club's website.
"The 28-year-old has signed a four-year contract with the Swans on a free transfer from French club Lyon."
Gomis, a €13million signing for Lyon in 2009, scored 22 goals last season but did not earn a FIFA World Cup™ call from national team coach Didier Deschamps, leaving him on 12 caps.
In total, he managed 62 goals in 172 appearances for Lyon but declined the club's proposed new contract as he received numerous offers, including from the English Premier League.