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 iT
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