将iOS应用程序大小减少到App Store

时间:2014-05-29 16:45:27

标签: ios app-store xcode5

我正在尝试在App Store中提交应用程序,如果可能的话,我需要减少一点内存。我尝试了一种方法,我将在下面描述,以使我的应用程序更轻,但没有运气。

详细

我按照这些步骤查看导致此大尺寸的原因

  1. 制作项目档案
  2. 分发
  3. 保存企业版或专案部署
  4. 选择.ipa文件并将扩展名更改为.zip
  5. 解压缩,然后打开Payload
  6. 显示包装内容
  7. 内容

    我有.png个文件,其中包含680 Kb(当我添加大约32 kb的文件时),我删除了它们,并将应用程序的大小减少了 2 MB 。除了一个大约占.ipa's大小的90%的可执行文件外,还有其他文件占用空间但不是很大。

    问题

    是否可以减少可执行文件的大小?如果没有,那么你可以给我一个提示,我应该看看我的应用程序在大小方面更轻。

    P.S我使用第三方库,如Vuforia SDK GitHUB

    上的库

6 个答案:

答案 0 :(得分:4)

  

如何减少此可执行文件的大小

您无法减少构建的应用包中的可执行文件的大小。这是你的代码!减小尺寸的唯一方法是:

  • 剪切代码。显然,您无法做到这一点,因为您会排除使您的应用有效的功能。

  • 删除架构切片。你不应该这样做,因为你想为所有可能的架构构建。

话虽如此......我已经从未在app附近的任何地方生成了一个可执行文件。也许你在衡量/建立错误:

  • 确保您正在存档。除档案外,其他任何内容都无法衡量。

  • 确保在存档时生成发布版本。

  • 确保您的发布版本设置包含完整的编译器优化(最小,最快)。

答案 1 :(得分:2)

建议如何从Reducing the size of my App减少二进制文件大小:

  

编译器选项

     

将优化级别构建设置设置为最快,最小[-Os];并且在复制构建设置为“是”(COPY_PHASE_STRIP = YES)期间的“条带调试符号”可以显着降低已编译二进制文件的大小。这些设置是"发布"的默认设置。 Xcode项目中的配置。

答案 2 :(得分:1)

资产几乎总是大型应用程序大小的罪魁祸首。

如果您存档应用并导出IPA,您可以通过更改扩展名将其转换为.zip,然后解压缩并查看包的内容。

如果按文件大小排序,您将看到哪些文件最大。请记住,透明度较高的图像。

还有更多见解:http://bjango.com/articles/pngcompression/

答案 3 :(得分:1)

如果您真正关注可执行文件的内部,请使用链接映射进行构建。它按段和符号显示大小。

e.g。

# Sections:
# Address   Size        Segment Section
0x0000AB90  0x00711D30  __TEXT  __text
0x0071C8C0  0x00028D34  __TEXT  __symbol_stub4
0x007455F4  0x00001A58  __TEXT  __stub_helper
0x0074704C  0x00057452  __TEXT  __cstring

[...]

# Symbols:
# Address   Size        File  Name
0x000122A0  0x00000020  [  6] ___Block_byref_object_copy_
0x000122C0  0x0000001C  [  6] ___Block_byref_object_dispose_
0x00012320  0x00000028  [  6] ___copy_helper_block_78
0x00012348  0x0000001C  [  6] ___destroy_helper_block_79

[...]

答案 4 :(得分:1)

我在网络上遇到了article,其中解释了以下9点的过程:

  
      
  1. 确保您已达到iOS剥离的最高级别   有关iOS剥离的更多信息,请参阅此帖。

  2.   
  3. 启用bitcode会增加无线下载的大小。   在我们的例子中,它是130到70MB之间的差异。如果你希望   关闭bitcode,你可以在你的xcode项目中,或使用   post build属性,例如这个。

  4.   
  5. xcode项目中的启动图像未经过优化。在跑步的时候   通过压缩算法的东西不起作用,因为Unity   在没有太多压缩的情况下解压缩和存储图像   减少启动时间,它确实适用于启动图像   项目生成后由Untiy生成。运行所有图像   通过无损压缩算法,以节省几MB   (在我们的案例中为10)。

  6.   
  7. 如果这还不够,就该开始查看资产日志了。   在Unity中运行您的构建并打开编辑器日志,就是这样   控制台首选项旁边的可笑小图标。在我们的例子中,   它们已经过优化。我们拥有111MB的未压缩资产   能够实现70MB的无线大小。浏览每个资产   并将分辨率更改为您的最低质量   用户不会注意到。最佳压缩设置是适用于iOS的PVRTC。   当你在它时,请查看资源检查器以查看大   纹理在内存中。降低对这些的分辨率也将   减少构建大小以及内存消耗。另外,请使用   精灵地图集 - 你会看到它的奇迹!

  8.   
  9. 检查项目中未使用的库或库   使用太多空间来实现其功能。命令如df   和ls -lh可能在这里有用,在你的项目文件中运行它们   并查看哪些文件确实突出,需要缩小尺寸。   请记住,这些单独的库不一定有   与纹理相同的构建效果 - 通常,这些都是编译的   对于多种体系结构,如果一个库是20MB,它通常是   由于这一事实,仅影响您的构建大小约6MB   库通常包括对i386,arm64和arm7的架构支持   在同一个图书馆

  10.   
  11. 检查您的iOS项目中是否包含/ Plugins / Android。   有关详细信息,请参阅此帖子。

  12.   
  13. 确保您的构建设置中没有任何未使用的场景。

  14.   
  15. 构建项目,并在提交之前检出存档   iTunes Connect。您可以点击“产品 - >”进行操作归档”,   让它存档,当它完成时,“窗口 - >组织者“流行   在此界面中找到构建位置。

         

    在“Products / Applications / game.app”下运行mv命令转动你的   .app进入一个可浏览的目录。在这个目录中你就可以了   看到我们做过的很多东西,也找到了更多灵感   你可以做的事情。

  16.         

    现在,还有很多东西可能会导致更大的东西   预期的构建规模,我相信你可以做更多的事情   也要低于它。

如果您想添加到此列表中,或者有其他问题(我通常乐意回答问题),请在下面留下您的具体用例评论,我会尽力帮助您!

一切顺利,

皮姆

答案 5 :(得分:0)

如果您已经检查了所有资产(图像,音频等等),只需检查您是否需要在应用中导入的所有外部库(iOS sdk中的第三方库)。