Skip to content
forked from zyangSir/iSee

iSee is a mac tool which could help iOS developer analyse the size that each Class occupied in the final ipa file.

Notifications You must be signed in to change notification settings

dishibolei/iSee

 
 

Repository files navigation

导读 为了方便对linkMap做解析,参考zyangSir的iSee工程,做了linkMap文件解析的工具,欢迎使用。

ios包大小分析工具iSee

简介

iSee是一款分析iOS可执行文件成分的工具,通过加载XCode在项目编译期间产生的linkMap文件,能够输出项目中每个类(包括第三方静态库),在最终可执行文件中占用的长度信息。本工具根据zyangSir的代码做了部分修改。主要功能有:

  1. 各个可执行文件占用大小
  2. 可执行文件中,各个段占用的大小(包括方法+常量字符串等)
  3. 未使用到的类
  4. 未使用到的方法

iSee_detai

使用方法

建议使用真机生成的文件测试,目前看对arm64架构支持最好。优先使用arm64相关文件检测。

导出生成linkmap文件

  1. 在XCode编译选项中打开"WriteLinkMapFile" image

  2. 选择好真机/模拟器,Debug/Release。编译项目,进入项目的Derived Data目录
    image

  3. 依次进入Build/Intermediates/项目名.build/ 目录, 找到相应模式下的编译产物文件夹 image

  4. 可以看到一个名为 项目名-LinkMap-normal-CPU架构.txt的文件,在iSee中点击linkMap文件按钮,导入这个文件

导出生成的可执行文件

  1. 在上一步的Derived Data目录下,

    image

    看到.app结尾的文件,邮件显示包内容,找到和工程名称一样的一个可执行文件,把这个文件copy到相关目录 image

  2. 在iSee中点击可执行文件,导入刚才的文件

  3. 之后程序会自动执行分析。

简单说明

  1. 现在对arm64支持比较好,所以建议用这个格式测试。
  2. 对于未使用方法和未使用类,使用otool工具来做辅助分析
  3. 未使用方法和未使用类,有误报可能,主要误报的是一些实现协议的类,这一部分是动态使用的,所以静态分析不出来。

详细技术细节可以参考我的博客: https://dishibolei.github.io/

About

iSee is a mac tool which could help iOS developer analyse the size that each Class occupied in the final ipa file.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Objective-C 100.0%