iOS 开发过程中,在code和测试阶段结束后,你需要用xcode将程序打包成.ipa文件,然后上传到app store进行审批。在xcode将app打包成.ipa文件过程中,xcode会将文件压缩。我们知道这个打包过程简单来说就是一个压缩过程,如果你将ipa文件的名字改为.zip,然后再解压缩,你就可以看到ipa中包含的文件了。下面以我写的EZ
Chapel Hill Transit为例演示如何从ipa中提取图片。
Demo of un-zip ipa file
如上图所示,将ipa文件改名为.zip再解压后,可以看到一个名为EZ Chapel Hill Transit.ipa的文件夹,进入文件夹之后,可以看到一个叫Payload的文件夹,进入文件夹后,可以看到一个叫EZ Chapel Hill Transit.app的文件,这就是在iOS上可执行的app了,而要看app里的内容,可以右键该app,在菜单里选中Show Package Contents,进入后,就能看到app中包含的文件了。
Show Package Contents
但是,细细一看,就会发现app中包含的图片文件,虽然可以看到如”xxx.png”的图片,但是却不能打开浏览。
Package Contents: cannot open image files
这是因为在xcode打包ipa过程中,将图片使用pngcrush程序优化过了,具体的技术细节可以参看Apple的官方技术文档(英文)和Pngcrush的官方网站(英文)。那要如何将这些被优化过的图片“反优化”成可以浏览的图片文件呢?Apple的技术文档中给了相应的方法:
In iPhone SDK 3.2 and later, thepngcrushtool supports a command line option,-revert-iphone-optimizations, that undoes the optimizations done during the Xcode build process. So, to view an optimized PNG file, you should first undo the optimization and then
open it with Preview.
方法就是,如果你使用的iOS SDK版本在3.2之后,在terminal里执行以下命令:
$ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush\ -revert-iphone-optimizations -q Local.png Local-standard.png
当然,你也可以写一个script或者将script封装成一个Mac OS app来简化工作。不过,Github上已经有别人写好的,你只需要下载下来使用即可。
以上便是如何从封装好的ipa文件中提取图片文件的方法。
原理:
http://hi.baidu.com/_deus/item/91fe21d4a4e2f491260ae71e
工具:
https://github.com/boctor/idev-recipes/tree/master/Utilities/appcrush
分享到:
相关推荐
ipa解压图片资源 ipa解压图片资源 ipa解压图片资源
可以将ipa内的 图片,音频 文件导出 用于导图、分析 app效果很好用!
Mac系统下获取任意ipa中图片破解版软件,简单易用,打开后将ipa拖拽进去即可
主要用于 iPa 和 Car 文件的图片提取,只需拖放 iPa 安装包即可获取此 APP 内的 UI 图片。同时支持文件夹拖放及批量处理
把ipa包放进去,就自动解压并还原png图片。非常方便。
快速提取 ipa 包的图片资源-附件资源
破解ipa软件整理.pdf
从越狱市场搜搜ipa包。
ipa包,ios开发新手获取图片资源,练习资源 超过十亿人使用的手机应用 支持发送语音短信、视频、图片和文字 可以群聊,仅耗少量流量,适合大部分智能手机
直接解析ipa中的png图片是无法在windows中直接展示的,只能在Safari中显示;需要解码后才能正常在所有平台展示
一款小工具用来解密ios应用包加密的图片。ipa 文件解压之后里面的png 是加密的,需要解密才能看到,工具是一个命令行工具,使用很简单。 PngConver.exe c:\source.png c:\dest.png
点点IPA精灵.ipa
ipa解压car资源文件查看器 Extrac.app.zip
IPA抓包器.ipa IPA抓包器.ipa
apkshellext2_0.1.5770.22958.zip 1.安装方法,右键管理员运行install.bat 2.点击restart_explorer.bat重启资源管理器 3.OK了!
Java提取IPA中的png文件 源码
从ipa直接获取plist版本信息 现成的DEMO
Iphone IPA Iphone IPA Iphone IPA