8

Desidero poter utilizzare l'iPhone Mail.app all'interno della mia applicazione in modo che i miei utenti possano inviare una email di condivisione senza uscire dall'applicazione. So che 3.0 ha reso possibile tutto ciò.iPhone - MessageUI - framework non trovato Messaggio

Ho aggiunto il framework correttamente facendo clic con il tasto Ctrl sulla mia cartella framework -> aggiungi framework esistente.

Aggiunto questo al file di intestazione della viewcontroller voglio il Mail.app ad apparire in.

#import <MessageUI/MessageUI.h> 

I pop un UIAlert e in chiusura che io chiamo la funzione qui sotto, ci sono errori che rivelano nel mio codice. Devo fare qualcosa in più all'interno di Interface Builder? Errore messaggio è seguito

-(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]; 
} 

mio MESSAGGIO DI ERRORE:

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

Ho seguito questo tutorial: http://blog.mugunthkumar.com/coding/iphone-tutorial-in-app-email/

+0

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

risposta

18

Dopo aver fatto qualche ricerca ho scoperto che il tutorial che stavo usando andava perfettamente bene! Il codice non ha avuto errori e il mio problema è stato il modo in cui ho aggiunto MessageUI Framework al mio progetto.

Modo errato. Ctrl-clic sulla cartella frameworks e selezionare add -> framework esistenti ..

Modo corretto. Aprire "target" nel pannello file a sinistra della schermata xcode, fare doppio clic sul nome del progetto. Una nuova finestra si aprirà, nella parte inferiore della nuova finestra è possibile aggiungere una nuova libreria collegata, aggiungerne una facendo clic sul piccolo segno più nell'angolo in basso a sinistra. Scorri verso il basso fino a MessageUI e seleziona Aggiungi.

Se hai già aggiunto MessageUI Framework nel modo sbagliato, è sufficiente eliminarlo e procedere nel modo corretto. Se continua a non funzionare prova a spegnere xcode, riavviare e ricostruire l'applicazione.

Dopo molte ore di ricerca di una risposta questo è ciò che ha funzionato per me.

0

L'uscita di linea di comando del linker vi dirà molto su ciò che XCode sta usando per provare e costruisci il tuo binario, compresi i percorsi di inclusione del framework e i framework che il linker include nella build. Da lì sarai in grado di vedere esattamente cosa XCode sta usando e cosa potrebbe mancare dalle tue impostazioni. L'output della riga di comando può essere trovato in uno dei riquadri di output nella finestra Build Results.