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?
Xcode does the conversion during build. The final app will have modified pngs, you don't have to do anything manually.
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
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.
来源:https://stackoverflow.com/questions/10716303/what-is-pngcrush-in-ios