8

Je souhaite pouvoir utiliser l'application Mail.app de l'iPhone au sein de mon application afin que mes utilisateurs puissent envoyer un courriel partagé sans quitter l'application. Je sais que 3.0 a rendu cela possible.iPhone - MessageUI - cadre introuvable Message

J'ai ajouté le framework correctement en cliquant sur mon dossier frameworks -> ajouter un framework existant.

a ajouté au fichier d'en-tête de la viewcontroller Je veux que Mail.app apparaisse dans.

#import <MessageUI/MessageUI.h> 

je pop un UIAlert et à la fermeture que j'appelle la fonction ci-dessous, il n'y a pas d'erreurs Révéler dans mon code. Dois-je faire quelque chose de plus à l'intérieur de l'Interface Builder? Message d'erreur Ci-dessous

-(void)showEmailModalView { 

    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    picker.mailComposeDelegate = self; // <- very important step if you want feedbacks on what the user did with your email sheet 
    NSString * emailSubject = [[NSString alloc] initWithFormat:@"iPhone Subject Test"]; 
    [picker setSubject:emailSubject]; 


    NSString * content = [[NSString alloc] initWithFormat:@"iPhone Email Content"]; 

    // Fill out the email body text 
    NSString *pageLink = @"http://mugunthkumar.com/mygreatapp"; // replace it with yours 
    NSString *iTunesLink = @"http://link-to-mygreatapp"; // replate it with yours 
    NSString *emailBody = 
    [NSString stringWithFormat:@"%@\n\n<h3>Sent from <a href = '%@'>MyGreatApp</a> on iPhone. <a href = '%@'>Download</a> yours from AppStore now!</h3>", content, pageLink, iTunesLink]; 

    [picker setMessageBody:emailBody isHTML:YES]; // depends. Mostly YES, unless you want to send it as plain text (boring) 

    picker.navigationBar.barStyle = UIBarStyleBlack; // choose your style, unfortunately, Translucent colors behave quirky. 

    [self presentModalViewController:picker animated:YES]; 
    [picker release]; 
    [content release]; 
    [emailSubject release]; 


} 

- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Mon message d'erreur:

ld: framework not found Message 
collect2: ld returned 1 exit status 

J'ai suivi ce tutoriel: http://blog.mugunthkumar.com/coding/iphone-tutorial-in-app-email/

+0

Voir http://stackoverflow.com/questions/3352664/how-to-add-existing-frameworks-in-xcode-4 – Stan

Répondre

18

Après avoir fait quelques recherches, j'ai découvert que le tutoriel que j'utilisais était parfaitement bien! Le code n'avait aucune erreur et mon problème était la façon dont j'ai ajouté le Framework MessageUI à mon projet.

Mauvaise manière. Ctrl-cliquez sur le dossier frameworks et sélectionnez Ajouter -> frameworks existants.

Correct Way. Ouvrez les «cibles» dans le panneau de fichiers sur la gauche de votre écran xcode, double-cliquez sur le nom de votre projet. Une nouvelle fenêtre s'ouvrira, au bas de la nouvelle fenêtre vous pouvez ajouter une nouvelle bibliothèque liée, en ajouter une en cliquant sur le petit signe plus dans le coin inférieur gauche. Faites défiler jusqu'à MessageUI et sélectionnez Ajouter.

Si vous avez déjà ajouté le Framework MessageUI dans le mauvais sens, supprimez-le simplement et procédez comme il se doit. Si cela ne fonctionne toujours pas, essayez d'arrêter xcode, de redémarrer et de reconstruire votre application.

Après de nombreuses heures de recherche d'une réponse, c'est ce qui a fonctionné pour moi.

0

La sortie commande de liaison de ligne vous dira beaucoup de choses sur ce que XCode utilise pour essayer et construisez votre binaire, y compris les chemins d'inclusion de Framework et les frameworks inclus dans la construction. De là, vous serez en mesure de voir exactement ce que XCode utilise et ce qui pourrait manquer dans vos paramètres. La sortie de la ligne de commande se trouve dans l'un des volets de sortie de la fenêtre Résultats de la construction.