iOS mail composer закрывается автоматически - PullRequest
1 голос
/ 28 октября 2019

У меня есть приложение, в котором я пытаюсь заставить Mail Composer открываться при нажатии на один из пунктов меню. К сожалению, окно создания почты появляется только на мгновение, а затем исчезает. Эта проблема началась после того, как я обновился до xcode 11.

Я получаю следующие ошибки, когда нажимаю на элемент меню, который запускает почтовый компоновщик.

2019-10-27 23:36:17.739375-0700 Favor Circle[14048:72257] [Common] [FBSSystemService][0x7259] Error handling open request for com.apple.MailCompositionService: <NSError: 0x6000038da820; domain: FBSOpenApplicationServiceErrorDomain; code: 1 (RequestDenied); reason: "The request was denied by service delegate (SBMainWorkspace) for reason: Security ("Entitlement "com.apple.frontboard.launchapplications" is required to open applications in this manner")."> {
userInfo = {
    FBSOpenApplicationRequestID = 0x7259;
}
underlyingError = <NSError: 0x6000038daa00; domain: FBSOpenApplicationErrorDomain; code: 3 (Security); reason: "Entitlement "com.apple.frontboard.launchapplications" is required to open applications in this manner.">;
}
2019-10-27 23:36:17.739683-0700 Favor Circle[14048:72256] [Assert] Connection request invalidated without resuming our _serviceSessionConnection. This is an error.
2019-10-27 23:36:17.739902-0700 Favor Circle[14048:65051] [General] #CompositionServices _serviceViewControllerReady: NSError Domain=_UIViewServiceInterfaceErrorDomain Code=0

Как включить необходимые права?

Я уже потерял два дня из-за этой проблемы. Пожалуйста, помогите.

Я добавляю код ниже. Этот фрагмент взят из бокового меню.

case "Edit Profile":
        if MFMailComposeViewController.canSendMail() {
            //print ("Attempting to send email")
            let mail = MFMailComposeViewController()
            mail.mailComposeDelegate = self
            mail.setToRecipients(["support@myfavorcircle.com"])
            mail.setSubject("MyFavorCircle team, please update my profile")
            var message = "Please tell us what information you need updated<br><br><br><p>My userid is: "
            message.append(Auth.auth().currentUser!.email!)
            message.append("</p>")
            mail.setMessageBody(message, isHTML: true)
            present(mail, animated: true)
        }
        else
        {
            print ("No email account on device")
        }

Этот фрагмент предназначен для закрытия контроллера компоновки.

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

    switch result.rawValue {
    case MFMailComposeResult.cancelled.rawValue :
        print("Cancelled")

    case MFMailComposeResult.failed.rawValue :
        print("Failed")

    case MFMailComposeResult.saved.rawValue :
        print("Saved")

    case MFMailComposeResult.sent.rawValue :
        print("Sent")

    default: break
    }

Когда я запускаю код, в журнале появляется сообщение «Отменено»консоль, хотя я не нажимал кнопку отмены на композиторе. Я предполагаю, что это из-за вышеуказанной ошибки.

...