web-dev-qa-db-ja.com

MFMailComposeViewControllerがシミュレーターにリンクしない

まず、XCode4.0.2を使用しています。

さて、これが私の問題です。 Apple MFMailComposerViewControllerのサンプルプログラムをビルドして、シミュレーターで実行できます(メールが送信されないことはわかっていますが、ビルドされるのではないかと心配しています)。これで問題ないようです。

ただし、アプリケーションをビルドしようとすると、次のメッセージが表示されます。

ld: warning: ignoring file /Users/lloyd/Projects/iOS/simpleApp/MessageUI.framework/MessageUI, 
    missing required architecture i386 in file
    Undefined symbols for architecture i386: "_OBJC_CLASS_$_MFMailComposeViewController", referenced from:
  objc-class-ref in MailData.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

[〜#〜]ソリューション[〜#〜]

「ビルド設定」(基本および組み合わせ)を見ると、「フレームワーク検索パス」が設定されていることがわかりました。これを設定したことを覚えていなかったので、これは奇妙でした。それを削除すると問題が修正されました。

これで、シミュレーターとターゲットの両方をビルドできるようになりました。注:シミュレーターからメールを送信することはできませんが、コードを実行できるはずです(それが理にかなっている場合)。

28
Feloneous Cat

[〜#〜]ソリューション[〜#〜]

「ビルド設定」(基本および組み合わせ)を見ると、「フレームワーク検索パス」が設定されていることがわかりました。これを設定したことを覚えていなかったので、これは奇妙でした。それを削除すると問題が修正されました。

これで、シミュレーターとターゲットの両方をビルドできるようになりました。注:シミュレーターからメールを送信することはできませんが、コードを実行できるはずです(それが理にかなっている場合)。

これが私の問題の解決策でした:)

4
Feloneous Cat

Xcodeで、ターゲットのビルドフェーズタブに移動します。 MessageUI.frameworkが表示されていることを確認してください。ない場合は、[+]をクリックして新しいフレームワークを追加します。

86
SpaceTrucker

追加 MessageUI.framework ドキュメントには必須ではないと書かれていますが、.

2
iphone user

MessageUI.frameworkをプロジェクトのリンクされたフレームワークとライブラリに追加します

1
Katta Nagarjuna