2011-01-06 8 views

risposta

14

Sì. Trova il file .ipa dell'app nella cartella "Music/iTunes/Mobile Applications". Fai una copia da qualche parte e rinominala in un file .zip. Decomprimere il file. Nella cartella Payload, fai clic con il pulsante destro del mouse sul file .app e seleziona "Mostra contenuto pacchetto". Ora puoi accedere a tutte le risorse dell'app.

I file PNG saranno codificati per l'iPhone e devono essere convertiti per essere visibili sul tuo Mac/PC. Ci sono diverse utility per questo.

ho usato atPeek di automatizzare l'intero processo, ma non è un programma gratuito (penso che sia $ 5): http://www.atpurpose.com/atPeek/

+0

se si desidera che i file PNG solo per loro visualizzazione in anteprima, allora non c'è bisogno di invertire optimize (o decodificare) i file con qualsiasi strumento. Basta copiare il file png in qualsiasi cartella esterna alla cartella .ipa (ad esempio nella cartella Download) e puoi vederli in anteprima. Tuttavia, se si desidera utilizzare PNG per qualsiasi altro scopo, utilizzare semplicemente lo strumento pngcrush fornito in Xcode stesso. L'ottimizzazione inversa (o decodifica) di pngcrush diminuirà la dimensione dell'immagine. –

+0

Prova questo, https://gist.github.com/ManujPorwal/5926753 – Say2Manuj

+0

se vuoi accedere al catalogo delle risorse della app hai bisogno di qualcosa per visualizzare la versione codificata di esso - 'assets.car'. [questa applicazione mac ha funzionato per me] (https://github.com/insidegui/AssetCatalogTinkerer) – shoe

6

partire con iOS SDK 3.2 (e superiori) è possibile utilizzare pngcrush per annullare le ottimizzazioni PNG iOS.

Utilizzare il comando:

$ /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" 

Vedi http://developer.apple.com/library/ios/#qa/qa1681/_index.html per informazioni complete.

L'SDK per iOS è disponibile per il download gratuito all'indirizzo: http://developer.apple.com/devcenter/ios/index.action

È possibile scaricare pngcrush senza scaricare l'SDK per iOS da: http://pmt.sourceforge.net/pngcrush/

2

Nell'ultimo Xcode il percorso è:

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

... quindi assicuratevi di modificare il percorso in pngcrush.

Inoltre, (per niubbi), se si ottiene permission denied sua perché il file non è ancora un eseguibile, fare chmod +x [filename]

1
  • estrarre il contenuto del file IPA (come da @ risposta di TomSwift)

  • Ho scritto questo script PHP linea cmd che converte/uncrush tutte le immagini in una directory. È uno script di linea cmd ed è testato solo su OSX.

Argomenti:

--indir (directory contenenti PNG)

--outdir (directory dove convertiti PNGs verranno posizionati)

--pngcrushpath [opzionale] (percorso Pngcrush, se non specificato sarà di default la norma)

Esempio Uso:

php uncrush.php--indir/MyIPAs/MyApp.app/ --outdir /MyIPAs/fabbricato/

origine script:

<?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); 
} 

?> 

Ho scritto questo script per il mio uso oggi, spero che sia utile a qualcun altro. Sentiti libero di modificare e ripubblicare altrove, ma ti preghiamo di collegarti a questa risposta su SO.

+0

Questo è esattamente quello che stavo cercando! Ho avuto problemi con uno script rubino prima di questo. Ora questo script funziona come un fascino :) – Bryan

0

Lo strumento migliore che ho trovato per estrarre immagini da iPad/iPhone loro apps accedendo direttamente dal dispositivo è iFunBox ottenere in http://www.i-funbox.com/