Вам потребуется использовать директивы препроцессора для условной компиляции, такие как __IPHONE_3_0, и создать два отдельных исполняемых файла.
Например:
#ifdef __IPHONE_3_0
// code specific to version 3
#else
// code specific to version 2
#end
Если вам нужно определить версию во время выполнения, вы можете использовать [[UIDevice currentDevice] systemVersion]. Возвращает строку с текущей версией iPhone OS.