分析 iOS 中的 Assets.car 文件

2024-02-10

我试图减少 iOS 应用程序的整体大小,目前为 48MB。当我分析子文件夹时,我发现 Assets.car 占用了 41MB。我无法打开并查看哪个占用了那么多空间。

我找不到有关 Assets.car 文件的任何好的文档。有人可以建议如何查看内容吗?


运行苹果的 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 似乎是 Apple 专有的存档,首次出现在 iOS 7 中。一些实用程序能够使用私有类提取其内容CUICatalogCoreUI框架的介绍:

  • 提取物 https://github.com/bartoszj/acextract
  • 主题引擎 https://github.com/alexzielenski/ThemeEngine
  • iOS 资源提取器 https://github.com/Marxon13/iOS-Asset-Extractor
  • 资产目录修补匠 https://github.com/insidegui/AssetCatalogTinkerer

还有一个读取 .car 文件的应用程序:crunch https://pragmaticcode.com/crunch/9 美元,试用 15 天

Running strings Assets.car

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

Running find返回 Xcode-beta 内部/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Overlays/IBCocoaTouchImageCatalogTool,这是一个模拟器可执行文件(i386 + x86_64)。没有进一步调查,但我敢打赌,如果您在模拟器中运行该工具,它可以打开 .car 档案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分析 iOS 中的 Assets.car 文件 的相关文章

随机推荐

  • 使用nginx和gunicorn在django中通过ip限制对管理url的访问

    我试图通过在 nginx 中使用简单的基于主机的访问控制来限制对 django 应用程序管理部分的访问 不幸的是 nginx 似乎不遵守配置请求 这是我在 nginx 中这个特定部分的设置 gunicorn setup location p
  • C++:将指针变量传递给函数

    我有一个类节点 class Node public int item Node nextLink 在函数外部我声明一个 Node 指针 Node newNode 然后 我将此指针传递给函数 foo void foo Node node no
  • 如何在 Pandas 数据框中选择基于行的类别

    这确实微不足道 但不敢相信我已经闲逛了一个小时 仍然可以找到答案 所以在这里 df pd DataFrame cats a b vals 1 2 df cats df cats astype category df 我的问题是如何选择 ca
  • 读取接收和发送的网络流量字节

    在 Objective C 中获取网络流量发送和接收字节的最简单方法是什么 这并不容易 而且它来自 C 而不是 Objective C 但是您需要的所有信息都存储在返回给您的接口地址的 ifa data 字段中获取ifaddrs 3 您可以
  • Google 地图 API 密钥警报

    我的 Google 地图 API 密钥有问题 我收到一条警报说 This web site needs a different Google Maps API key 当我按 确定 收到警报时 地图正在加载并且工作正常 同样的问题已经发布
  • 如何向 Python shell 添加制表符补全?

    当使用启动 django 应用程序时python manage py shell 我得到一个 InteractiveConsole shell 我可以使用制表符完成等 Python 2 5 1 r251 54863 Apr 15 2008
  • Rails image_tag 旋转图像

    我使用亚马逊的 S3 进行图像存储 并配置了载波和雾 图像似乎存储正确 但是当我有 肖像 图像 宽度小于高度 时 它无法正确显示 而是将图像旋转到其一侧 任何正确方向的指示将不胜感激 上传者 image uploader rb class
  • C/C++ 处理程序 SIGFPE 是什么?

    好吧 我搜索了有关 SIGFPE 的文章 然后我写了一些测试 但它的行为很奇怪 那我只好在这里发帖寻求帮助了 GCC G 或 ISO C 是否明确定义了除以零会发生什么 1 我搜索了这篇文章 除以零不会抛出 SIGFPE https sta
  • 在 swift 3 中以编程方式设置 UIImageView AspectRatio 约束

    我在故事板中有一个 UIImageView 其 AspectRatio 为 1 1 在某些情况下我想在 ViewController 中以编程方式更改为 2 1 我在 ViewController 中创建该约束的引用 但无法设置该约束 您可
  • 使用引导工具提示进行 Javascript 验证

    当验证返回 false 时 我在启动输入字段的引导工具提示时遇到问题 更多细节 我有想法用 javascript 函数验证我的表单 这工作得很好 但是当验证错误时一定会发生一些事情 我正在考虑引导工具提示 简单 易于控制 现在对我来说是最好
  • Django ModelChoiceField 允许创建对象

    姜戈的ModelChoiceField https docs djangoproject com en 1 8 ref forms fields django forms ModelChoiceField是从模型派生表单时用于外键的默认表单
  • 当使用 unicorn 启动 Rails 时,Nginx 失败(13:权限被拒绝)

    我的 Rails 应用程序在服务器上运行Unicorn and Nginx 但是在配置Nginx并启动它之后 我收到错误 2015 08 03 15 43 44 crit 13951 0 1 stat home ec2 user apps
  • 使用 Python 从 Google Drive / Workspace 下载电子表格

    您能否生成一个 Python 示例 说明如何下载给定密钥和工作表 ID 的 Google Sheets 电子表格 gid 我不能 我已经搜索了 API 的版本 1 2 和 3 我运气不好 我无法弄清楚他们复杂的类似 ATOM 的 feed
  • 根据 pandas DataFrame 中的值序列生成索引元组

    这是我之前问题的后续 根据 pandas DataFrame 列中的值序列查找行索引 https stackoverflow com questions 61735585 finding the index of rows based on
  • 将对象插入哈希表 (C++)

    这是我第一次制作哈希表 我试图将字符串 键 与指向 Strain 类对象 数据 的指针相关联 Simulation h include
  • 细粒度的权限;主要权限——角色与权限分离;

    我在 wcf 服务中使用 PrimaryPermission 一段时间了 PrincipalPermission SecurityAction Demand 角色 SecurityRoles CanManageUsers 我们的角色前缀为
  • 如何知道我使用的是哪个 Android 支持库 v4 修订版?

    我可以在 Android SDK 管理器中看到我的计算机上安装的版本 在 Android SDK 管理器中 但通常项目使用 libs 文件夹中自己的副本 除了文件日期之外 有什么方法可以告诉我在特定项目中使用的是 android suppo
  • IntelliJ - 调试设置下一条语句?

    在 IntelliJ 中调试时如何退回到上一行 我在调试菜单或命令中没有看到任何执行此操作的内容 目前 IDEA 不支持向后调试 不过 对于 Java 调试器工具栏上有 Drop Frame 操作和按钮 它可以让您在堆栈中向上移动一帧并重新
  • 为 Objective-C 集合实现 -hash / -isEqual: / -isEqualTo...:

    Note 以下问题是相关的 但它们和链接的资源似乎都没有完全回答我的问题 特别是与实施平等测试有关对象的集合 覆盖 isEqual 和 hash 的最佳实践 https stackoverflow com questions 254281
  • 分析 iOS 中的 Assets.car 文件

    我试图减少 iOS 应用程序的整体大小 目前为 48MB 当我分析子文件夹时 我发现 Assets car 占用了 41MB 我无法打开并查看哪个占用了那么多空间 我找不到有关 Assets car 文件的任何好的文档 有人可以建议如何查看