Ответ 1
В вопросе, который вы связали, есть правильный ответ. С некоторыми экспериментами я придумал это (из ответа mattjgalloway):
#define __AVAILABILITY_TOO_NEW __attribute__((deprecated("TOO NEW!"))) __attribute__((weak_import))
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_6_0
#undef __AVAILABILITY_INTERNAL__IPHONE_6_0
#define __AVAILABILITY_INTERNAL__IPHONE_6_0 __AVAILABILITY_TOO_NEW
#endif
Затем повторите все версии, которые имеют смысл (т.е. 4.3 и выше для Xcode 4.5). Макрос __IPHONE_OS_VERSION_MIN_REQUIRED
проверяет цель развертывания.