Я не пробовал это, но я бы порекомендовал сборку с самой последней (3.x) версии SDK. Таким образом, вы получаете любые определения классов и методов, которые могут быть доступными на целевом устройстве.
И в вашем приложении вы должны проверить версию ОС, на которой работает ваше приложение. Исходя из целевой ОС, вы должны решить, какой класс и метод вам следует использовать. В конце концов, это большой беспорядок условного кода, возможно, с большим количеством дополнительного кода для обеспечения отсутствующей функциональности (т.е. прямой доступ к SQLite вместо использования Core-Data). По моему опыту, это не должно приводить к проблемам, потому что большая часть информации о типах стирается во время выполнения.