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

原文地址: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  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值