Recently I discovered how incredibly easy it to extract the original, full-resolution images (and other resource files like video, audio, .plist files) from any app in the App Store, without jailbreaking, and without special software. For iOS developers, this can give a fascinating look at the insides of an app. As always, be sure to do this for learning purposes only and respect all apps’ intellectual property.
- Open iTunes and go to the Apps section. (If you haven’t yet downloaded or synced the apps you want to extract, do so now)
- Right-click any app icon in iTunes and select View in Finder if on a Mac, or Show in Windows Explorer on Windows.
- Copy the .ipa file to your desktop.
- Right-click on the file and rename it, replacing the .ipa extension with .zip.
- Double-click on the .zip file to open it. Inside there will be a Payload folder, with an .app file (Mac) or folder (Windows) inside.
- On Windows, just open the folder. On a Mac, right-click on that file and select Show Package Contents.
Tada! You will see listed all the app’s original, full-resolution images and other files! See the image above for some of the contents of the Facebook app.
So, what can we take away from this?
- An .ipa file is just a .zip file.
- An .app file is just a package folder.
- Apple’s DRM encryption only protects app binaries, not non-compiled resource files.
- Never keep sensitive strings like API keys or credentials in your .plist files.
- Always use an obfuscation library like UAObfuscatedString if you must store sensitive strings inside your app binary.
- Don’t ever think that your app’s resources are safe from prying eyes!