新的 React Native iOS 应用程序大小超过 500 MB - 处于发布模式

Ant*_*jen 5 ios react-native

我使用 CLI 和样板模板创建了一个新的 React Native 应用程序。发布模式下生成的 iOS 应用程序大小出乎意料地大:511.9 MB。通常我希望新的 React Native 应用程序小于 10 MB。这个大的应用程序大小似乎是最近的变化。我不考虑什么?提前致谢!

采取的步骤:

  1. npm uninstall -g react-native-cli @react-native-community/cli
  2. npx react-native@latest init TestProject
  3. 在 Xcode 中打开 /ios/TestProject.xcworkspace
  4. 转到测试项目 > 编辑方案
  5. 将构建配置更改为“发布”并取消选中“调试可执行文件”
  6. 关闭弹出窗口
  7. 按下运行按钮以在我连接的设备上运行应用程序
  8. 在 iPhone 上,检查设置 > 常规 > iPhone 存储
  9. 新安装的应用程序显示它正在使用 511.9 MB 空间

我尝试过的其他步骤:

  1. 在 XCode 中,单击“产品”>“存档”。
  2. 在管理器窗口中,右键单击该应用程序,然后单击在 Finder 中显示
  3. 文件系统上生成的应用程序大小为 544.8 MB

我的环境:

  • macOS:文图拉 13.2.1
  • Xcode:14.2 (14C18)
  • 节点:18.15.0
  • 红宝石:2.7.6p219

项目 package.json (来自样板模板)

{
  "name": "TestProject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest"
  },
  "dependencies": {
    "react": "18.2.0",
    "react-native": "0.71.4"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.20.0",
    "@babel/runtime": "^7.20.0",
    "@react-native-community/eslint-config": "^3.2.0",
    "@tsconfig/react-native": "^2.0.2",
    "@types/jest": "^29.2.1",
    "@types/react": "^18.0.24",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.2.1",
    "eslint": "^8.19.0",
    "jest": "^29.2.1",
    "metro-react-native-babel-preset": "0.73.8",
    "prettier": "^2.4.1",
    "react-test-renderer": "18.2.0",
    "typescript": "4.8.4"
  },
  "jest": {
    "preset": "react-native"
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 2

你好,我一直在寻找解决方案,我发现如果你使用纯 React Native,只需在 podfile 中禁用 Hermes 就足够了

https://reactnative.dev/docs/hermes
:hermes_enabled => false
Run Code Online (Sandbox Code Playgroud)

但是如果你使用expo那么你需要更改app.json文件中的js引擎

https://docs.expo.dev/guides/configuring-js-engines/
{ "expo": { "jsEngine": "jsc" } }
Run Code Online (Sandbox Code Playgroud)

并编辑您的方案以发布

/sf/ask/399458391/
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我禁用了 Hermes 并更改了 expo js 引擎,在我的例子中,应用程序从 524mb 减少到 16mb