切换到 Xcode 7 后,应用程序大小从 9 MB 增长到 60 MB,有解决办法吗?

2024-05-30

我一直在回顾 Git 历史来寻找文件大小发生巨大变化的原因,但我能找到的唯一真正原因是从 Xcode 6 切换到 Xcode 7 GM。

我发现这些是文件大小贡献最大的 10 个.ipa创建自Archive操作在一个Release构建配置:

$ unzip -lv Roger\ Release.ipa | sort -k +3nr | head
41802768  Defl:N 16887199  60%  09-14-15 23:47  dc24cdc1  Payload/Roger.app/Frameworks/libswiftCore.dylib
41802400  Defl:N 16886076  60%  09-06-15 18:33  f939ea6a  SwiftSupport/iphoneos/libswiftCore.dylib
11184032  Defl:N  5915625  47%  09-14-15 23:48  6ceac4a2  Payload/Roger.app/Roger
 6399584  Defl:N  2670275  58%  09-14-15 23:47  0ac52d3f  Payload/Roger.app/Frameworks/libPhoneNumber_iOS.framework/libPhoneNumber_iOS
 5410384  Defl:N  2334189  57%  09-14-15 23:47  7a8cb03f  Payload/Roger.app/Frameworks/Alamofire.framework/Alamofire
 4521904  Defl:N  2292789  49%  09-14-15 23:47  95da0882  Payload/Roger.app/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit
 4731552  Defl:N  1926357  59%  09-14-15 23:48  e05337de  Payload/Roger.app/Frameworks/libswiftFoundation.dylib
 4731168  Defl:N  1925355  59%  09-06-15 18:33  19a5c3c4  SwiftSupport/iphoneos/libswiftFoundation.dylib
 2659232  Defl:N  1232897  54%  09-14-15 23:47  1a53a401  Payload/Roger.app/Frameworks/AFNetworking.framework/AFNetworking
 1196624  Defl:N   545343  54%  09-14-15 23:47  19a063cb  Payload/Roger.app/Frameworks/Bolts.framework/Bolts

到目前为止最大的文件是两个(略有不同)libswiftCore.dylib文件,总计超过 32 MB。在 Xcode 6 构建的包中,这两个文件总共只有 3 MB。

所以问题#1 是:为什么 Swift 核心文件有两次? (嵌入内容包含 Swift 代码被设定为No).

问题#2 是:发生了什么?为什么 Swift 核心大小增加了 15 MB?这是永久的吗?

一些附加说明:

  • 这是一个完全是 Objective-C 的项目,但现在主要是 Swift。这定义模块设置被设置为Yes.
  • 该项目使用 CocoaPodsuse_frameworks! set.
  • 我已经确认了 TestFlight 在多个设备和 iOS 版本上的实际下载大小,其范围在 30-60 MB 之间(大概差异是由于应用程序切片造成的)。以前是 9 MB。

最有可能是由 BitCode 引起的,我看到了同样的增长,但是一旦从 App Store 部署,应用程序的大小实际上并没有增长。

您也可以在应用程序和其他目标中禁用 BitCode,您应该会看到收缩。

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

切换到 Xcode 7 后,应用程序大小从 9 MB 增长到 60 MB,有解决办法吗? 的相关文章

