2011-12-08 4 views
1

최근에 Apple에 앱을 제출했으며 슬프게도 거부되었습니다. 그 이유는 작동하지 않는 친구에게 전자 메일 기능이 있다는 것입니다. (말할 필요도 없지만 내 장치에서 잘 작동합니다.) 주제와 본문을 채우고 첨부 파일을 추가하는 MFMailComposeViewController를 사용하고 있습니다. 그런 다음 나머지 작업을 수행해야합니다. 내가 정교을 요청하면 검토했다 ...MFMailComposeViewController를 사용하여 보낸 메시지를 보내지 못했습니다.

우리가 앱을 전송 한 이메일은 Gmail에서 나와, 야후, 테스트 계정있다 "보낼 편지함,"보내는 메일 서버를하지 못했습니다라는 오류와 함께 도달합니다.

... 내 앱의 오류로 계산 되나요? 실제로 메일을 보내지 않고, 내장 된 SDK 호출을 사용하여 메시지를 준비합니다. 나는 "그것은 당신의 장치"라는 논쟁이 정말로 내 앱이 승인 받기 위해 나를 진전시키지 않을 것이라고 생각하지만, 나는 정말로 그것이 그들의 장치라고 생각한다.

누구나 이메일이 이와 같은 메시지와 함께 실패 할 수있는 이유를 생각해 볼 수 있습니까? 내가

- (void)sendMail 
{ 
    NSData *vCards = (NSData *)ABPersonCreateVCardRepresentationWithPeople((CFArrayRef)self.selections); 

    MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; 
    mc.mailComposeDelegate = self; 

    [mc setSubject:@"Contact"]; 

    [mc setMessageBody:@"<p>My message...<p>" isHTML:YES]; 
    NSString *label = ([self.selections count] == 1)? (NSString *)ABRecordCopyCompositeName([self.selections objectAtIndex:0]): @"Contacts"; 

    [mc addAttachmentData:vCards mimeType:@"text/x-vcard" fileName:label]; 

    [self presentModalViewController:mc animated:YES]; 
    [mc release]; 
} 

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error { 
    switch (result) { 
     case MFMailComposeResultCancelled: 
      NSLog(@"Mail send canceled."); 
      break; 
     case MFMailComposeResultSaved: 
      NSLog(@"Mail saved."); 
      break; 
     case MFMailComposeResultSent: 
      NSLog(@"Mail sent."); 
      break; 
     case MFMailComposeResultFailed: 
      NSLog(@"Mail send error: %@.", [error localizedDescription]); 
      break; 
     default: 
      break; 
    } 
    [self dismissModalViewControllerAnimated:YES]; 
} 

가 지금은 메시지가 실패 할 경우 실제로 유용한 아무것도 아니에요 이해 메시지를 보낼

그리고 지금 내 코드

...

...하지만해야 메시지가 작성 단계에서 실패 할 경우 사용자의 보낼 편지 함으로 전달됩니다.

오류 세부 정보를 경고하는 다른 버전을 제출할 예정이지만 그럴 수 있습니다.

+1

나는 내 애플 리케이션 중 하나에서 당신과 거의 동일한 코드를 가지고 있으며 잘 동작한다. 이 판결은 앱과 가혹하고 관련이없는 것으로 보입니다. 테스트 기기의 이메일 계정이 제대로 설정되지 않았다는 내용의 항소를 제출 했습니까? – onnoweb

+0

장치가 [MFMailComposeViewController canSendMail] – onnoweb

+0

을 사용하여 전자 메일을 보낼 수 있는지 확인하는 유일한 추가 작업은 감사합니다. 항소를 제출했습니다. 어쨌든 iOS 5가 필요하므로 ABPersonCreateVCardRepresentationWithPeople에 관계없이 메일을 보낼 수 있어야합니다. 나중에 어떻게 작동하는지 알려 줄 것입니다. – rob5408

답변

0

어젯밤 내 iPhone에서 내 앱이 검토 중> 검토 대기 중> App Store 처리 중> 판매 준비가되었음을 알리는 iTunesConnect의 알림을 신속하게 연속적으로 받았습니다. 해결 센터에는 더 이상의 메모가 없으며 문제에 대한 Apple의 다른 이메일을받지 못했습니다. 모든 것이 효과를 내고있어 기쁩니다. 그러나 일부 엣지 케이스 버그가 나에게 별표를 던져야한다는 의심의 여지가 남아 있습니다. 죄송합니다. 해상도가 너무 지루합니다.

다음은 내 앱입니다. http://itunes.apple.com/us/app/cloner/id483981001?mt=8 (플러그). 모든 사람들에게 위대한 제안에 감사드립니다.

1

송신 오류를 처리하지 않는다는 이유로 막연한 거부 이유 일 수 있습니다. 나는 피드백과 비슷한 구현을하고있다. 이유가 무엇인지 알려주고 사용자가 다시 시도하도록 경고하는 것을 고려할 것입니다. Apple은 거의 모든 가능성을 확인합니다.

+0

감사합니다. Bill, 항소를 제출했으며 검토 기간 동안 빌드를 변경하지 말 것을 요청합니다. 그 이유가 내가 오류를 처리하지 않는다면 좋겠지 만, 막연한 "이메일은 보내지 않습니다"라는 메시지 대신에 거부 추론에서 언급해야합니다. – rob5408

+0

동의합니다. 그러나 이것은 우리가 차가운 키즈 클럽의 회원이되기 위해 지불하는 가격입니다. ;) 호소와 행운을 빌어 요. –

3

비슷한 일을했습니다. vcard를 보내지 않으실 수 있습니까? 그것이 작동하는지 말해주십시오 ...

+0

테스트를하는 동안 제대로 작동합니다. 또한 vCard를 전송하면 앱의 주요 부분이되므로 vCard없이 버전을 제출하고 싶지는 않습니다. – rob5408

+0

나는 같은 문제가있어서 fileName (레이블)에 .vcf 확장자를 추가했는데 문제가 될 수도 있습니다. – Issa

+0

정말 좋은 제안이지만 나 역시 이걸 알려줄 것입니다. . – rob5408

관련 문제