web-dev-qa-db-ja.com

iOSでのAssets.carファイルの分析

IOSアプリケーションの全体サイズを縮小しようとしていますが、これは現在48MBです。サブフォルダーを分析すると、Assets.carが41MBを使用していることがわかりました。どれを開いて、どれだけのスペースを取っているかを見ることができません。

Assets.carファイルに関する適切なドキュメントが見つかりませんでした。誰かがコンテンツを表示する方法を提案できますか?

63
Rajeev

このツールは.carアーカイブを抽出できます: https://github.com/steventroughtonsmith/cartool

アーカイブを抽出する手順:

GithubからZipをダウンロードしたら、Xcodeでコンパイルしてコマンドラインツールを生成します。次にProductsグループを展開し、cartoolファイルを右クリックして、Finderで見つけます。その後、次のようにツールを実行できます。

  • オープンターミナル
  • cd /path/to/cartool
  • ./cartool /path/to/Assets.car /path/to/outputDirectory
104
Lewis42

Appleのassetutilを実行します。

xcrun --sdk iphoneos assetutil --info Assets.car

ファイル内の各アイテムのJSON記述を取得します。このようなもの:

  {
    "Height" : 60,
    "Scale" : 1,
    "RenditionName" : "D3801CE9-19F1-4CE9-97C6-7E1EFFFCAE89",
    "AssetType" : "Vector",
    "SizeOnDisk" : 10822,
    "Name" : "mailbox",
    "Idiom" : "universal",
    "Width" : 99
  },

"SizeOnDisk" : 10822に注意してください。

このツールは限定的な.car操作を実行します。詳細については、man assetutilを実行してください。


Assets.carは、iOS 7で初めて登場した独自のAppleのアーカイブのようです。いくつかのユーティリティは、CoreUIフレームワークのプライベートクラスCUICatalogを使用してコンテンツを抽出できます。

.carファイルを読み取るアプリもあります: crunch 9 $、15 day trial

実行中strings Assets.carが返されました

@(#)PROGRAM:CoreUI  PROJECT:CoreUI-475.1.1
IBCocoaTouchImageCatalogTool-9.0

Xcode-beta内でfindを実行すると、/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogToolが返されました。これは、シミュレータ実行可能ファイル(i386 + x86_64)です。さらに調査しませんでしたが、シミュレータ内で実行すると、このツールが.carアーカイブを開く可能性があると思います。

53
Jano

アセットカタログを参照および抽出する場合は、アプリを使用することもできます Asset Catalog Tinkerer

Asset Catalog Tinkerer screenshot

46
Guilherme Rambo

ユニバーサルバイナリには、画面密度ごとに複数の画像解像度が含まれているようです。

アプリがApp Storeにアップロードされると、各デバイスは適切な画像密度のみを取得するため、ファイルサイズはユニバーサルバイナリよりも小さくなります。

ここでファイルサイズを確認できます:iTunes Connect> My Apps> Your App> Activity> Your Build> App Store file-size

0
RhodanV5500

Guilherme Ramboは、Lewis42ではなく、正しいと言いました。

Asserts.carにPDFファイル( 'a.pdf')があるとします。

Cartoolを使用している場合、ファイル形式が変更されている場合、3つのpngファイル(a.png/a @ 2x.png/a @ 3x.png)を取得します。

ただし、AssetCatalogTinkererを使用している場合は、a.pdfファイルをプレビューできます(ファイル形式は変更されません)。

0
J.Caspar