///

Claim: Expo prebuild ignores eas.json requestHeaders

로컬 expo prebuild는 eas.json의 EAS Build 프로필 설정(특히 channel)을 읽어 네이티브 expo-updates 요청 헤더로 자동 주입하지 않는다. OTA 채널을 로컬 prebuild + Gradle/Xcode 산출물에 고정해야 한다면 app.json/app.config. 의 updates.requestHeaders에 expo-channel-name을 명시하거나,

///

Claim#

로컬 expo prebuildeas.json의 EAS Build 프로필 설정(특히 channel)을 읽어 네이티브 expo-updates 요청 헤더로 자동 주입하지 않는다. OTA 채널을 로컬 prebuild + Gradle/Xcode 산출물에 고정해야 한다면 app.json/app.config.*updates.requestHeadersexpo-channel-name을 명시하거나, 프로파일별 dynamic config/plugin으로 동일 효과를 만들어야 한다.

Clarification#

  • updates.requestHeaders는 Expo app config(app.json, app.config.js/ts) 쪽 설정으로 보는 것이 정확하다.
  • eas.jsonchannel은 EAS Build/Update 워크플로우에서 쓰이는 빌드 프로필 설정이며, 로컬 expo prebuild가 이를 자동으로 app config의 request header로 변환하지 않는다.
  • 따라서 문제의 핵심은 “eas.jsonupdates.requestHeaders가 무시된다”가 아니라 “로컬 prebuild 경로가 EAS Build 프로필의 channel 설정을 네이티브 update request header로 주입하지 않는다”이다.

Evidence#

  • 2026-04 이치모찌 프로덕션 빌드에서 eas.json에 production 채널 의도가 있었으나, 로컬 expo prebuild + Android AAB 빌드 산출물 unzip 결과 expo-channel-name=production 헤더가 네이티브 설정에 주입되지 않았다.
  • 같은 의도를 EAS 클라우드 빌드 경로에서 처리하면 채널 설정이 반영되었다.
  • app.json/app.configupdates.requestHeaders에 직접 expo-channel-name을 명시하면 prebuild 산출물에 헤더가 주입되는 것이 확인되었다.
  • 관련 vault 캡슐 Expo OTA Channel Header Pitfall Capsule도 로컬 prebuild는 eas.json을 읽지 않으며, app config에 request header를 명시하고 AAB/IPA를 unzip해 검증하라고 정리한다.

Implications#

  • 로컬에서 expo prebuild 후 Gradle/Xcode로 빌드하는 팀은 EAS Build의 channel 설정만 믿으면 안 된다.
  • production/preview 등 채널을 네이티브 빌드에 고정해야 하는 경우 app.config에서 빌드 프로파일 환경변수를 읽어 updates.requestHeaders.expo-channel-name을 생성하는 방식을 권장한다.
  • CI에는 AAB/IPA unzip 후 expo-client-config.json, Android manifest, iOS plist 등에서 update URL 및 request headers를 grep하는 검증 단계를 추가하는 것이 안전하다.

Caveats#

  • Expo SDK 및 EAS CLI 버전 변화로 구현 세부가 바뀔 수 있으므로, SDK/EAS CLI 업그레이드 시 산출물 재검증이 필요하다.
  • EAS 클라우드 빌드만 사용하는 경우에는 영향 범위가 다르며, 이 claim은 주로 로컬 expo prebuild + native build 조합을 대상으로 한다.

Sagwan Revalidation 2026-05-08T11:23:12Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 주입하지 않는 설명은 여전히 유효함

Sagwan Revalidation 2026-05-09T11:33:03Z#

  • verdict: ok
  • note: 로컬 prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-05-10T11:37:07Z#

  • verdict: ok
  • note: Expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-05-11T11:58:45Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-05-12T12:12:35Z#

  • verdict: ok
  • note: Expo prebuild와 EAS Build channel 분리 설명은 현재 관행과 부합함

Sagwan Revalidation 2026-05-13T12:30:14Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 설명은 여전히 타당함

Sagwan Revalidation 2026-05-14T13:00:15Z#

  • verdict: ok
  • note: expo prebuild와 eas.json channel 분리는 여전히 맞는 권장안이다.

Sagwan Revalidation 2026-05-15T13:34:03Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 설명은 여전히 유효함

Sagwan Revalidation 2026-05-16T13:57:00Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효.

Sagwan Revalidation 2026-05-17T14:25:58Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-05-18T14:47:39Z#

  • verdict: ok
  • note: 전일 검증 후 Expo/EAS 동작 변경 근거 없고 권장안도 유효함

Sagwan Revalidation 2026-05-19T15:15:43Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json 프로필 channel을 자동 주입하지 않는다

Sagwan Revalidation 2026-05-20T15:42:52Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는다는 요지는 유효함

Sagwan Revalidation 2026-05-21T16:14:18Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-05-22T16:15:00Z#

  • verdict: ok
  • note: 로컬 prebuild의 eas.json channel 미주입 주장은 현재도 유효하다.

Sagwan Revalidation 2026-05-23T17:00:08Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-05-24T17:21:38Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 주입하지 않는 설명은 여전히 유효함

Sagwan Revalidation 2026-05-25T18:30:27Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-05-26T18:31:00Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 설명은 여전히 타당함

Sagwan Revalidation 2026-05-27T19:32:49Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 점은 유효함

Sagwan Revalidation 2026-05-28T20:09:55Z#

  • verdict: ok
  • note: 전일 검증 이후 Expo/EAS 동작 변화 근거가 없어 현 주장 유지 가능

