Large ipa file (100MB)

Managed workflow
eas-cli/0.47.0 darwin-x64 node-v16.13.2

After building, the Android file size is about 50MB. The IOS ipa file is 159 MB. Is there a way to reduce this size? Why is it so large? I am using eas build.

EDIT: OK from what I’ve read, the ipa file size is not the file size a user will see. What is the way to get the file size a user will see?

package.json

{
    "main": "node_modules/expo/AppEntry.js",
    "scripts": {
        "eas-build-pre-install": "npm config set legacy-peer-deps true",
        "start": "expo start",
        "android": "expo start --android",
        "ios": "expo start --ios",
        "publish": "expo publish",
        "build:ios": "expo build:ios",
        "build:android": "expo build:android -t app-bundle",
        "eject": "expo eject",
        "lint": "eslint "
    },
    "dependencies": {
        "@expo/vector-icons": "^12.0.0",
        "@react-native-async-storage/async-storage": "~1.15.0",
        "axios": "^0.19.2",
        "expo": "^43.0.0",
        "expo-analytics-amplitude": "~11.0.3",
        "expo-app-loading": "~1.2.1",
        "expo-application": "~4.0.0",
        "expo-asset": "~8.4.3",
        "expo-blur": "~10.0.3",
        "expo-constants": "~12.1.3",
        "expo-device": "~4.0.3",
        "expo-file-system": "~13.0.3",
        "expo-font": "~10.0.3",
        "expo-image-picker": "~11.0.3",
        "expo-intent-launcher": "~10.0.3",
        "expo-linear-gradient": "~10.0.3",
        "expo-linking": "~2.4.2",
        "expo-localization": "~11.0.0",
        "expo-location": "~13.0.4",
        "expo-permissions": "~13.0.3",
        "expo-splash-screen": "~0.13.5",
        "expo-updates": "~0.10.15",
        "expo-web-browser": "~10.0.3",
        "format-string-by-pattern": "^1.2.1",
        "moment": "^2.24.0",
        "moment-range": "^4.0.2",
        "moment-timezone": "^0.5.28",
        "native-base": "^2.15.2",
        "react": "17.0.1",
        "react-native": "0.64.3",
        "react-native-actionsheet": "^2.4.2",
        "react-native-appearance": "~0.3.3",
        "react-native-calendar-picker": "^7.0.9",
        "react-native-calendars": "^1.263.0",
        "react-native-expo-image-cache": "^4.1.0",
        "react-native-gesture-handler": "~1.10.2",
        "react-native-keyboard-aware-scroll-view": "^0.9.1",
        "react-native-maps": "0.28.1",
        "react-native-markdown-display": "^6.0.1",
        "react-native-modal-datetime-picker": "^9.0.0",
        "react-native-open-maps": "^0.3.5",
        "react-native-reanimated": "~2.2.0",
        "react-native-safe-area-context": "3.3.2",
        "react-native-screens": "~3.8.0",
        "react-native-svg": "12.1.1",
        "react-native-swiper": "^1.6.0",
        "react-native-timeago": "^0.5.0",
        "react-native-webview": "11.13.0",
        "react-navigation": "4.4.4",
        "react-navigation-stack": "^2.10.4",
        "react-navigation-tabs": "^2.11.1",
        "react-redux": "^6.0.1",
        "redux": "^4.0.1",
        "redux-persist": "^6.0.0",
        "redux-thunk": "^2.3.0",
        "sentry-expo": "^4.0.0"
    },
    "devDependencies": {
        "babel-preset-expo": "8.5.1",
        "eslint": "^6.8.0",
        "eslint-config-universe": "^2.3.0",
        "eslint-plugin-react-redux": "^3.0.3",
        "prettier": "^1.19.1",
        "redux-logger": "^3.0.6"
    },
    "private": true,
    "eslintConfig": {
        "settings": {
            "react": {
                "version": "detect"
            }
        },
        "extends": [
            "plugin:react-redux/recommended",
            "universe/native"
        ],
        "plugins": [
            "react-redux"
        ],
        "rules": {
            "react-redux/connect-prefer-named-arguments": 0,
            "react-redux/prefer-separate-component-file": 0
        }
    }
}

this is perfectly normal, ipa often are in 100-200 MB range, but in some cases they are a lot smaller, it depends on some xcode settings. In general, it has no impact on what app store users need to download.

What is the way to get the file size a user will see?

I think it should be available somewhere in appstore connect after uploading the ipa

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.