Analysing Assets.car file in iOS

后端 未结 6 442
青春惊慌失措
青春惊慌失措 2020-11-30 18:30

I have trying to reduce the overall size of my iOS application which is currently 48MB. When I analyze sub folders, I found Assets.car is taking 41MB. I am not able to open

6条回答
  •  孤独总比滥情好
    2020-11-30 19:17

    Run Apple’s assetutil:

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

    you’ll get a JSON description of each item in the file. Something like this:

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

    Note the line "SizeOnDisk" : 10822.

    This tool performs limited .car manipulation, run man assetutil for details.


    The Assets.car seems to be a proprietary Apple’s archive that first appeared in iOS 7. A few utilities are able to extract its contents using the private class CUICatalog of the CoreUI framework:

    • acextract
    • ThemeEngine
    • iOS Asset Extractor
    • Asset Catalog Tinkerer

    There is also an app that reads .car files: crunch 9$, 15 day trial

    Running strings Assets.car returned

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

    Running find inside Xcode-beta returned /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogTool, which is a simulator executable (i386 + x86_64). Didn’t investigate any further but I bet that this tool could open .car archives if you run it inside the simulator.

提交回复
热议问题