Search code examples
iosemailios10mfmailcomposeviewcontroller

MFMailComposeViewController without Mail app installed?


Now that apps like Apple's "Mail" app can be deleted in iOS 10, what will happen when a developer attempts to initialize and present MFMailComposeViewController and the default Mail app is not installed and configured on the device?

If the app crashes, what is the best way to check for this case?


Solution

  • On iOS 12 and above, canSendMail() will return true even if the Mail app is not installed. The MFMailComposeViewController will be presented, but the user will be unable to send mail.

    On iOS versions below 12:

    It looks like MFMailComposeViewController.canSendMail() will return false, and MFMailComposeViewController() will cause a crash (EXC_BAD_ACCESS). Use the canSendMail() check to determine if the device can show a MFMailComposeViewController.