`
kennyluo
  • 浏览: 81848 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

从ipa提取图片资源,还原PNG文件

阅读更多

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, the pngcrush tool 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文件中提取图片文件的方法。

 

批量还原png的脚本如下,把以下代码复制,保存为“ruby uncrush.rb”文件,放置你的目标文件夹中,并运行,它会创建一个"uncrushed"文件夹,还原的png将放置在这里。

 

 

files = Dir.glob("*.png")

puts "Creating directory: uncrushed"
if File.directory?("uncrushed")
  puts "Directory already exists... delete and proceed? (y/n)"
  input = gets.strip
  if input == "y"
    deletefiles = Dir.glob("uncrushed/*.png")
    deletefiles.each do |f|
      File.delete(f)
    end
    Dir.delete("uncrushed")
  else
    abort
  end
else
end
Dir.mkdir("uncrushed")
files.each do |f|
  puts "Found file: #{f}... uncrushing it because we street!"
  `/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations -q #{f} uncrushed/#{f}`
  puts "Creating new file: #{f}"
end
分享到:
评论

相关推荐

    Java提取IPA中的png文件, 并进行解码还原png图片

    总的来说,要从IPA文件中提取并解码PNG图片,需要熟悉Java的文件操作、压缩包处理、图像解码等相关知识。这个过程涉及到了多个技术层面,通过合理利用Java提供的API和第三方库,我们可以实现跨平台的图像处理,使得...

    IPA图片还原工具源代码

    这个源代码是用于从IPA文件中提取并还原PNG图片的工具。 【描述】中的知识点: 1. IPA格式:IPA是苹果公司为iOS设备应用设计的一种打包格式,用于存储应用的二进制文件、资源文件、证书和元数据等。用户通常通过...

    Java提取IPA中的png文件 源码

    总之,Java通过`java.util.zip`库提供了解压缩文件的强大功能,使得我们能够方便地从IPA文件中提取PNG图像。理解这一过程有助于在开发过程中处理各种资源文件,特别是在跨平台的移动应用开发中。

    ipa提取图片

    本话题聚焦于如何从IPA文件中提取图片和音频资源,这对于开发者来说是一项重要的技能,特别是对于分析和调试App的效果十分有用。 首先,我们要了解如何解包IPA文件。IPA实际上是一个ZIP压缩包,可以通过简单的文件...

    ipa解压图片资源

    这个标题“ipa解压图片资源”指的是如何从IPA文件中提取出其中的图片资源。让我们深入了解一下相关的知识点。 首先,IPA文件本质上是一个ZIP压缩包,包含了iOS应用的所有组成部分,如可执行文件、资源文件(如图片...

    mac上解压ipa包图片资源

    "Extract.app"能够快速解析IPA包中的.app文件,并提取出所有图片资源,尤其是PNG图片,因为PNG是iOS应用中最常见的图片格式,支持透明度且压缩效果良好。 使用"Extract.app"的步骤大致如下: 1. **下载并安装...

    ipa解压car资源文件查看器 Extrac.app.zip

    选择后,工具会将CAR文件解码为原始资源,如PNG图片、JSON数据或者XIB/NIB文件。 4. **查看和编辑资源**:一旦资源被解码,用户就可以用相应的工具(如图像编辑器或XML编辑器)查看和编辑这些文件。这在调试、本地...

    微信.ipa资源包,ipa包,ios开发新手获取图片资源,练习资源

    ipa包,ios开发新手获取图片资源,练习资源 超过十亿人使用的手机应用 支持发送语音短信、视频、图片和文字 可以群聊,仅耗少量流量,适合大部分智能手机

    直接拖拽ipa包就能解压出图片资源

    标题中的“直接拖拽ipa包就能解压出图片资源”是指在iOS开发中,通过简单地操作可以直接从IPA包中提取出应用内的图片资源。IPA是iOS应用的打包格式,通常用于分发和安装应用程序。这个过程涉及到iOS应用的结构、资源...

    解决ipa导出的png无法在windows 下查看的工具

    在苹果iPHone中提取的PNG文件无法在Windows系统上正常查看,这是因为PNG经过加密处理了,在网上找到一款工具可以把PNG转换成正常的PNG,您可以试试。 参考下载: http://dl.vmall.com/c0r0vlm07m# ...

    HandyIPAPatcher:Shell脚本从IPA中提取瘦二进制文件,使用修改后的二进制文件进行修补,然后为部署做准备

    Shell脚本可从IPA中提取瘦二进制文件,并用修改后的二进制文件进行修补,然后为部署做准备。 extract_thin.sh-从解密过的app.ipa文件中提取精简二进制文件(如果需要,对于所有框架二进制文件也是如此)。 replace...

    cpp-用于iPa和Car文件的图片提取

    对于"cpp-用于iPa和Car文件的图片提取"这个项目,它专注于从特定类型的文件中提取图像资源,这些文件通常与iOS应用开发有关。 首先,`iPa`文件是iOS应用程序的安装包,它包含了应用的所有组成部分,如代码、资源...

    IPA转apk超级工具

    IPA转apk工具的工作原理主要是解压IPA文件,提取其中的.app文件,然后使用特定的方法将其转换为Android可识别的Dalvik虚拟机(DEX)格式,同时处理资源文件和清单文件以适应Android环境。最后,将所有内容重新打包...

    node-iphone-png:使从iPhone或iPad的.ipa文件提取的png文件可读且可打开

    使从iPhone或iPad的.ipa文件提取的png文件可读且可打开。 目前仅适用于Mac OS X,或者您可以帮助我使其在Windows上运行。 安装 $ npm install iphone-png -g 之后,您将在终端中输入一个iphone-png命令。 用法 ...

    Unity3d游戏提取资源工具

    2. **资源导出**:支持将提取的资源导出为通用格式,如.png(图片)、.obj(3D模型)、.wav或.mp3(音频),以便在其他软件中使用。 3. **资源预览**:提供资源预览功能,用户可以在不导出的情况下查看资源内容,如...

    苹果iPhone微信双开最新版本IPA签名文件爱思助手操作

    7.等待签名成功后,点击打开已签名的IPA位置,找到签名好的文件。双击打开,会弹出微信安装对话框,点击立即安装,耐心等待安装成功即可。 8.安装完微信还要设置一下VPN与设备管理,打开手机设置->通用->VPN与设备...

    .net c# 读取解析ios.ipa包中被优化后的png图标

    当拿到一个app.ipa包时,想用程序读取包中的资源文件,这时是无法直接将app图标在浏览器被正确解析的,原因是苹果在打包app时,对这些图标文件做了优化处理,crush掉了png图标包含的一些信息,这时我们需要decrush...

    获取IPA中图片

    Mac系统下获取任意ipa中图片破解版软件,简单易用,打开后将ipa拖拽进去即可

    破解ipa软件整理.pdf

    破解ipa软件整理.pdf

    ipa转换工具(转换成ipa格式来安装软件)

    这种格式包含了应用程序的代码、资源文件(如图片、音频、视频)、配置文件以及数字证书等信息。通常,用户通过App Store下载并安装应用,但有时开发者或用户可能需要从非官方渠道获取和安装应用,这时就需要将其他...

Global site tag (gtag.js) - Google Analytics