任意のアプリのAssets.carを展開する「AssetsUnpacker」

  • このエントリーをはてなブックマークに追加
  • feedly
    follow us in feedly

どうも、きんにゃん( @wa_kinchan )です。じばにゃんです。

今回は、Assets.carの謎に迫ります。

Assets.carってなに??

Asset Catalog(Images.xcassets)という画像を一纏めにし、開発者からするとリソースを管理しやするためのものです。(管理しやすいかどうかは定かでないか・・)
これを利用して作られたアプリは、Assets.carに変換され外部からは閲覧できないApple独自のcarファイルになります。
その為、脱獄してアプリのリソースにアクセスでき、Assets.carを取り出せても中身を閲覧することはできませんでした。

もっと知りたい人:
Objective-C – Xcode5から追加されたAsset Catalogの挙動をいろいろ試してみた – Qiita


そこで、AssetsUnpacker!

脱獄限定とはなりますが、Assets.carを展開し、イメージファイルを一括で出力します。
あらかじめ、ActivatorでAssetsUnpackerのアクションを割り当てておきます。

そして、任意のアプリケーションを実行した状態で、AssetsUnpackerを実行します。
実行後は、しばらく待つとFailからSuccessのどちらかでアラートが表示されます。
Failの場合は、Assets.carが存在しないアプリになります。

2014 09 02 20 17 32
Successの場合、
/var/mobile/Assets/[アプリ名]
に画像ファイル出力されます。

Tweetbotは見た目画像ファイルどこにあるの・・って思いますが、Assets.carに入ってました。

2014 09 02 20 08 38

インストール方法

Cydiaからきんちゃんリポジトリを追加してください。
http://kindadev.com/apt

その後、「AssetsUnpacker」と検索しインストールしてください。

2014 09 02 20 39 54

おーぷんそーす

いつも通り、おーぷんそーすです。

以前、IRKit for ProWidgetsIRKit for Activatorを作成した際に、Assets.carの扱いに苦戦しました。しょうがなく、IPCで画像を運びましたが、どうも効率が悪いなと・・
そこでちょっとばかし、Assets.carの挙動を解析してみました。
結果的に、bundleさえ指定すればどこからでもAssets.carにアクセスできるので、画像系はIPCを使わず、実装すれば綺麗にものを運べそうです。まだ実装はしていませんが、やったら軽快になるかな。

使うシチュエーションほとんど・・いや、ないですが、良かったら使ってみてください。
Assets.carの中身もWinterBoardで反映できるのかな??そのへん詳しく知らないですが、どうなんでしょう????

では、きんちゃん( @wa_kinchan )でした。
最後まで読んで頂きありがとうございます。良かったら、RSS購読、シェアして下さいね(≧∀≦)!





One Thought on “任意のアプリのAssets.carを展開する「AssetsUnpacker」

  1. はるお on 2014年10月3日 at 1:40 AM said:

    これを応用してiOS7のシステム画像が入ったcarファイルを解凍/圧縮するtweekは作れませんか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Post Navigation