Finally, I've figured out the problem. I've something like this in my project:
var arrayName:Array = new Array();
var num:uint = 0;
arrayName.push(new Object());
arrayName[num].type1 = "String value";
arrayName[num].type2 = "String value";
arrayName[num].type3 = "String value";
arrayName[num].type4 = "String value";
arrayName[num].type5 = "String value";
arrayName[num].type6 = "String value";
arrayName[num].type7 = "String value";
arrayName[num].type8 = "String value";
arrayName[num].type9 = "String value";
arrayName[num].type10 = "String value";
arrayName[num].type11 = "String value";
num++;
likewise I add 571 objects (total length of arrayName is 571). It is like database as flash does not support database directly. If I publish alongwith all data (571), it stops creating file anymore, but if I reduce the number of data to 5, it creates ipa file...
Moreover, I've discovered that whenever flash publishes for ipa, initially it creates a folder in the publishing directory "AOTBuildOutput###.tmp" and a file "air###.tmp".. if everything goes fine than it creates one more file "aot###.tmp". Than it deletes folder and later deletes both files and creates .ipa file.. If you see Progress bar in flash but can't find any of these files/folder, it is hung. You should stop publishing which would indeed crash flash and retry. This is for those who face similar problems like me.
@Adobe/Sanika, Could you please let me know how to sort it out?