2012-04-13 16 views
9

私はビデオを再生したいが、私のファイルがバンドルにインポートされていないことに気づいた?xcode iosファイルがバンドルで認識されない

ので、私はちょうど私のプロジェクトにAA.mp4ファイルをドラッグ&ドロップし、

それはプロジェクトナビゲータで[OK]を示し、私はファインダーに表示それを与える、およびファイルの確認は現在、プロジェクトに

存在し、私は私のバンドルの内容を表示するには、この

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath]; 
    NSFileManager *fm = [NSFileManager defaultManager]; 
    NSArray *dirContents = [fm contentsOfDirectoryAtPath:bundleRoot error:nil]; 

    NSLog(@"content of bundle ::%@", dirContents); 

をしようとすると、 iは、他のすべてのファイルではなく、私はインポートした1を参照してください?

だから何が不足していますか?

ありがとうございました!

+0

ファイルが.appフォルダ製品に存在するかどうかを確認してください – Otium

+0

「ビルドフェーズ – CodaFi

答えて

12

ファイルを単にXcodeプロジェクトにドロップするだけでは不十分です。ダイアログボックスでファイルを受け取ったアプリケーションのターゲットを確認する必要があります。それ以外の場合は、 'コピーバンドルフェーズ'に追加されず、アプリにコピーされません。ビルドフェーズに進み、ビデオをコピーバンドルリソースのフェーズグループにドラッグしてから、再度クリーンアップして実行します。

名前がファイルツリーに赤で表示されていても、それは存在しませんが、

+0

」の「バンドルアイテムのコピー」フェーズに含まれているかどうかを確認してください。これはXCode 4.3では特に厄介です。私はXCode 4.2でそれを気付かなかった。ただし、追加すると、オーディオファイルやビデオファイルは確実に追加されません。しかし、HTMLファイルや画像ファイルは、ドラッグするとターゲットに追加されます。 – borrrden

+0

ええ、私もそれに気付きました。多くのコントロールとプロジェクトを使用すると、リンカのエラーが発生するため、迷惑になります。 – CodaFi

+0

plistsでも問題であるようです。 plistをpngに改名すると、コピーされます。 – brainray

1

正しいとマークされた回答は、すべての状況で正しくない可能性があります。たとえば、 plists、Xcode 4.5+は何らかの理由でアプリケーションバンドルにコピーしません。回避策は、plistの名前を.pngに変更し、後で名前を変更することです。