Scotland team doctor James Robson said: “Alasdair suffered a minor calf strain in training this week and while we were hopeful it would settle in time we believe his recovery has not been sufficient to warrant risking a partially fit player.”
The Perpignan flanker will be replaced in the back-row by John Barclay, who comes in to win his 40th cap against the Springboks.
The Glasgow Warriors man will don the openside shirt, the position in which he won Man of the Match in the corresponding fixture two years ago, with Kelly Brown reverting to blindside. David Denton remains at No. 8.
There is an unexpected boost for uncapped Edinburgh back-row forward Stuart McInally, who has been drafted on to the bench.
The 22-year-old has captained Scotland at every age-grade and represented Scotland 7s and Scotland A. McInallly has been a consistent performer with the Capital side in the past year.
Scotland head coach Andy Robinson added: “We wish ‘Stroker’ a speedy recovery.
“John is an experienced campaigner, while Stuart was with us on the summer tour and is raring to go.”