ビルドエラー「While reading ... pngcrush caught libpng error」への対処方法
Xcodeプロジェクトで使用している画像を新しいものに差し替えた後、実機をターゲットにしてビルドすると以下の3つのエラーが出るようになった。*1
- While reading [プロジェクトで使用している画像へのフルパス*2] pngcrush caught libpng error:
- Could not find file: [ビルド後に作成されるapp内の画像ファイルへのフルパス*3]
- Command /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/copypng emitted errors but did not return a nonzero exit code to indicate failure
ビルドエラーとなるもののデバック実行は正常に開始された。これは第3のエラーの「emitted errors but did not return a nonzero exit code to indicate failure」という部分によるものかもしれない。
原因と対処方法
エラー内容で検索してみると、以下のページを発見した。
- ryu22eBlog : Xcode4でアイコンを指定した際に「While reading アイコンの場所 pngcrush caught libpng error: Read Error」が出ることがある
- アプリ開発(10) エラー対応の備忘録ーBuild app with Xcode 4 - PNG image errors:iPad/iPhoneアプリ開発:So-netブログ
どうやら差し替えた後の画像が「インターレースあり」になっていたことが原因のようだ。実際、問題の画像を「インターレースなし」のものに変更してからはこれらのビルドエラーが出なくなった。
*1:確認時の環境は次のとおり。OS X 10.8.2、Xcode 4.5.2 (4G2008a)、Base SDK: iOS 6.0、Deployment Target: iOS 5.0。
*2:例: /Users/Someone/Documents/Source/MyProject/Default.png
*3:例: /Users/Someone/Library/Developer/Xcode/DerivedData/MyProject-dtarawgdyiebqidxebcbowwltlxp/Build/Products/Debug-iphoneos/MyProject.app/Default.png