精华内容
下载资源
问答
  • iOS 安装包瘦身

    2019-08-02 16:14:08
    缩减iOS安装包大小是很多中大型APP都要考虑的问题,一般首先会对资源文件进行处理,压缩图片和音频资源,去除不必要的资源。这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的...

    缩减iOS安装包大小是很多中大型APP都要考虑的问题,一般首先会对资源文件进行处理,压缩图片和音频资源,去除不必要的资源。这些资源优化做完后,我们还可以尝试对可执行文件进行瘦身,项目越大,可执行文件占用的体积越大,又因为App Store会对可执行文件加密,导致可执行文件的压缩率低,压缩后可执行文件占整个APP安装包的体积比例大约有80%~90%,还是挺值得优化的。

    1 安装包组成

    谈到 App 瘦身,最直接的的方法就是先查看一个安装包内部结构,了解其每一部分的性质和来源如下图。解压一个 ipa 包,拿到其 payload 中 app 文件的数据,整理归类后其大致如下:

     

    1. Exectutabe: 可执行文件
    2. 图片资源:Assets.car/bunde/png/jpg 等
    3. 静态网页资源:htm/css/js 等
    4. 视图资源:xib/storyboard 等
    5. 其他:文本/字体/证书 等
    6. Framework:项目中使用的动态库

    2 可瘦身资源

    2.1 Framework瘦身

    项目中多少都会引入一些第三方静态库,比如项目中引入了第三方分享库,通过lipo工具可以查看支持的指令集,比如查看微信SDK

     

    其中i386,x86_64,是模拟器的指令集么,去掉后无法模拟器调试, 但是不影响真机调试,可以考虑去掉 armv7可以兼容armv7s,armv7s也可以删了,只保留armv7和arm64

     

    2.2 编译器优化

    Xcode 支持编译器层面的一些优化优化选项,可以让我们介于 更快的编译速度 、 更小的二进制大小 和 更快的执行速度 之间自由选择想要进行的优化粒度;

    在Xcode中,使用 Clang 来编译Objective-C,可以在 Build Setting -> Apple Clang - Code Generation ->Optimization Level 设置,Release下为 Fastest Smallest[-Os] 。编译器会开启除了会明显增加包大小以外的所有优化选项;

    在Xcode中,使用 SwiftLang 来编译Swift语言,同样也是基于 LLVM 后端的。Xcode 9.3 版本之后可以在Build Setting -> Optimization Level 设置,Release下为 Optimize for Speed[-O] ,这可能会增加安装包大小

    2.3 图片资源瘦身

    2.3.1 compress PNG Files

    Compress PNG Files:打包的时候自动对图片进行无损压缩,使用的工具为 pngcrush,压缩比还是相当高的,比较流行的压缩软件 ImageOptim 也是使用 pngcrush 进行压缩 PNG 的。

    Remove Text Medadata From PNG Files:能帮助我们移除 PNG 资源的文本字符,比如图像名称、作者、版权、创作时间、注释等信息。

    项目引进的 PNG 资源都是自动被 Xcode 进行压缩了,所以完全不需要自己再去用工具压缩一遍。当除非你是使用 bundle 管理的资源,因为 bundle 是直接拷贝进项目,并不会被 Xcode 进行压缩;JPG 或者其他类型的图片资源可以使用 ImageOptim 进行无损压缩然后导入到 Xcode 中,为了提高效率建议还是提供 PNG 格式的图片。

     

     

    2.3.2 去除冗余图片资源

    未使用的资源可以使用脚本来进行删除。可使用 FengNiao 来自动删除图片,FengNiao 是命令行工具,我们可以给 Xcode 添加 Run Script,在每次构建的时候自动检测/清理未使用的资源。

    展开全文
  • iOS 安装包瘦身的方法

    2018-02-11 13:17:17
    讲述iOS 安装包瘦身的有效的解决方案,为iOS程序开发者提供有效的帮助
  • iOS安装包瘦身

    2018-07-12 05:24:36
    最近打包应用时候发现个问题,同样的代码两个应用竟然打出来安装包大小不一样,一个拼车网26.4Mb, 另一个顺风车无论怎么对图片压缩打出来的包还是有33.9Mb 这么大,我查看了两个项目用到的第三方库和图片资源都是一样的...

    最近打包应用时候发现个问题,同样的代码两个应用竟然打出来安装包大小不一样,一个拼车网26.4Mb, 另一个顺风车无论怎么对图片压缩打出来的包还是有33.9Mb 这么大,我查看了两个项目用到的第三方库和图片资源都是一样的,因为这是两个功能完全一样的马甲包,除了首页UI 样式不一样.

    在我打包的时候发现了拼车网只支持 arm64位的 cpu 架构,而顺风车同时支持 armv7和 arm64两种 cpu 架构,这大概就是两个安装包大小差别这么大的原因吧.笔者果断将顺风车 Xcode Build Settings 里的 Build Active Architecture Only设置为 YES,这样不论 debug 还是 release 都设置成 YES 只会打包 arm64 和 x86_64 这两种 cpu 架构的二进制文件

    由于笔者的项目最低支持 iOS10 所以 arm64架构完全支持市面上 iPhone X iPhone8 以及 iPhone5s 等所有64位的机型.

    设置完毕后重新对顺风车代码进行打包,得到的安装包大小为

    笔者项目采用组件化开发,并对一些第三方 SDK打包成动态库,所有的动态库 framework 的二进制文件都支持 i386 armv7 arm64 x86_64四种 cpu 架构,所以对项目打包时候,可以采用 Build Active Architecture Only = YES 使打包出来的二进制可执行文件只采用 arm64这种架构.

    好了,我是大兵布莱恩特,欢迎加入博主技术交流群,iOS 开发交流群

    转载于:https://juejin.im/post/5b46e60bf265da0f47350bb8

    展开全文
  • IOS安装包瘦身

    2015-07-07 18:14:47
    最近公司的上一个版本发布之后,突然心血来潮,一直对于公司开发的两个客户端的ipa大小耿耿于怀,所以想着对公司的项目进行一次瘦身,首当其冲的必然是图片了。 图片瘦身 工具: 第一步:...

    最近公司的上一个版本发布之后,突然心血来潮,一直对于公司开发的两个客户端的ipa大小耿耿于怀,所以想着对公司的项目进行一次瘦身,首当其冲的必然是图片了。

    1. 图片瘦身
      工具:ImageOptim
      第一步:https://imageoptim.com/xcode.html
      第二步:基于上面的工具的压缩之后,对比了xcode自身的图片压缩和上面的工具的性能对比之后,你可以选择把xcode 的默认图片压缩给管了。
      这里写图片描述

      这里写图片描述
      第三步:为了长期的保证图片的压缩,你可以选择安装xcode 的插件
      https://github.com/yeahdongcn/RSImageOptimPlugin
      根据提示开机自动压缩模式,对于原有的工程可以先来一次压缩。

    对于公司的两个项目压缩之后的效果大概是这样的:
    项目A原来打包出来是:15.4M,用工具优化过之后是:12.8M
    项目B原来打包出来是:20.3M,用工具优化过之后是:15.8M

    展开全文
  • iOS安装包瘦身指南

    2016-11-14 16:00:13
    Apple对安装包的大小有严格的限制,当然4亿位的大小对我们来说是很宽泛的,但是对用户来说就完全不是那回事了!所以在保证App的正常性能的前提下,安装包能小则小!下面这篇文章,作者从多...)第七章:iOS安装包瘦身

    Apple对安装包的大小有严格的限制,当然4亿位的大小对我们来说是很宽泛的,但是对用户来说就完全不是那回事了!所以在保证App的正常性能的前提下,安装包能小则小!下面这篇文章,作者从多个方面讲解了如何对App的安装包进行瘦身以及常用工具的使用,强力推荐!(ps:笔者之前找了很久都没找到很详细的瘦身教程,这篇文章也是在唐巧的技术博客中看到的,这里笔者也来引用转载一番,嘿嘿!)

    第七章:iOS安装包瘦身指南

    展开全文
  • iOS安装包瘦身小记

    2019-04-20 15:50:48
    一、安装包组成分析 1、组成情况 ​ 将IPA包修改后缀名为ZIP,解压缩后,获取payload中的App文件,查看App文件的内容,你会发现该文件主要包含以下内容 Exectutable: 可执行文件 Resources:资源文件 图片资源:...
  • iOS安装包瘦身方法?

    千次阅读 2017-02-25 22:28:14
    一、删除无用资源 删除1x图片,无需适配iPhone4以下机型 现在应该没有APP需要支持iPhone4以下的机型了,所以1X的图片可以全部删掉。3X的图片是保留还是删掉看具体情况。...iOS安装包瘦身指南
  • 在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100M。对于超过100M的...
  • iOS 安装包瘦身 (上篇)

    千次阅读 2018-09-18 13:19:35
    谈到 App 瘦身,最直接的想法莫过于分析一个安装包内部结构,了解其每一部分的来源。解压一个 ipa 包,拿到其 payload 中 app 文件的数据,整理归类后其大致如下:Exectutable: 可执行文件Resources:资源文件图片...
  • 先看下Apple对安装包大小的限制: 资源优化 1.删除无用资源 解压ipa文件,检查是否有无用资源存在。 现在应该没有APP需要支持iPhone4以下的机型了,所以1X的图片可以全部删掉。3X的图片是保留还是删掉看具体...
  • iOS微信安装包瘦身 ,目前只有思路没有现成的工具。 2.4.2.3. 基于源码扫描 一般都是对源码文件进行字符串匹配。例如将 A *a、[A xxx]、NSStringFromClass("A")、objc_getClass("A") 等归类为使用的类,@interface A...
  • ios 安装包瘦身之 编译选项优化

    千次阅读 2016-09-29 10:40:00
    优化编译选项 1、BuildSettings->Optimization Level,Xcode默认设置为“Fastest ,Smallest”,保持默认即可。...http://www.infoq.com/cn/articles/ios-thinning-delete-unnecessary-mach-o
  • iOS 应用安装包瘦身

    2019-09-04 19:29:59
    iOS 安装包瘦身 1、App Thinning 苹果针对安装包已经做了三个层面的瘦身工作。 1.1 App Slicing 我们打包时,常选择arm64、armv7s 等架构支持。但是上传苹果应用商店后,他为我们的应用安装包针对不同的机型架构,...
  • 关于iOS安装包瘦身

    2019-03-13 10:57:38
    一、IPA包分析 1、生产ipa包的流程: 1)Product->Archive 2)Distribute App 3)Development ...2)进入Payload文件夹,可以看见相应的应用,右键显示包内容,就可以看见安装包的各部分组成 ...
  • iOS微信安装包瘦身

    2015-09-23 15:29:19
    iOS微信安装包瘦身 原创 2015-09-21 Dreaming WeMobileDev 前提 微信经过多次版本迭代,产生不少冗余代码和无用资源。之前微信也没有很好的手段知道哪个模块增量多少。另外去年10月微信开始做ARC支持,...

空空如也

空空如也

1 2 3 4 5 6
收藏数 115
精华内容 46
关键字:

ios安装包瘦身