Sagwan Revalidation 2026-05-29T20:47:36Z#

  • verdict: ok
  • note: prebuild는 여전히 eas.json channel을 자동 헤더로 주입하지 않음

Sagwan Revalidation 2026-05-30T20:54:11Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-06-01T02:26:16Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-02T02:53:59Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 설명은 여전히 유효함

Sagwan Revalidation 2026-06-03T03:34:44Z#

  • verdict: ok
  • note: 전날 검증 이후 Expo prebuild/eas.json 동작 변경 근거가 없다.

Sagwan Revalidation 2026-06-04T03:37:48Z#

  • verdict: ok
  • note: 전날 검증 이후 Expo/EAS 동작 변화 근거가 없어 주장·권장안 유효

Sagwan Revalidation 2026-06-05T04:01:57Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json 채널을 자동 주입하지 않는다.

Sagwan Revalidation 2026-06-06T04:44:57Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 설명은 여전히 유효함

Sagwan Revalidation 2026-06-07T05:20:51Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-06-08T05:46:30Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 설명은 유효함

Sagwan Revalidation 2026-06-09T06:20:57Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는다는 요지는 유효함

Sagwan Revalidation 2026-06-10T10:26:21Z#

  • verdict: ok
  • note: 로컬 prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-06-11T10:46:12Z#

  • verdict: ok
  • note: 전날 검증 이후 Expo/EAS 동작 변경 근거가 없어 현 주장 유지 가능

Sagwan Revalidation 2026-06-12T10:48:08Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-13T11:17:26Z#

  • verdict: ok
  • note: eas.json channel은 여전히 EAS Build 영역이라 로컬 prebuild 자동 주입 근거 없음

Sagwan Revalidation 2026-06-14T11:34:54Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-06-15T12:17:53Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json 채널을 자동 주입하지 않는다.

Sagwan Revalidation 2026-06-16T13:39:19Z#

  • verdict: ok
  • note: prebuild는 여전히 app config 기반이며 eas.json channel 자동 주입은 아니다.

Sagwan Revalidation 2026-06-17T14:03:44Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel 자동 주입 경로가 아니다.

Sagwan Revalidation 2026-06-18T14:07:41Z#

  • verdict: ok
  • note: 전일 검증 이후 Expo/EAS 동작 변화 근거가 없어 재사용 가능.

Sagwan Revalidation 2026-06-19T15:44:54Z#

  • verdict: ok
  • note: 로컬 prebuild와 EAS Build channel 분리 설명은 현재도 재사용 가능함

Sagwan Revalidation 2026-06-20T15:46:43Z#

  • verdict: ok
  • note: Expo prebuild와 EAS Build channel 분리 설명은 현재도 유효하다.

Sagwan Revalidation 2026-06-21T16:55:04Z#

  • verdict: ok
  • note: Expo prebuild와 EAS Build channel 분리 설명은 여전히 유효하다.

Sagwan Revalidation 2026-06-22T17:02:00Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-23T17:29:54Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-24T18:10:59Z#

  • verdict: ok
  • note: [chatgpt HTTP 401] {

Sagwan Revalidation 2026-06-25T18:39:27Z#

  • verdict: ok
  • note: Expo prebuild는 여전히 eas.json 채널 자동 주입 경로가 아니어서 유효함

Sagwan Revalidation 2026-06-26T23:34:57Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-06-28T01:30:25Z#

  • verdict: ok
  • note: expo prebuild는 여전히 app config 기준이며 eas.json channel 자동 주입 아님

Sagwan Revalidation 2026-06-29T01:59:57Z#

  • verdict: ok
  • note: prebuild는 app config만 반영하며 eas.json channel 자동 주입은 여전히 아님

Sagwan Revalidation 2026-06-30T02:38:16Z#

  • verdict: ok
  • note: Expo prebuild와 EAS Build 프로필 channel 분리는 여전히 타당함

Sagwan Revalidation 2026-07-01T08:59:53Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-07-02T20:30:42Z#

  • verdict: ok
  • note: prebuild가 eas.json channel을 자동 주입하지 않는다는 설명은 여전히 유효함

Sagwan Revalidation 2026-07-04T08:52:50Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-07-05T11:06:50Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-07-06T17:27:43Z#

  • verdict: ok
  • note: 로컬 prebuild는 여전히 eas.json channel을 자동 주입하지 않는다

Sagwan Revalidation 2026-07-07T23:23:47Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-07-09T21:42:17Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json 채널을 자동 주입하지 않는다는 내용은 여전히 유효함

Sagwan Revalidation 2026-07-11T14:53:52Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효함

Sagwan Revalidation 2026-07-13T09:48:30Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 점은 여전히 유효.

Sagwan Revalidation 2026-07-15T08:15:26Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 주입하지 않는 설명은 여전히 타당함

Sagwan Revalidation 2026-07-17T08:48:33Z#

  • verdict: ok
  • note: expo prebuild는 여전히 eas.json channel을 자동 주입하지 않는다.

Sagwan Revalidation 2026-07-19T10:30:58Z#

  • verdict: ok
  • note: 로컬 prebuild가 eas.json channel을 자동 주입하지 않는다는 핵심은 유효하다.

Sagwan Revalidation 2026-07-21T11:40:50Z#

  • verdict: ok
  • note: expo prebuild가 eas.json channel을 자동 주입하지 않는 설명은 여전히 유효함

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1