使用 Xcode 16 构建的 iOS 应用程序尺寸显着增大

问题描述 投票:0回答:2

升级到 Xcode 16 后,我注意到我的应用程序大小变大了,从 10MB 到 165MB(!)。

我认为它与此版本的 Xcode 中的位码设置删除有关,因此我添加了自己的条带符号步骤来构建阶段(与 https://docs.emergetools.com/docs/ 中提出的相同) strip-binary-symbols),但没有任何改变。

我需要一些关于还需要检查哪些内容的建议,以便在继续使用最新版本的 Xcode 的同时将应用程序大小减小到正常大小。

ios xcode react-native bitcode xcode16
2个回答
1
投票

所以,对我来说可能是以下之一:

  • 删除位码支持
  • 包含不必要的架构

为此,您可以检查您的构建设置,并确保在发布构建中排除不必要的架构,例如 x86_64、i386 和 arm64e。

确保“仅构建活动架构”选项设置为否。您还可以在运行脚本阶段使用脚本从嵌入式框架中剥离模拟器架构,确保它们不会使应用程序膨胀。

您还可以检查您的资产,以确保您的构建中仅包含必要的资产。应压缩或按需加载大型资源,以进一步减小应用程序的大小。

您还可以从Apple官方文档中阅读此文档: https://developer.apple.com/documentation/xcode/reducing-your-app-s-size

它可以更好地解释任何一点。

还要确认您的构建设置中的“启用位码”设置为否,并确保您的构建配置正确设置为发布以进行分发。

在最后一种情况下,您可以通过在 Xcode 中选择“产品”>“清理构建文件夹”来执行清理构建,以删除任何旧工件并再次检查大小。

您可以随时比较更新前后的文件: ios/projectId.xcodeproj/project.pbxproj

我希望它至少能给你一个前进的方向! :)


0
投票

终于找到解决办法了。
正是框架二进制文件(在我的例子中,hermes)通过保留其符号未剥离而导致了问题。

长话短说:

  1. 遵循 https://docs.emergetools.com/docs/strip-binary-symbols
  2. 的指南
  3. 在目标构建阶段,将“剥离符号”步骤放在之前“嵌入 Pods 框架”步骤。
  4. 在脚本中,对 APP_FRAMEWORKS_DIR 使用不同的值:

APP_FRAMEWORKS_DIR="${BUILT_PRODUCTS_DIR}/XCFrameworkIntermediates"

而不是

APP_FRAMEWORKS_DIR="${APP_DIR_PATH}/框架"

© www.soinside.com 2019 - 2024. All rights reserved.