2011-01-06 37 views

Trả lời

14

Có. Tìm tệp .ipa của ứng dụng trong thư mục "Nhạc/iTunes/Ứng dụng dành cho thiết bị di động" của bạn. Tạo bản sao ở đâu đó và đổi tên nó thành tệp .zip. Giải nén tệp. Trong thư mục Tải trọng, nhấp chuột phải vào tệp .app và chọn "Hiển thị Nội dung Đóng gói". Bây giờ bạn có thể truy cập tất cả tài nguyên của ứng dụng.

Tệp PNG sẽ được mã hóa cho iPhone và cần được chuyển đổi thành có thể xem được trên máy Mac/PC của bạn. Có một số tiện ích cho việc này.

Tôi đã sử dụng atPeek để tự động hóa toàn bộ quá trình này, nhưng nó không phải là một ứng dụng miễn phí (Tôi nghĩ đó là $ 5): http://www.atpurpose.com/atPeek/

+0

nếu bạn muốn file png chỉ để xem chúng trong xem trước sau đó không cần phải đảo ngược optimize (hoặc giải mã) các tập tin bằng bất kỳ công cụ nào. Chỉ cần sao chép tệp png trong bất kỳ thư mục nào bên ngoài thư mục .ipa (ví dụ trong thư mục Downloads) và bạn có thể xem chúng trong phần xem trước. Tuy nhiên nếu bạn muốn sử dụng PNG cho bất kỳ mục đích nào khác thì chỉ cần sử dụng công cụ pngcrush được cung cấp trong chính Xcode. Tối ưu hóa ngược (hoặc giải mã) bằng pngcrush sẽ làm giảm kích thước của hình ảnh. –

+0

Hãy thử điều này, https://gist.github.com/ManujPorwal/5926753 – Say2Manuj

+0

nếu bạn muốn truy cập danh mục tài sản của ứng dụng, bạn sẽ cần một cái gì đó để xem phiên bản được mã hóa của nó - 'asset.car'. [ứng dụng mac này làm việc cho tôi] (https://github.com/insidegui/AssetCatalogTinkerer) – shoe

6

Bắt đầu với iOS SDK 3.2 (trở lên) bạn có thể sử dụng pngcrush để hoàn tác tối ưu hóa PNG iOS.

Sử dụng lệnh:

$ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations "~/Path/To/The/Apps.app/Image.png" "~/Path/To/Place/The/Reverted/Image.png" 

Xem http://developer.apple.com/library/ios/#qa/qa1681/_index.html để biết đầy đủ.

iOS SDK có sẵn để tải về miễn phí tại địa chỉ: http://developer.apple.com/devcenter/ios/index.action

Bạn có thể tải pngcrush mà không cần tải iOS SDK từ: http://pmt.sourceforge.net/pngcrush/

2

Trong xcode mới nhất của con đường là:

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

... do đó hãy đảm bảo bạn chỉnh sửa đường dẫn trong pngcrush.

Ngoài ra, (cho noobs), nếu bạn nhận được permission denied của nó bởi vì các tập tin không phải là một thực thi nào, làm chmod +x [filename]

3

Vâng, có một dự án github lớn bởi Cédric Luthi để làm điều này:

https://github.com/0xced/UIKit-Artwork-Extractor

Nó có thể duyệt và trích xuất tác phẩm nghệ thuật nội bộ iOS cũng như tác phẩm nghệ thuật của bất kỳ tệp ipa nào trong iTunes.

0

đây một bài báo làm thế nào để sử dụng pngcrush trong shell script, vòng lặp và chuyển đổi tất cả hình ảnh thành lập:

hy vọng điều này giúp.

1
  • Giải nén nội dung của file ipa (theo @ câu trả lời TomSwift của)

  • tôi đã viết dòng này kịch bản PHP cmd mà sẽ chuyển đổi/uncrush tất cả hình ảnh trong một thư mục. Đó là một dòng lệnh cmd và chỉ được kiểm tra trên OSX.

Arguments:

--indir (thư mục chứa PNG)

--outdir (thư mục nơi chuyển đổi PNG sẽ được đặt)

--pngcrushpath [tùy chọn] (đường dẫn đến pngcrush, nếu không quy định nó sẽ mặc định tiêu chuẩn)

Ví dụ sử dụng:

php uncrush.php--indir/MyIPAs/MyApp.app/ --outdir /MyIPAs/Chuyển đổi/

Script Source:

<?php 

$args = getopt('', array(
    'indir:', 
    'outdir:', 
    'pngcrushpath::' 
)); 


$inDir = @rtrim($args['indir'], '/'); 
$outDir = @rtrim($args['outdir'], '/'); 
$pngCrushPath = isset($args['pngcrushpath']) ? $args['pngcrushpath'] : '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush'; 

if(!is_dir($inDir)){ 
    error('INPUT DIR IS NOT VALID - DIRECTORY NOT FOUND ' . $inDir); 
} 

if(!is_dir($outDir) && !mkdir($outDir)){ 
    error('OUTPUT DIR IS NOT VALID - DIRECTORY WAS NOT FOUND AND COULD NOT BE CREATED ' . $outDir); 
} 

if(!is_file($pngCrushPath)){ 
    error('PNGCRUSH BINARY NOT FOUND'); 
} 

$pngs = glob($inDir . '/*.png'); 

foreach($pngs as $png){ 
    msg('CONVERTING - ' . $png); 
    convert($png, $outDir . '/' . basename($png)); 
} 

msg('DONE'); 
exit; 


function error($str){ 
    $f = fopen('php://stderr', 'w'); 
    fwrite($f, $str . "\n"); 
    fclose($f); 
    exit; 
} 

function msg($str){ 
    $f = fopen('php://stdout', 'w'); 
    fwrite($f, $str . "\n"); 
    fclose($f); 
} 

function convert($inPng, $outPng){ 
    global $pngCrushPath; 

    exec($pngCrushPath . ' -revert-iphone-optimizations -q ' . $inPng . ' ' . $outPng); 
} 

?> 

tôi đã viết kịch bản này để sử dụng riêng của tôi hôm nay, tôi hy vọng nó là sử dụng cho người khác. Vui lòng sửa đổi và đăng lại ở nơi khác, nhưng vui lòng liên kết lại câu trả lời này trên SO.

+0

Đây chính xác là những gì tôi đang tìm kiếm! Tôi đã gặp rắc rối với kịch bản ruby ​​trước đó. Bây giờ kịch bản này hoạt động như một nét duyên dáng :) – Bryan

0

Các công cụ tốt nhất mà tôi tìm thấy để trích xuất hình ảnh từ iPad/iPhone các ứng dụng truy cập chúng trực tiếp từ thiết bị là iFunBox Nhận nó ở http://www.i-funbox.com/

Các vấn đề liên quan