What is PngCrush in iOS?

2020-01-31 12:29发布

问题:

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?

回答1:

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



回答2:

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:

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


回答3:

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.