甘いものが好きです

iOS App開発時に感じた疑問や課題、その他の雑感などを書いていきます。

ビルドエラー「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」という部分によるものかもしれない。

原因と対処方法

エラー内容で検索してみると、以下のページを発見した。

どうやら差し替えた後の画像が「インターレースあり」になっていたことが原因のようだ。実際、問題の画像を「インターレースなし」のものに変更してからはこれらのビルドエラーが出なくなった。

そもそもインターレースとは?

「そもそもインターレースとは?」という話については、次のページなどが参考になる。

*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