Я пытаюсь обновить приложение ( Clarke ), чтобы обеспечить совместимость с 10.6.
Мой план состоит в том, чтобы использовать два разных пути кода в зависимости от используемой версии OSX.
На 10.5 он будет использовать один контроллер, который состоит из полностью пользовательского кода, который не зависит от какого-либо конкретного API Какао. На 10.6 он будет использовать другой контроллер, который упаковывает новый API CoreLocation в идентичный интерфейс, основанный на том же абстрактном классе. Во время выполнения приложение будет переключаться между контроллерами, определяя версию ОС.
Это прекрасно работает на 10.6, собранной для 10.6 SDK, но та же самая сборка взорвана на 10.5 с:
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
Если я соберу для 10.5 SDK, он не сможет скомпилировать CoreLocation, очевидно.
Я надеялся, что смогу предоставить один двоичный файл для этого приложения. Есть ли способ «спрятать» CoreLocation API от 10.5?