错误 itms-90122 - 无效的可执行文件大小

Posted

技术标签:

【中文标题】错误 itms-90122 - 无效的可执行文件大小【英文标题】:error itms-90122 - invalid executable size 【发布时间】:2017-01-02 19:59:30 【问题描述】:

我只是在将我的应用上传到应用商店时遇到了一些问题。 问题是 armv7 的 60MB 文件大小限制! (见截图)

几乎没有嵌入图像或类似的东西。 应用程序文件只有 0.5MB 大,但我相信由于下次更新它会很快增加

是否有可能减小应用程序的大小?或者可能要更改一些设置以排除 armv7 并仅构建 64 位?

我们的应用已经上线几年了,现在我们变得“太大”了?我认为不可能“减少”代码。

我使用 AIR 22 和编译器选项“-optimize=true -strict=true”构建

【问题讨论】:

这是我的 app.xml 的 ios 部分:<iPhone> <InfoAdditions> <![CDATA[ <key>UIDeviceFamily</key> <array> <string>2</string> </array> <key>UIFileSharingEnabled</key> <true/> <key>MinimumOSVersion</key> <string>8.0</string> ]]> </InfoAdditions> <requestedDisplayResolution>high</requestedDisplayResolution> <Entitlements> <![CDATA[ <key>get-task-allow</key> <false/> <key>beta-reports-active</key> <true/> ]]> </Entitlements> </iPhone> 【参考方案1】:

有两种方法。

首先是使您的二进制文件小于 60MB。 第二种方法是设置项目部署目标编号。

以下是我收到的来自 Apple DTS 的电子邮件

有几种方法可以解决这种情况:

    查看 Q&A 1795 中的建议,减小我的应用程序的大小。编译器选项部分与您的方案相关。此外,如果您的二进制文件中有数据,例如长字符串、表格或编码图像,您应该将这些资源从二进制文件中移出并放入外部文件中。 https://developer.apple.com/library/ios/qa/qa1795/_index.html

    60 MB 的限制是您的主可执行文件中的每个体系结构。确定您的应用程序中有意义的部分,无论是作为单个框架还是作为少数框架,以便将它们构建到不同的二进制文件中。

    如果您的应用程序的最小部署可以提高到 iOS 9,则可执行文件大小的限制会更高,整个可执行文件最大为 400 MB。这在下面的链接中进行了描述。 https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SubmittingTheApp.html

【讨论】:

链接失效,这里是更新的文档:help.apple.com/app-store-connect/#/dev611e0a21f

以上是关于错误 itms-90122 - 无效的可执行文件大小的主要内容,如果未能解决你的问题,请参考以下文章

在 C 函数调用中传递 char 字符串时,Bochs (2.4.6)/GRUB (0.97) “错误 13 无效或不受支持的可执行格式”

在 VS Code 上模拟 Android 时出现“无效参数:找不到 null 的可执行文件” - Mac OS X

无效的 IPA 测试飞行

Xcode - 警告 ITMS-90735 - 无效的可执行部分 - 提交到 App Store

在 Linux C 程序中写入自己的可执行文件,错误“文本文件忙”

Qt 错误: 无法运行 release 下的可执行文件