随机推荐

  • 基于连接表的 Django 过滤器

    我有两张桌子 class Client models Model name models TextField lastname models TextField class Meta managed False db table clien
  • MVC 4 - 如何关闭默认的 Error.vbhtml 页面?

    有人知道如何关闭默认错误页面或它的引用位置吗 好吧 我想通了 事实证明 在我的自定义 ElmahHandleErrorAttribute 类中 OnException 方法确实被重写了 应该如此 但第一行代码是 MyBase OnExcep
  • aspx页面中的if语句

    我想在我的网站上编写一个基本的 if 语句 以根据变量是否设置为 true 来显示项目 1 或项目 2 我对 NET 不太熟悉 需要一些关于如何让 if 语句在 aspx 页面上工作的基本结构的帮助 如果目的是显示或隐藏页面的一部分 那么您
  • 单独的数据间隔 bootstrap 轮播 4

    我想为 Bootstrap 4 轮播上的每张幻灯片设置单独的数据间隔 我尝试了一些其他的 javascript 片段 但是它们似乎不适用于我的代码 例如Bootstrap 4 轮播堆栈溢出 https stackoverflow com q
  • Mac psql/readline - 库未加载

    我正在 Mac Sierra 10 12 3 上工作 并且尝试通过以下方式访问 PostgreSQL 数据库psql命令 但它引发了错误 dyld Library not loaded usr local opt readline lib
  • Codeigniter $this->db->reconnect();用法

    I m not自动加载数据库 因为我的应用程序的大多数页面don t需要数据库处理 否则整个事情会变慢 我想要做的是 当数据库已经存在时 不要建立与数据库的新连接 而是使用它而不是打扰服务器数据库 那么我该如何实施 this gt db g
  • std::__gcd 和 std::gcd 有什么区别?

    Many https www geeksforgeeks org stdgcd c inbuilt function finding gcd websites https codeforces com submissions Madiyar
  • 如何在不更改列的情况下将数据框中所有行的值连接成一行?

    我有一个数据框输入 如下所示 col1 col2 col3 0 3 1 NaN 1 NaN 7 8 如何塌陷all行 同时将行中的数据与 所需的数据帧输出 col1 col2 col3 0 3 1 7 8 输入代码示例 import pan
  • tkinter 列配置和行配置

    我想了解 tkinter 中网格布局的一些内容 假设如果有额外空间 我希望第 1 行中的第 1 列展开 但第 2 行中的第 1 列不展开 我该怎么办 widget columnconfigure 让您可以控制所有列 但无法指定行 你无法准确
  • 标记个体内事件发生后发生的日期

    我有一组长格式的数据 每人几行 人 id 其中事件 事件 1 应该只发生一次 事件发生后 该人不应再有任何数据 如果事件发生后出现任何记录 我想使用名为 flag flag 1 的新变量创建一个查询 例如 下面标记了 id 5 因为在该人的
  • 将 next.js 与纱线工作区结合使用

    今天遇到了这样的项目结构的复杂情况 packages app pages package json ui kit pages package json shared babelrc package json root lvl 包 json
  • 排除 tsconfig.json 中的子目录

    我已经安装了 TypeScript 1 8 2 并使用 Visual Studio 2015 我有一个简单的项目 在从 tsconfig json 文件中排除文件夹时遇到问题 问题是我想排除文件typings browser d ts 和文
  • 枚举类型的 JAXB 元素

    所以我知道如何创建枚举类型 但是当我为其设置元素类型时 元素字段将只是字符串类型 而不是枚举类型 如何在我的模式中创建枚举并让 JAXB 将其生成为 java 枚举类型 这就是我创建枚举类型和元素的方式
  • require('babel/register') 不起作用

    我在客户端上有一个用 ES6 编写的同构应用程序Babel 转译器 http babeljs io 我希望我的 Express 服务器具有与客户端代码相同的 ES6 语法 很遗憾require babel register 不起作用 服务器
  • 使用 iv_load_policy=3 删除 Youtube 注释

    我正在追加iv load policy 3到我的 YouTube URL 末尾以删除视频上的注释 但我发现它不起作用 看看谷歌 这个问题似乎在一年前就已经解决了 我想知道是否有人知道这个错误是否又回来了或者是否有解决方法 我在Win7上的C
  • ZMQ:XPUB 套接字上没有多个订阅者的订阅消息(最后值缓存模式)

    我实现了 ZMQ 的最后值缓存 LVC 示例 http zguide zeromq org php chapter5 Last Value Caching http zguide zeromq org php chapter5 Last V
  • 如何在 Swift 中退出“DispatchQueue.main.asyncAfter”

    我想在调用 deinit 时退出 DispatchQueue main asyncAfter 子视图 swift DispatchQueue main asyncAfter deadline now 5 0 self doSomething
  • 重新定位时 Mapbox 默认的 compassView 会给出奇怪的结果

    我遇到一种情况 必须将地图框罗盘视图重新定位到不同的位置 当我以其他点作为其 compassView 轴旋转地图时 compassView 现在正在旋转 并给了我一个奇怪的结果 附截图 黑色mapBox默认罗盘图标是旋转的 参考截图 这是
  • PHP中如何处理大于16位的值?

    我正在使用 SOAPclient 调用一个方法 该方法 远程外部 SOAP Web 服务 向我返回一个 19 位数字 我无法控制退回的内容 当我打印这个数字的值时 只有前 16 位数字是准确的 我尝试过类型转换 GMP 等 但是当 php
  • 切换到 Xcode 7 后,应用程序大小从 9 MB 增长到 60 MB,有解决办法吗?

    我一直在回顾 Git 历史来寻找文件大小发生巨大变化的原因 但我能找到的唯一真正原因是从 Xcode 6 切换到 Xcode 7 GM 我发现这些是文件大小贡献最大的 10 个 ipa创建自Archive操作在一个Release构建配置 u