Problema ao usar o MFMailComposeViewController
Eu tenho um problema complicado. Em um dos meus aplicativos, com mais de 150.000 downloads ... Eu tenho um problema que raramente ocorre e que eu não consigo descobrir.
O problema é o seguinte: Em uma visão em que o usuário pode compartilhar uma lista por email, eu abro a janela de email usandoMFMailComposeViewController
. No entanto, em alguns poucos casos, o aplicativo parece ter um problema usando o compositor de correspondência. O usuário pressiona o botão de compartilhamento, a janela de e-mail desliza para cima, espera cerca de 1 a 2 segundos e depois fecha novamente. Nenhum conteúdo na janela de correio, embora eu envie dados para ele. Eu mesmo não consegui recriar o problema em nenhum dispositivo ou no simulador, mas um colega o fez. Eu corri o aplicativo usando o XCode em seu telefone e obtive o seguinte nos logs:
2013-03-01 14:43:39.604 appname[318:907] <MFMailComposeRemoteViewController: 0x1ebfb100> timed out waiting for fence barrier from com.apple.MailCompositionService
2013-03-01 14:43:39.631 appname[318:907] viewServiceDidTerminateWithError: Error Domain=XPCObjectsErrorDomain Code=2 "The operation couldn’t be completed. (XPCObjectsErrorDomain error 2.)"
Eu pesquisei o erro "expirou esperando por barreira de vedação de com.apple.MailCompositionService", mas realmente não consigo encontrar qualquer ajuda.
alguém tem alguma experiência com isso? Como posso resolver isso?
Meu código para abrir a exibição:
-(void)displayComposerSheetWithBodyString:(NSString *)aBody
{
if ([MFMailComposeViewController canSendMail])
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]init];
picker.mailComposeDelegate = self;
[picker setSubject:@"Lista"];
NSString *emailBody = aBody;
[picker setMessageBody:emailBody isHTML:NO];
[self.navigationController presentModalViewController:picker animated:YES];
}
else
{
[[[UIAlertView alloc]initWithTitle:NSLocalizedString(@"Din enhet är inte redo att skicka e-post. Kontrollera dina inställningar", nil)
message:nil
delegate:self
cancelButtonTitle:NSLocalizedString(@"OK", nil)
otherButtonTitles:nil]
show];
}
}