web-dev-qa-db-fra.com

Analyse du fichier Assets.car dans iOS

J'ai essayé de réduire la taille globale de mon application iOS, qui est actuellement de 48 Mo. Lorsque j’ai analysé les sous-dossiers, j’ai trouvé que Assets.car prenait 41 Mo. Je ne suis pas capable d'ouvrir et de voir lequel prend autant d'espace.

Je n'ai pas trouvé de bonne documentation sur le fichier Assets.car. Quelqu'un peut-il suggérer comment afficher le contenu?

63
Rajeev

Cet outil peut extraire une archive .car: https://github.com/steventroughtonsmith/cartool

Procédure d'extraction de l'archive:

Une fois que vous avez téléchargé le fichier Zip depuis github, compilez-le dans Xcode pour générer l'outil de ligne de commande. Développez ensuite le groupe Products et cliquez avec le bouton droit de la souris sur le fichier cartool et localisez-le dans le Finder. Vous pouvez ensuite exécuter l'outil comme suit:

  • terminal ouvert
  • cd /path/to/cartool
  • ./cartool /path/to/Assets.car /path/to/outputDirectory
104
Lewis42

Exécutez assetutil d’Apple:

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

vous obtiendrez une description JSON de chaque élément du fichier. Quelque chose comme ça:

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

Notez la ligne "SizeOnDisk" : 10822.

Cet outil effectue une manipulation .car limitée, lancez man assetutil pour plus de détails.


Assets.car semble être une archive propriétaire d’Apple, apparue pour la première fois dans iOS 7. Quelques utilitaires sont capables d’en extraire le contenu à l’aide de la classe privée CUICatalog du framework CoreUI:

Il existe également une application qui lit les fichiers .car: crunch 9 $, essai de 15 jours

Fonctionnement strings Assets.car revenu

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

L'exécution de find à l'intérieur de Xcode-beta a renvoyé /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogTool, qui est un exécutable de simulateur (i386 + x86_64). Vous n’avez pas cherché plus loin, mais je parie que cet outil pourrait ouvrir des archives .car si vous l’exécutiez dans le simulateur.

53
Jano

Si vous souhaitez parcourir et extraire les catalogues d'actifs, vous pouvez également utiliser mon application Asset Catalog Tinkerer

Asset Catalog Tinkerer screenshot

46
Guilherme Rambo

Les binaires universels semblent contenir plusieurs résolutions d'image pour chaque densité d'écran.

Une fois l'application téléchargée sur l'App Store, la taille du fichier sera inférieure à celle de votre binaire universel, car chaque appareil n'obtiendra que les densités d'images appropriées.

Vous pouvez vérifier la taille des fichiers ici: iTunes Connect> Mes applications> Votre application> Activité> Votre construction> Taille du fichier de l'App Store

0
RhodanV5500

Guilherme Rambo a déclaré est correct, pas le Lewis42.

Supposons un fichier pdf ('a.pdf') dans Asserts.car.

Vous obtiendrez trois fichiers png (a.png/a @ 2x.png/a @ 3x.png) si vous utilisez cartool, le format du fichier a été modifié.

Toutefois, si vous utilisez AssetCatalogTinkerer, vous pouvez prévisualiser le fichier a.pdf (aucun format de fichier modifié).

0
J.Caspar