Если вы хотите поддерживать устройства 3.1, вам нужно сделать несколько вещей:
В настройках сборки вашей цели:
- установить базовый SDK для устройства iPhone 4.0
- установить iPhone OS Deployment Target на iPhone OS 3.x (самый низкий уровень ОС, который вы хотите поддерживать)
В общих настройках вашей цели в разделе Связанные библиотеки измените «Тип» рядом с MessageUI.framework на Weak
.
Не импортируйте <MessageUI/MFMessageComposeViewController.h>
, иначе при запуске 3.1 произойдет сбой. Просто импортируйте <MessageUI/MessageUI.h>
Чтобы убедиться, что он не падает на 3.1.x, вам необходимо проверить наличие MFMessageComposeViewController:
Class smsClass = (NSClassFromString(@"MFMessageComposeViewController"));
if (smsClass != nil && [MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init];
controller.body = text;
controller.recipients = [NSArray arrayWithObjects: nil];
controller.messageComposeDelegate = self;
[self presentModalViewController:controller animated:YES];
[controller release];
}