強火で進め

このブログではプログラム関連の記事を中心に書いてます。

iOS向けPNGを通常のPNGに戻す方法とPNGの最適化、xcrun

iOS向けのプログラムを作る時にアプリに同梱するPNGはデフォルトの設定だと最適化が行われます。このPNGをどの環境でも見れるPNGに戻す方法の書かれたブログ記事を見かけました。変換方法自体は公式のドキュメントなども有るのですがパスが長くて結構記述が面倒なので簡単に使える様にシェルスクリプトなども紹介されていました。

Technical Q&A QA1681: Technical Q&A QA1681
https://developer.apple.com/library/ios/#qa/qa1681/_index.html

Red Sweater Blog – Fixing PNGs
http://www.red-sweater.com/blog/2517/fixing-pngs?utm_source=iOS+Dev+Weekly&utm_campaign=89112a407f-iOS_Dev_Weekly_Issue_45&utm_medium=email

ここだけでもまぁ、参考になるのですがその後に書かれていた2点も興味深い内容でした。

まず1点目、xcodeがビルド時に行う圧縮より、ImageOptimで圧縮した方が30〜40%サイズを削減できるそうです。

2点目としては xcrun というコマンドです。
これは該当のフォルダにパスを通さなくてもSDKの中に有るツールを実行可能にしてくれるツールみたいです。

例えば以下の様に記述すると pngcrush のフルパスを指定したのと同じ扱いになります。

xcrun -sdk iphoneos pngcrush -revert-iphone-optimizations

以下の記述と同等。

/Applications/Xcode.app/Contents/Developer//Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations

xcrun(/usr/bin/xcrun) はファイルを開いてみるとただのシェルスクリプトみたいです。内部では /usr/share/xcode-select/xcrun に投げてるみたいです。

関連情報

xcrun の使用例として参考になりました。

Q: Xcodeアーカイブビルドが完了してもオーガナイザのウィンドウに遷移しないのでipa ファイルが作れない問題の解決 - laiso - iPhoneアプリ開発グループ
http://iphone-dev.g.hatena.ne.jp/laiso/20120124/1327383808