我正在尝试在App Store中提交应用程序,如果可能的话,我需要减少一点内存。我尝试了一种方法,我将在下面描述,以使我的应用程序更轻,但没有运气。
我按照这些步骤查看导致此大尺寸的原因
.ipa
文件并将扩展名更改为.zip
我有.png
个文件,其中包含680 Kb
(当我添加大约32 kb的文件时),我删除了它们,并将应用程序的大小减少了 2 MB 。除了一个大约占.ipa's
大小的90%的可执行文件外,还有其他文件占用空间但不是很大。
是否可以减少可执行文件的大小?如果没有,那么你可以给我一个提示,我应该看看我的应用程序在大小方面更轻。
P.S我使用第三方库,如Vuforia SDK和 GitHUB
上的库答案 0 :(得分:4)
如何减少此可执行文件的大小
您无法减少构建的应用包中的可执行文件的大小。这是你的代码!减小尺寸的唯一方法是:
剪切代码。显然,您无法做到这一点,因为您会排除使您的应用有效的功能。
删除架构切片。你不应该这样做,因为你想为所有可能的架构构建。
话虽如此......我已经从未在app附近的任何地方生成了一个可执行文件。也许你在衡量/建立错误:
确保您正在存档。除档案外,其他任何内容都无法衡量。
确保在存档时生成发布版本。
确保您的发布版本设置包含完整的编译器优化(最小,最快)。
答案 1 :(得分:2)
建议如何从Reducing the size of my App减少二进制文件大小:
编译器选项
将优化级别构建设置设置为最快,最小[-Os];并且在复制构建设置为“是”(COPY_PHASE_STRIP = YES)期间的“条带调试符号”可以显着降低已编译二进制文件的大小。这些设置是"发布"的默认设置。 Xcode项目中的配置。
答案 2 :(得分:1)
资产几乎总是大型应用程序大小的罪魁祸首。
如果您存档应用并导出IPA,您可以通过更改扩展名将其转换为.zip,然后解压缩并查看包的内容。
如果按文件大小排序,您将看到哪些文件最大。请记住,透明度较高的图像。
答案 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点的过程:
确保您已达到iOS剥离的最高级别 有关iOS剥离的更多信息,请参阅此帖。
启用bitcode会增加无线下载的大小。 在我们的例子中,它是130到70MB之间的差异。如果你希望 关闭bitcode,你可以在你的xcode项目中,或使用 post build属性,例如这个。
xcode项目中的启动图像未经过优化。在跑步的时候 通过压缩算法的东西不起作用,因为Unity 在没有太多压缩的情况下解压缩和存储图像 减少启动时间,它确实适用于启动图像 项目生成后由Untiy生成。运行所有图像 通过无损压缩算法,以节省几MB (在我们的案例中为10)。
如果这还不够,就该开始查看资产日志了。 在Unity中运行您的构建并打开编辑器日志,就是这样 控制台首选项旁边的可笑小图标。在我们的例子中, 它们已经过优化。我们拥有111MB的未压缩资产 能够实现70MB的无线大小。浏览每个资产 并将分辨率更改为您的最低质量 用户不会注意到。最佳压缩设置是适用于iOS的PVRTC。 当你在它时,请查看资源检查器以查看大 纹理在内存中。降低对这些的分辨率也将 减少构建大小以及内存消耗。另外,请使用 精灵地图集 - 你会看到它的奇迹!
检查项目中未使用的库或库 使用太多空间来实现其功能。命令如df 和ls -lh可能在这里有用,在你的项目文件中运行它们 并查看哪些文件确实突出,需要缩小尺寸。 请记住,这些单独的库不一定有 与纹理相同的构建效果 - 通常,这些都是编译的 对于多种体系结构,如果一个库是20MB,它通常是 由于这一事实,仅影响您的构建大小约6MB 库通常包括对i386,arm64和arm7的架构支持 在同一个图书馆
检查您的iOS项目中是否包含/ Plugins / Android。 有关详细信息,请参阅此帖子。
确保您的构建设置中没有任何未使用的场景。
- 醇>
构建项目,并在提交之前检出存档 iTunes Connect。您可以点击“产品 - >”进行操作归档”, 让它存档,当它完成时,“窗口 - >组织者“流行 在此界面中找到构建位置。
在“Products / Applications / game.app”下运行mv命令转动你的 .app进入一个可浏览的目录。在这个目录中你就可以了 看到我们做过的很多东西,也找到了更多灵感 你可以做的事情。
现在,还有很多东西可能会导致更大的东西 预期的构建规模,我相信你可以做更多的事情 也要低于它。
如果您想添加到此列表中,或者有其他问题(我通常乐意回答问题),请在下面留下您的具体用例评论,我会尽力帮助您!
一切顺利,
皮姆
答案 5 :(得分:0)
如果您已经检查了所有资产(图像,音频等等),只需检查您是否需要在应用中导入的所有外部库(iOS sdk中的第三方库)。