【问题标题】:iOS App's executable file size exceedediOS App 的可执行文件大小超出
【发布时间】:2015-03-17 07:22:38
【问题描述】:

在我的项目中,当Valid Architecturesarmv7 armv7s时,我应用的可执行文件大小为45MB。

但是,当 Valid Architecturesarmv7 armv7s arm64 时,我的应用程序的可执行文件大小为 90+ MB。

所以,当我提交我的应用程序时,我收到了一个错误

无效的可执行文件大小,您应用的可执行文件的大小 app_Name 为 94208000 字节,超过了 80MB。

我认为,如果添加arm64,代码会编译两次——一次用于 32 位架构,一次用于 64 位架构。但是可执行文件太大了。

你知道我能做些什么吗?

【问题讨论】:

  • 最上面的词是“Hi , all”,而不是“all.”,对不起。
  • 你好,JTZS。 “嗨,全部”和“全部”都不是必需的。在 Stackoverflow,我们都是友好的人,所以我们只是假设每个人都会一直说“嗨”和“谢谢”。这就是为什么我们不把它放在我们的问题和答案中。这为实际问题留下了更多空间。特别是因为您问题的前几行显示在question list 中。而且我们不想浪费宝贵的空间来打招呼。
  • @MatthiasBauch:不,而且,它会导致错误?
  • @MatthiasBauch:谢谢你的建议;
  • 您有 45MB 的可执行文件?你是怎么做到的?我的项目有 160 万行代码编译成 10MB 未剥离。

标签: ios executable arm64


【解决方案1】:

当您尝试为多种架构构建时,肯定会发生这种情况。

我刚刚找到了similar post,其中包含一些关于如何减小构建大小的好建议。请看一下。

【讨论】:

  • 对我真的很有帮助,谢谢。
  • 很高兴能帮上忙。如果它解决了您的问题,请接受此答案。
  • 我试过了。但是我的应用程序的可执行文件的大小仍然是 90+ MB。好吧,如果我们添加“arm64”,代码会编译两次,可执行文件的大小会更大。那么,苹果要我们添加“arm64”,为什么可执行文件仍然超过允许的最大大小80MB?
  • 这是一个建议。您可以编写一个网络服务,在应用程序首次启动时从网络服务器下载您的资产(可能是一些资产)。只是保持加载屏幕。稍后您可以使用文档目录中的这些资产。
  • 这是个好主意,我们做到了。我的项目有 850+ .cpp 和 .mm 文件,所以它导致可执行文件的大小为 40+ MB。如果添加“arm64”,它将是 90+ MB。那么,可执行文件的大小为 90+MB 是正常的,还是我的应用程序支持 64 位操作没有完成?
【解决方案2】:

您可以放弃对armv7s 的支持。所有这些设备都可以使用armv7 切片。它不再需要,并且默认情况下不包含在 Xcode 6 的设置中。

【讨论】:

  • 谢谢,但 Apple 表示:“正如我们在 10 月宣布的那样,从 2015 年 2 月 1 日开始,提交到 App Store 的新 iOS 应用程序必须包含 64 位支持并使用 iOS 8 SDK 构建。从 2015 年 6 月 1 日开始,应用程序更新也需要遵循相同的要求。所以,我的项目必须支持 64 位。
  • 是的。 armv7s 只是另一个 32 位架构。在我的项目中,我正在做armv7arm64。因此,如果您删除armv7s,您将节省大量空间。
  • 我试过你的方法,我删除了'armv7s',但它并没有节省很多空间,这个应用程序的可执行文件直到90+ MB。
猜你喜欢
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2010-10-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多