What is PngCrush in iOS?

4.2k views Asked by At

i know that Pngcrush is an image optimisation technique in iOS , but my doubt is does X-code will perform this internally during each build or before deploying our app to iTunes store we need to do this image optimization?

3

There are 3 answers

2
wrock On BEST ANSWER

Xcode does the conversion during build. The final app will have modified pngs, you don't have to do anything manually.

0
rockeye On

By default, XCode performs automatically the crunching.

You can control this behavior from your project's build settings:

Search for the setting "Compress PNG Files" and set the value you want.

0
Mike Weller On

The PNG crushing is done using the pngcrush tool which you can access manually with this command:

xcrun -sdk iphoneos pngcrush -iphone ...

Xcode will do this automatically for any files added to your target with the "PNG" file type:

enter image description here

If you include resources using a directory reference, the PNG crushing will not be performed by Xcode and you will have to do this manually.

You can crush all the PNGs in a directory manually using this little bash snippet:

find /path/to/directory -name "*.png" | while read filename; do
    xcrun -sdk iphoneos pngcrush -iphone "$filename" "${filename}_crushed"
    mv "${filename}_crushed" "${filename}"
done