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