Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changed params not reflecting on EAS build #2154

Closed
ronaldo-triibo opened this issue Dec 14, 2023 · 5 comments
Closed

Changed params not reflecting on EAS build #2154

ronaldo-triibo opened this issue Dec 14, 2023 · 5 comments
Labels
needs review Issue is ready to be reviewed by a maintainer

Comments

@ronaldo-triibo
Copy link

ronaldo-triibo commented Dec 14, 2023

Build/Submit details page URL

https://expo.dev/accounts/synoroorg/projects/AxymaForms/builds/a62014e8-9620-4d56-b3b3-c205d1ed8e4b

Summary

A few months ago I built an ipa file with EAS build and uploaded it to the Apple's App Store without any issues. Yesterday I've made a few changes on my project and built a new ipa with EAS normally, but when I tried to upload it to the App Store I've got an error saying that I should continue to support the same devices supported by the previous versions.

I've checked on the internet and found out that I should change the "supportsTablet" param on my app.json file but regardless of me changing it for true or false I still get the same error when uploading the ipa to the store.

As I made no changes on my dependencies it seems to me that EAS is ignoring my app.json changes. Anyone knows how to fix this?

Thanks you in advance!

Managed or bare?

Managed

Environment

expo-env-info 1.0.5 environment info:
System:
OS: macOS 12.7.2
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 18.12.1 - /usr/local/bin/node
npm: 9.8.1 - /usr/local/bin/npm
Watchman: 2023.05.15.00 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.12.0 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
Android SDK:
Android NDK: 22.1.7171670
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.10811636
Xcode: 14.2/14C18 - /usr/bin/xcodebuild
npmPackages:
@expo/webpack-config: 18.0.1 => 18.0.1
expo: 48.0.20 => 48.0.20
react: 18.2.0 => 18.2.0
react-dom: 18.2.0 => 18.2.0
react-native: 0.71.14 => 0.71.14
react-native-web: ~0.18.9 => 0.18.12
npmGlobalPackages:
eas-cli: 4.1.2
expo-cli: 6.3.10
Expo Workflow: managed

Error output

    code = "STATE_ERROR.VALIDATION_ERROR.90101";
    detail = "This bundle does not support one or more of the devices supported by the previous app version. Your app update must continue to support all devices previously supported. You declare supported devices in Xcode with the Targeted Device Family build setting. Refer to QA1623 for additional information: https://developer.apple.com/library/ios/#qa/qa1623/_index.html";

Reproducible demo or steps to reproduce from a blank project

app.json

{
  "expo": {
    "name": "***",
    "slug": "***",
    "version": "***",
    "owner": "***",
    "orientation": "portrait",
    "jsEngine": "hermes",
    "plugins": [
      [
        "expo-location",
        {
          "locationAlwaysAndWhenInUsePermission": "Allow use location?"
        }
      ],
      [
        "expo-barcode-scanner",
        {
          "cameraPermission": "Allow acess camera?"
        }
      ],
      [
        "expo-media-library",
        {
          "photosPermission": "Allow check photos?",
          "savePhotosPermission": "Allow save photos?",
          "isAccessMediaLocationEnabled": true
        }
      ],
      [
        "expo-camera",
        {
          "cameraPermission": "Allow use camera?"
        }
      ],
      [
        "expo-image-picker",
        {
          "photosPermission": "Allow acess camera?"
        }
      ]
    ],
    "icon": "./assets/icon.png",
    "userInterfaceStyle": "light",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "cover",
      "backgroundColor": "#000"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": false
    },
    "android": {
      "softwareKeyboardLayoutMode": "pan",
      "adaptiveIcon": {
        "foregroundImage": "./assets/icon.png",
        "backgroundColor": "#000"
      }
    },
    "web": {
      "favicon": "./assets/favicon.ico"
    },
    "extra": {
      "eas": {
        "projectId": "***"
      }
    }
  }
}

eas.json

{
  "cli": {
    "version": ">= 0.52.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
    },
    "preview": {
      "distribution": "internal",
      "android": {
        "buildType": "apk",
        "withoutCredentials": false
      },
      "ios": {
        "simulator": true
      }
    },
    "production": {
      "android": {
        "buildType": "apk"
      },
      "ios": {
        "credentialsSource": "local"
      }
    },
  },
  "submit": {
    "production": {}
  }
}
@ronaldo-triibo ronaldo-triibo added the needs review Issue is ready to be reviewed by a maintainer label Dec 14, 2023
@szdziedzic
Copy link
Member

Hi there!

Looking at https://expo.dev/accounts/synoroorg/projects/AxymaForms/builds/a62014e8-9620-4d56-b3b3-c205d1ed8e4b#read-app-config I see that app config evaluated on EAS side does not contain ios.supportsTablet field 🤔

Could you let me know if the config you posted here is for sure the one used in a build process? I mean the whole ios section in the logs seems different than the one you pasted here 🤔

I'm not sure if what I wrote is super helpful, but I hope it might push you in a good direction when it comes to figuring out the root cause of a problem.

@szdziedzic
Copy link
Member

Don't you have by any chance both app.json and app.config.js in your project?

@szdziedzic
Copy link
Member

Can you try to run npx expo config --type public locally?

@ronaldo-triibo
Copy link
Author

Hi Szymon! Thanks for your response!

Indeed the config I pasted is the same one used in the build process and if I run the expo config type command it shows exactly the same as in the Read app config build step.

But as you said, I do have an app.config.ts file in my project. I tested moving the supportsTablet param from the app.json file to the app.config.ts file and it worked! I could upload my app to the App Store without any issues.

Thank you very much for your support.

@szdziedzic
Copy link
Member

I'm happy to help. It would be best to have only one of the app.json or app.config.ts for your project to work properly. If both are present, then I think app.config.ts is always used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs review Issue is ready to be reviewed by a maintainer
Projects
None yet
Development

No branches or pull requests

2 participants