天天看點

iOS: 從ipa提取圖檔資源檔案及從iOS裝置提取ipa檔案的方法

由于操作比較簡單,就不上截圖了,簡單說一下:

1)從ipa提取圖檔資源檔案。

 >> 解壓ipa(其實ipa也是一種壓縮格式的檔案,改名為zip即可解壓),解壓後,有個Payload目錄,裡面有個“應用名.app”(其實是個目錄);

 >> 打開終端指令行,cd 到 ***應用名.app 目錄

 >> 建立一個ruby腳本(mac可以直接執行ruby腳本),該腳本用來将ipa包内的png檔案反優化”成可以浏覽的圖檔檔案,指令:vi uncrush.rb

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  
           

>> 儲存并執行腳本: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 安裝路徑

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin