iOS: 从ipa提取图片资源文件及从iOS设备提取ipa文件的方法

来源:互联网 发布:药学网络本科 编辑:程序博客网 时间:2024/06/09 17:41

原文地址:http://blog.csdn.net/huanghr_1/article/details/7857211

由于操作比较简单,就不上截图了,简单说一下:

1)从ipa提取图片资源文件。

 >> 解压ipa(其实ipa也是一种压缩格式的文件,改名为zip即可解压),解压后,有个Payload目录,里面有个“应用名.app”(其实是个目录);

 >> 打开终端命令行,cd 到 ***/***/应用名.app 目录

 >> 创建一个ruby脚本(mac可以直接执行ruby脚本),该脚本用来将ipa包内的png文件反优化”成可以浏览的图片文件,命令:vi uncrush.rb

 

[ruby] view plain copy
  1. <span style="font-size:18px;">    files = Dir.glob("*.png")    
  2.         
  3.     puts "Creating directory: uncrushed"    
  4.     if File.directory?("uncrushed")    
  5.       puts "Directory already exists... delete and proceed? (y/n)"    
  6.       input = gets.strip    
  7.       if input == "y"    
  8.         deletefiles = Dir.glob("uncrushed/*.png")    
  9.         deletefiles.each do |f|    
  10.           File.delete(f)    
  11.         end    
  12.         Dir.delete("uncrushed")    
  13.       else    
  14.         abort    
  15.       end    
  16.     else    
  17.     end    
  18.     Dir.mkdir("uncrushed")    
  19.     files.each do |f|    
  20.       puts "Found file: #{f}... uncrushing it because we street!"    
  21.       `/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations -q #{f} uncrushed/#{f}`    
  22.       puts "Creating new file: #{f}"    
  23.     end  </span>  

>> 保存并执行脚本:ruby uncrush.rb ,在当前目录的 "uncrushed"文件夹,你可以找到原始的png文件,很酷吧。


2)从iOS设备提取ipa文件

方法一:使用iTunes,备份ipa到本地目录(由于同步规则复杂,我们用第二种,最简单的)

方法二:使用iTools,可以看成一个与Apple帐号无关的iTunes,支持MAC和Windows(据说是QQ二把手创业的作品),连接后可以把已安装的ipa逐个备份到本地,也可以查看应用内的数据库及产生的图片,文档等。同样,对一些需要付费的软件,你可以备份到本地,然后安装到其它越狱的iOS设备。


(完) 


=========补充1=========


mac 默认不隐藏文件后缀名及隐藏文件,可以通过一下命名设置为显示,设置完成后需要 Force Quit 【Finder】。

 显示Mac隐藏文件的命令:
    defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏Mac隐藏文件的命令:
    defaults write com.apple.finder AppleShowAllFiles -bool false


=========补充2=========

执行时可能会提示pngcrush 无法找到,不同的电脑Xcode安装目录有所不同,进入 Application -> Xcode -> 右键 Show Package Contents -> 邮件 Get Info,查看所在的绝对路径,替换即可。某些资源文件如果在打包时没有设置decode的话,是不用执行pngcrush的。以下是我的xcode 安装路径 

[html] view plain copy
  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin  

补充:获取pngcrush路径

xcrun -sdk iphoneos -find pngcrush

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  


0 0
原创粉丝点击