https://my.oschina.net/ilrrong/blog/800923

最近用Swift对以前写的一个应用进行重写,使用了Swift和Objective-C的混编,提交审核后发现比以前大了很多,采用纯Objective-C的包是5.5MB,而采用Swift和Objective-C混编的包是15.1MB,足足大了9.6MB。 对比后发现混编的包里多了一个Framewords的文件夹,如下图所示,2个包大小的差距应该就是这个文件夹引起的。 

不过也许这不是一个大问题,因为绝大多数用户都是通过Wi-Fi来下载更新的,当然,在某些网络不发达的地区,这个额外增加的下载成本还是非常高的。

但我觉得苹果不至于会没发现这个问题吧,于是我做了个实现,用iTunes把ipa包下载到电脑上,结果发现下载下来的包和iTunes上展示的大小完全不一样,下载下来的ipa包才6MB,也只比采用纯Objective-C的包大了0.5MB,而iTunes页面上展示的大小却是是15.1MB,这说明了下载的ipa包是经过压缩的,我们不用担心采用Swift和Objective-C混编的包会导致用户下载的成本增大。

下载下来的包:

iTunes页面上的展示:

Swift 和 Objective-C 混编后对ipa包大小的影响的更多相关文章

  1. 减小ipa包大小

    1.删除不用的文件和图片 2.打release模式 3.色调单一图片采用8-bit的,对32-bit的图片采用压缩 4.对音视频采用aac压缩

  2. Swift _ OC _ 混编

    Swift _ OC _ 混编 在OC环境下使用Swift. GitHub源码

  3. 详解Swift和OC的混编

    前言: 我们在一些情况下,仅仅使用swift 是无法完成一个项目的,在swift项目中必要用到 OC 实现一些功能,比如,项目要使用一些第三方的框架,但这个第三方的框架却是用 OC 实现的,或者你的项 ...

  4. iOS ipa包瘦身,iOS8及以下text段超60MB

    前沿 很早之前写过一篇相关文章,不过博客主机上跑路了之后数据没了,凭着记忆补了下相关资料 ipa安装包瘦身 清理无用图片,图片压缩(PNG换WebP和JPG),处于某种不可抗拒的原因,导致有部分3X图 ...

  5. iOS 导出 ipa 包时 四个选项的意义

    iOS 导出 ipa 包时 四个选项的意义 如图  在 iOS 到处 ipa包的时候 会有四个选项 1.Save for iOS App Store Deployment 保存到本地 准备上传App ...

  6. iOS打包ipa包

    创建证书之类这里就不说了,毕竟我也没有弄过. 我是团队开发,直接给我的p12文件,去开发者中心下载provision并且是distribute的就可以了. 1>.Xcode打包: 注意两个地方都 ...

  7. 如何查看ipa包支持哪些cpu指令集

    将ipa包下载到本地 cd 到其所在目录 unzip lipo -info Moon(app名)

  8. ios app打ipa包

    在app上传到appstore之前,我们通常要经过打包测试的步骤,导出到testFlight中.或者其他第三方的平台里面进行测试,这时候就需要打包成ipa包导出.好了,废话不多说,上图.步骤如下: 1 ...

  9. 不用开发者账号打ipa包

    编译一下 , if -> Build Success  -> Show in Finder之后,将文件夹里的app直接拖入到iTunes里, 接着再iTunes里选中app -> S ...

随机推荐

  1. this指针/常函数、常对象

    this指针引入 类中对象的成员变量和成员函数是分开存储的,sizeof(空class) = 1,另外示例中涉及到字节对齐的问题,double本身的字节为8,int为4,由于字节对齐,int也为8,所 ...

  2. opencv3 使用glob遍历并修改文件名

    1.函数说明 string::find()函数:是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数也可能是长整数.如果查找成功, ...

  3. 深入浅出 Java Concurrency (33): 线程池 part 6 线程池的实现及原理 (1)[转]

    线程池数据结构与线程构造方法 由于已经看到了ThreadPoolExecutor的源码,因此很容易就看到了ThreadPoolExecutor线程池的数据结构.图1描述了这种数据结构. 图1 Thre ...

  4. Apollo Lake设计缺陷,避免使用它们

    很多经验告诉我们,在不大幅加电压超频的情况下,CPU很少会用坏.多数情况下电脑退役都是主板或其他部件故障,或是性能严重落后而不得不淘汰.但是如果CPU在制造阶段就存有缺陷的话,情况就不是这样了. 英特 ...

  5. Exit- Linux必学的60个命令

    1.作用 exit命令的作用是退出系统,它的使用权限是所有用户. 2.格式 exit 3.参数 exit命令没有参数,运行后退出系统进入登录界面.

  6. 基于 Kubernetes 实践弹性的 CI/CD 系统

    大家好,我是来自阿里云容器服务团队的华相.首先简单解释一下何为 Kubernetes 来帮助大家理解.Kuberentes 是一个生产可用的容器编排系统.Kuberentes 一方面在集群中把所有 N ...

  7. c++设计模式:适配器模式

    1.主要思想:将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.  对于不同的客户我们可以这样使用适配器模式. 2.实现方法: # ...

  8. java关键字一览表

  9. js阻止冒泡和默认事件

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Linux 命令之head, tail, tr, sort, uniq, grep

    head [filename] head -n 11 [filename] -> First 11 lines head -c 20 [filename] -> First 20 char ...