Spycher, 32, damaged ligaments in his left knee playing for Eintracht Frankfurt against Borussia Monchengladbach last month and has admitted defeat in his bid to be fit for South Africa. Swiss coach Ottmar Hitzfeld has called up Ludovic Magnin as his replacement.
Spycher told the Swiss federation's official website: "It is not clear at this moment when I can start training fully again. So after consultation with the doctors and physios I had no other choice but to inform the coach that he must plan without me."
Spycher, who will join Young Boys over the summer, said his international career was probably over after 47 caps. "I have taken this decision after careful consideration. I have had a great time with the national team but that's over now. I can now concentrate fully on Young Boys."