画像の形式と画像の拡張子が一致していないと、iOS シミュレータだと表示されるが、実機では表示されません。
iOS デバイスで実行しようとする際に Xcode に
CopyPNGFile Error
というエラーが表示されることから、デバイスに PNG 画像をコピーする際の処理でエラーしてしまうようです。(iOS シミュレータではこの処理が入らないものと思われます)。
プログラム自体はそのまま動いてしまうので見逃しやすいです。
ファイルの拡張子とファイル形式が一致するようにしましょう。
ファイル形式の確認方法
ファインダーでは画像形式は拡張子のものを表示するので 本当の ファイル形式は分かりません。
そんなときに個人的にオススメなのは file
コマンドです。様々なファイル形式を判定することが可能で、他の *nix 系 OS でも使えます。
$ file hontou_ha_jpg.png
hontou_ha_jpg.png: JPEG image data, JFIF standard 1.01
この場合は本当は JPEG ということが分かり、ウソを見破ることができます。
iOS の画像を使うような API であれば、PNG も JPEG も処理できるものがほとんどなので、単純に拡張子を直してあげることが一番早いです。
画像形式の変更方法
画像をたくさん直さないといけない場合には ImageMagick の convert コマンドを使うのがオススメです。
MacOS X でのインストール
インストール方法は MacPorts か Homebrew を使うのがオススメです。
MacPorts の場合
$ sudo port install ImageMagick
Homebrew の場合
$ brew install imagemagick
Windows でのインストール
iOS 開発の話をしているので、Windows はあまり関係ありませんが、ImageMagick は Windows 版もあります。
公式サイト からダウンロードしてインストールできます。
コマンドを使った画像形式変更方法
上が終わると convert
という画像形式変換ツールが使えるようになります。
$ convert hontou_ha_jpg.png hontou_ha_jpg.jpg
のように打てば hontou_ha_jpg.jpg
が 本当に JPEG 形式になります。