expo / eas-cli

Fastest way to build, submit, and update iOS and Android apps
https://docs.expo.dev/eas/
MIT License
708 stars 76 forks source link

EAS Update not updating app #2080

Open MarcHbb opened 9 months ago

MarcHbb commented 9 months ago

Build/Submit details page URL

https://expo.dev/accounts/marc-hbb/projects/checkit-app/deployments/production/exposdk%3A48.0.0

Summary

I can't find why my update is not working. I have no errors, have the same sdk runtime version, and same channel between the build and the update.

Managed or bare?

Managed

Environment

expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 13.0.1
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 16.20.1 - ~/.nvm/versions/node/v16.20.1/bin/node
      Yarn: 1.22.17 - /opt/homebrew/bin/yarn
      npm: 8.19.4 - ~/.nvm/versions/node/v16.20.1/bin/npm
    Managers:
      CocoaPods: 1.12.1 - /opt/homebrew/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 22.1, iOS 16.1, macOS 13.0, tvOS 16.1, watchOS 9.1
      Android SDK:
        API Levels: 31
        Build Tools: 31.0.0
        System Images: android-29 | Google Play ARM 64 v8a, android-31 | Google APIs ARM 64 v8a
    IDEs:
      Xcode: 14.1/14B47b - /usr/bin/xcodebuild
    npmPackages:
      expo: ^48.0.0 => 48.0.20 
      react: 18.2.0 => 18.2.0 
      react-native: 0.71.8 => 0.71.8 
    npmGlobalPackages:
      eas-cli: 3.16.0
      expo-cli: 6.3.10
    Expo Workflow: managed

Error output

No response

Reproducible demo or steps to reproduce from a blank project

Using APP_ENV=production eas update --branch production to update my production build, no update happen. There's no new native code. Even tried to update a single "." not working.

Capture d’écran 2023-10-06 à 15 59 16

Last update :

Capture d’écran 2023-10-06 à 15 58 38

Last production build :

Capture d’écran 2023-10-06 à 15 58 25

Expo.plist from the build :

Capture d’écran 2023-10-06 à 16 38 53

Everything seems good, please help

package.json :

  "name": "APP_NAME",
  "version": "2.3.7",
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start --clear",
    "dev": "APP_ENV=development npx expo start --dev-client",
    "build:dev": "APP_ENV=development eas build --profile development --clear-cache",
    "build:dev-s": "APP_ENV=development eas build --profile dev-simulator --clear-cache",
    "build:staging-s": "APP_ENV=staging eas build --profile staging-simulator",
    "build:staging": "APP_ENV=staging eas build --profile staging",
    "update:staging": "APP_ENV=staging eas update --branch staging",
    "build:prod": "APP_ENV=production eas build --profile production",
    "build:prod-s": "APP_ENV=production eas build --profile simulator-prod",
    "build:preprod": "APP_ENV=production eas build --profile preprod",
    "update:preprod": "APP_ENV=production eas update --branch preprod",
    "update:prod": "APP_ENV=production eas update --branch production",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "postinstall": "patch-package"
  },
  "dependencies": {
    "@expo/react-native-action-sheet": "^3.14.0",
    "@react-native-async-storage/async-storage": "1.17.11",
    "@react-native-community/datetimepicker": "6.7.3",
    "@react-native-community/geolocation": "^3.0.6",
    "@react-native-community/masked-view": "^0.1.11",
    "@react-native-firebase/analytics": "^15.7.0",
    "@react-native-firebase/app": "15.7.0",
    "@react-navigation/bottom-tabs": "^6.4.0",
    "@react-navigation/material-bottom-tabs": "^6.2.4",
    "@react-navigation/material-top-tabs": "^6.3.0",
    "@react-navigation/native": "^6.0.13",
    "@react-navigation/native-stack": "^6.9.1",
    "@react-navigation/stack": "^6.3.2",
    "@reduxjs/toolkit": "^1.8.6",
    "@sentry/react-native": "4.13.0",
    "@shopify/react-native-skia": "^0.1.209",
    "axios": "^1.1.3",
    "country-codes-list": "^1.6.10",
    "deprecated-react-native-prop-types": "^4.0.0",
    "expo": "^48.0.0",
    "expo-application": "~5.1.1",
    "expo-build-properties": "~0.6.0",
    "expo-calendar": "~11.1.1",
    "expo-clipboard": "~4.1.2",
    "expo-constants": "~14.2.1",
    "expo-dev-client": "~2.2.1",
    "expo-device": "~5.2.1",
    "expo-haptics": "~12.2.1",
    "expo-image": "~1.0.1",
    "expo-image-picker": "~14.1.1",
    "expo-intent-launcher": "~10.5.2",
    "expo-linear-gradient": "~12.1.2",
    "expo-linking": "~4.0.1",
    "expo-localization": "~14.1.1",
    "expo-location": "~15.1.1",
    "expo-notifications": "~0.18.1",
    "expo-splash-screen": "~0.18.2",
    "expo-status-bar": "~1.4.2",
    "expo-updates": "~0.16.4",
    "formik": "^2.2.9",
    "i18next": "^22.5.0",
    "imagekit-javascript": "1.3.7",
    "lottie-react-native": "5.1.4",
    "moment": "^2.29.4",
    "moti": "^0.25.3",
    "patch-package": "^6.5.1",
    "react": "18.2.0",
    "react-i18next": "^11.18.6",
    "react-native": "0.71.8",
    "react-native-actions-sheet": "^0.8.8",
    "react-native-bouncy-checkbox": "^3.0.6",
    "react-native-calendars": "1.1248.0",
    "react-native-collapsible-tab-view": "^5.0.0-rc.13",
    "react-native-geocoding": "^0.5.0",
    "react-native-gesture-handler": "~2.9.0",
    "react-native-google-places-autocomplete": "^2.4.1",
    "react-native-hyperlink": "^0.0.22",
    "react-native-map-clustering": "^3.4.2",
    "react-native-map-link": "^2.10.2",
    "react-native-maps": "1.3.2",
    "react-native-modal": "^13.0.1",
    "react-native-pager-view": "6.1.2",
    "react-native-paper": "4.9.2",
    "react-native-reanimated": "^3.0.0-rc.10",
    "react-native-safe-area-context": "4.5.0",
    "react-native-screens": "~3.20.0",
    "react-native-section-list-get-item-layout": "^2.2.3",
    "react-native-share": "^8.1.0",
    "react-native-shared-element": "0.8.8",
    "react-native-svg": "13.4.0",
    "react-native-svg-transformer": "^1.0.0",
    "react-native-tab-view": "^3.3.0",
    "react-native-toast-message": "^2.1.5",
    "react-native-uuid": "^2.0.1",
    "react-native-vector-icons": "^9.2.0",
    "react-navigation-shared-element": "^3.1.3",
    "react-redux": "^8.0.4",
    "sentry-expo": "~6.1.0",
    "yup": "^0.32.11"
  },
  "devDependencies": {
    "@babel/core": "^7.19.3",
    "babel-plugin-transform-inline-environment-variables": "^0.4.4"
  },
  "private": true
}

