The Saudia aircraft was travelling from Iran's second city of Mashhad with 315 people on board, General Authority of Civil Aviation spokesman Khalid al-Khaybari said.
Of the 29 people injured, 12 were taken to hospital, "three of whom are in unstable conditions," Saudia said in a statement.
The rest were treated at the airport, which has been closed for 24 hours for work on the runway.
The leased Boeing 767 was being used for flights for pilgrims, the airline said, adding that it was carrying 299 passengers and 16 crew.
Khaybari said in a statement that the rear right-side landing gear failed to drop, forcing the captain to make the emergency landing.
Footage posted online showed the plane leaving a trail of flame along the runway as it screeched to a halt.