Construindo um aplicativo OS X compatível com versões anteriores, quando uma nova API está presente?

Estou tentando atualizar um aplicativo (Clarke) para fornecer compatibilidade com 10.6.

Meu plano é usar dois caminhos de código diferentes, dependendo da versão do OSX em uso.

No 10.5, ele usará um controlador, que consiste em um código completamente personalizado que não depende de nenhuma API específica do Cocoa. No 10.6, ele usará outro controlador, que envolve a nova API do CoreLocation em uma interface idêntica, baseada na mesma classe abstrata. Em tempo de execução, o aplicativo alternará entre os controladores, detectando a versão do sistema operacional.

Isso funciona bem em 10.6 construído para o SDK 10.6, mas a mesma compilação explode em 10.5 com:

10/09/2009 18:30:50 [0x0-0x12f12f].uk.co.tomtaylor.Clarke[4575] dyld: unknown required load command 0x80000022 
10/09/2009 18:30:51 com.apple.launchd[403] ([0x0-0x12f12f].uk.co.tomtaylor.Clarke[4575]) Exited abnormally: Trace/BPT trap 

Se eu construir para o 10.5 SDK, ele não poderá compilar o material do CoreLocation, obviamente.

Eu esperava poder fornecer um único binário para este aplicativo. Existe uma maneira de 'esconder' a API CoreLocation de 10,5?

questionAnswers(2)

yourAnswerToTheQuestion