Как настроить сборку и отправку вашего приложения Expo?

Мы поговорим о приложении, имеющем три необходимых окружения. Разработка, испытания и производство. Прежде чем начать, вам необходимо иметь выставочную учетную запись, после чего вы можете создать три проекта под своей организацией. Я не использовал суффикс для имени производственного приложения, но добавил суффиксы «dev» и «test» для других приложений. Предположим, имя моего приложения — «приложение», тогда другие мои приложения — «приложение-разработчик» и «приложение-тест».

Конфигурации сборки

В вашем выставочном приложении вы можете создать переменные среды в app.config.ts.

const dev = {
  apiUrl: "http://application-test.api:8080",
  appIdentifier: "com.application.dev",
  appName: "Application Dev",
  appSlug: "application-dev",
  easProjectId: "project-id",
  iconPath: "./assets/icon.png",
  adaptiveIcon: "./assets/adaptive-icon-dev.png",
  androidGoogleServicesFile: "./dev-google-services.json",
  iosGoogleServicesFile: "./GoogleService-Info.plist"
};

const test = {
  apiUrl: "http://application-test.api:8080",
  appIdentifier: "com.application.test",
  appName: "Application Test",
  appSlug: "application-test",
  easProjectId: "project-id",
  iconPath: "./assets/icon.png",
  adaptiveIcon: "./assets/adaptive-icon-test.png",
  androidGoogleServicesFile: "./test-google-services.json",
  iosGoogleServicesFile: "./GoogleService-Info.plist"
};

const prod = {
  apiUrl: "http://application.api:8080",
  appIdentifier: "com.application",
  appName: "Application",
  appSlug: "application",
  easProjectId: "project-id",
  iconPath: "./assets/icon.png",
  adaptiveIcon: "./assets/adaptive-icon.png",
  androidGoogleServicesFile: "./google-services.json",
  iosGoogleServicesFile: "./GoogleService-Info.plist"
};

if (process.env.APP_ENV === "production") {
  appParams = prod;
} else if(process.env.APP_ENV === "test") {
  appParams = test;
} else {
  appParams = dev;
}

easProjectId и appSlug должны соответствовать проектам, которые вы создали в expo.

После того, как вы объявили переменные среды, вы можете использовать эти переменные, используяprocess.env.APP_ENV при настройке конфигурации expo по умолчанию.

"expo": {
  "name": appParams.appName,
  "slug": appParams.appSlug,
  "version": appVersion,
  .
  .
  .

После вам нужно создать профили сборки для каждой среды в eas json.

{
 "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal",
      "env": {
        "APP_ENV": "development"
      },
      "ios": {
        "resourceClass": "m-medium",
        "simulator": true
      },
      "channel": "development"
    },
    "test": {
      "channel": "test",
      "env": {
        "APP_ENV": "test"
      }
    },
    "production": {
      "channel": "production",
      "env": {
        "APP_ENV": "production"
      }
    }
  }
}

Затем вы можете создать свое выставочное приложение с конкретным профилем и устройством.

e.g:

eas build -e development -p ios

Стеккадемический

Спасибо, что дочитали до конца. Прежде чем уйти:

  • Пожалуйста, рассмотрите возможность аплодировать и следовать автору! 👏
  • Следуйте за нами в Twitter(X), LinkedIn и YouTube.
  • Посетите Stackademic.com, чтобы узнать больше о том, как мы демократизируем бесплатное образование в области программирования во всем мире.