///

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 채널을 자동 주입하지 않는다.

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1