If my friend with iOS 7 download my app from appstore, it would work fine with minor glitches.
Yet, if I compile the new version directly to his iPhone it would mess up due to different layouting, etc.
Why?
Is this because the appstore program is compiled with Xcode 4.5?
Because when you submitted your app to the app store you compiled it against iOS 6.1 or whatever was the latest at that time. Now when you compile, its being compiled against iOS 7 by default, which has changes to how things are laid out.
You have a few options 1) fix how your stuff works with the iOS 7 changes. This is the better solution 2) continue to compile against iOS 6. To do this you can either install the iOS 6 SDK into Xcode 5 or just keep using Xcode 4.5.
Eventually you will have to do #1 so if you do #2 now your just buying time.