export default () => ({
    name: config.appName,
    version: "2.3.7",
    orientation: "portrait",
    icon: config.icon,
    scheme: config.appName,
    splash: {
        image: config.splash,
        resizeMode: "cover",
    },
    updates: {
        fallbackToCacheTimeout: 0,
    },
    assetBundlePatterns: ["**/*"],
    ios: {
        supportsTablet: false,
        bundleIdentifier: config.bundleIdentifier,
        googleServicesFile: config.IOSGoogleServicesFile,
        buildNumber: "2.3.12",
        config: {
            googleMapsApiKey: config.IOSMapAPIKey,
        },
        infoPlist: {
            LSApplicationQueriesSchemes: ["comgooglemaps", "citymapper", "uber", "lyft", "waze", "instagram", "instagram-stories", "fb", "facebook-stories", "fb-messenger"],
            NSRemindersUsageDescription:
                "Requires your permission to add events to your calendar",
            NSLocationWhenInUseUsageDescription:
                "Requires your permission to suggest activities around you",
        },
    },
    android: {
        package: config.bundleIdentifier,
        versionCode: 75,
        googleServicesFile: config.androidGoogleServicesFile,
        permissions: ["READ_CALENDAR", "WRITE_CALENDAR", "ACCESS_FINE_LOCATION", "CAMERA", "READ_EXTERNAL_STORAGE"],
        config: {
            googleMaps: {
                apiKey: config.androidMapAPIKey,
            },
        },
        "softwareKeyboardLayoutMode": "pan"
    },
    "plugins": [
        ["sentry-expo"],
        "@react-native-firebase/app",
        "expo-localization",
        [
            "expo-build-properties",
            {
                "android": {
                    "compileSdkVersion": 33,
                    "targetSdkVersion": 33,
                    "buildToolsVersion": "33.0.0"
                },
                "ios": {
                    "deploymentTarget": "13.0",
                    "useFrameworks": "static"
                }
            }
        ],
        "@react-native-firebase/app",
        "./withReactNativeMaps",
    ],
    runtimeVersion: {
        policy: "sdkVersion",
    },
    updates: {
        url: "https://u.expo.dev/45e3e33d-b12d-4a03-af77-af971415863c",
    },
    "hooks": {
        "postPublish": [
            {
                "file": "sentry-expo/upload-sourcemaps",
                "config": {
                    "organization": config.sentryOrganisation,
                    "project": config.sentryProject
                }
            }
        ]
    },
    extra: {
        eas: {
            projectId: "XXX",
        },
        facebookAppId: process.env.FACEBOOK_APP_ID,
        ...config.config,
    },
});
nikitaSazhinov commented 8 months ago

Hey, I am experiencing the same issue. Have you had any success with resolving this? For now I have to resort to making new builds for publishing. I see the updates in the "updates" page on expo.dev but not in the deployment.

MarcHbb commented 8 months ago

I have found the issue. As you can see on my package.json, the version of expo is ^48.0.0 It doesn't mean that my expo package version is 48.0.0. It was actually 48.0.19. So I removed the "^" et install the 48.0.0 version, made a new build, and then from now i was able to publish my updates and apply it on my production app

The thing I don't understand, is that even with the version 48.0.19, the runtime version was set to 48.0.0 (as you can see above). I don't know where to set this value to make it match to my expo sdk version

nikitaSazhinov commented 8 months ago

I have found the issue. As you can see on my package.json, the version of expo is ^48.0.0 It doesn't mean that my expo package version is 48.0.0. It was actually 48.0.19. So I removed the "^" et install the 48.0.0 version, made a new build, and then from now i was able to publish my updates and apply it on my production app

The thing I don't understand, is that even with the version 48.0.19, the runtime version was set to 48.0.0 (as you can see above). I don't know where to set this value to make it match to my expo sdk version

That was also the problem for me, thank you.

sspread commented 6 months ago

Same symptoms here on sdk 49. Downgraded to 49.0.0 strictly (to match sdk in generated manifest), but no luck. I think you can set sdkVersion in manifest though. This one is driving me crazy.

EDIT: My issue was incorrectly thinking that env vars defined in eas.json under each build profile applied to updates. So I had a null env var in js causing crash when update was applied. Clarified here https://docs.expo.dev/eas-update/environment-variables/

sirusbaladi commented 4 months ago

I have the same exact issue.