expo / eas-cli

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

[expo-updates][iOS] EAS build can't read build configuration file #1793

Open dattx1 opened 1 year ago

dattx1 commented 1 year ago

Build/Submit details page URL

No response

Summary

Hi Guys. I am integrating EAS update into my project. My project is being configured with multiple schemes and for each scheme I have a build configuration file (xcconfig). when i run build command eas build --platform ios i received the error message Bundle identifier "$(APP_BUNDLE_ID)" is not valid (target = myMobileApp, build configuration = QA). Open the project in Xcode to fix it. that it can't read the build configuration file.

This is my configuration file


// Configuration settings file format documentation can be found at:
// https://help.apple.com/xcode/#/dev745c5c974
APP_NAME = Application - QA
APP_BUNDLE_ID = com.my.app.qa

image

eas.json

{
  "cli": {
    "version": ">= 3.9.1"
  },
  "build": {
    "development": {
      "distribution": "internal",
      "developmentClient": true,
      "credentialsSource": "remote",
      "android": {
        "gradleCommand": ":app:bundleRelease"
      }
    },
    "preview": {
      "distribution": "internal",
      "ios": {
        "resourceClass": "m-medium"
      }
    },
    "production": {
      "ios": {
        "resourceClass": "m-medium"
      }
    }
  },
  "submit": {
    "production": {}
  }
}

Managed or bare?

bare

Environment

expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 13.0.1
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node
      Yarn: 1.22.19 - ~/.nvm/versions/node/v16.13.1/bin/yarn
      npm: 9.6.4 - ~/.nvm/versions/node/v16.13.1/bin/npm
      Watchman: 2023.03.06.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.11.3 - /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.1 AI-221.6008.13.2211.9514443
      Xcode: 14.2/14C18 - /usr/bin/xcodebuild
    npmPackages:
      expo: ~46.0.21 => 46.0.21 
      react: 18.0.0 => 18.0.0 
      react-dom: 18.0.0 => 18.0.0 
      react-native: 0.69.9 => 0.69.9 
      react-native-web: ~0.18.7 => 0.18.12 
    npmGlobalPackages:
      eas-cli: 3.9.1
      expo-cli: 6.0.6
    Expo Workflow: bare

Error output

Bundle identifier "$(APP_BUNDLE_ID)" is not valid (target = myMobileApp, build configuration = QA). Open the project in Xcode to fix it.

Reproducible demo or steps to reproduce from a blank project

  1. run command eas build --platform ios
  2. select scheme from promt
  3. throw the error Bundle identifier "$(APP_BUNDLE_ID)" is not valid (target = jacksonMobileApp, build configuration = QA). Open the project in Xcode to fix it. Error: build command failed.
wkozyra95 commented 1 year ago

eas-cli supports a subset of configurations that are possible in Xcode, in general, we are trying to support everything, but it's not always a high-priority task. If you prepare a reproducible example there is a higher chance that someone will add support for that case.

In the meantime, you can configure your bundle identifier the same way as we are suggesting here https://docs.expo.dev/build-reference/variants/. By overriding "Product Bundle Identifier" in Build Settings (you can do it per configuration too)

Adham-Mostafa99 commented 6 months ago

Same with me, any solution ?