I know that the Apple Mac OS .app file is a collection of programs and data. I guest the iPhone is similar in this way. I can unzip a Mac OS .app to find the resource , images using this way. Can the iPhone App do the similar thing? I mean, can the user unzip the iPhone .app to get the resource/ img from that? thz.
All resources are signed, which makes them non-viewable to the casual user when the app is unzipped.
However, I wouldn't be at all surprised if that was easily removable.
The .ipa file can be unzipped, and resources viewed, but as they are signed, it won't work if you change anything. However, PNGs are encoded in a different way and nibs are compiled, so they aren't viewable with normal tools.
Yes. They are definitely viewable, with a little extra effort.
Unzipping the ".ipa" file gets you all the .png and .nib resources. The .png files are encoded using a non-standard format (described here) so you can't open them directly, but that same page also points to a tool to convert them to standard .png files.
The .nib files are more problematic, as described in this question:
Technically it is possible to instantiated a nib and introspect much of the information out of it, but it is non-trivial and wouldn't result in anything like using Interface builder
Note that signatures don't have anything to do with this: the application signature will detect if any of the resources have changed, but the signature is not the reason the resources are not (conveniently) openable: signing the application doesn't change the format of the underlying resources.
Apple presumably chose these formats to optimize load time - making it convenient to pull images out of someone else's app was probably not a design goal :-)