Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • A Ahad Mobile
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • holatech
  • Ahad Mobile
  • Merge requests
  • !140

fix(fe): unblock EAS iOS builds (env.js import, .env.development, sdk-53 image)

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Khanh Pham requested to merge fix/app-config-env-import into develop Oct 23, 2026
  • Overview 0
  • Commits 3
  • Pipelines 2
  • Changes 3

Summary

Three issues stopped the first EAS iOS builds of the new Ahad Pay app:

  1. READ_APP_CONFIG — import. `fe/app.config.ts` imported `./env` without an extension. eas-cli 25 (@expo/config 55 / require-utils) can load the config as ESM, where Node rejects extensionless imports. Now `./env.js` (works for CJS and ESM).
  2. READ_APP_CONFIG — env file. Root `.gitignore` listed the tracked `fe/.env.development` (added in 306f93a6). EAS archives through .gitignore, so the file was dropped (missing `API_URL` / `SECRET_KEY` / `VAR_NUMBER`). Ignore line removed; same class of values as the committed `.env.staging`.
  3. RUN_FASTLANE — Xcode. Every iOS profile used `image: latest` = Xcode 27.1 (sdk-58). Pinned to `sdk-53` (macos-sequoia-15.5-xcode-16.4), the image Expo maps to SDK 53. Android images unchanged.

After merge

  • `eas.json` is a fingerprint input, so the runtimeVersion changes on both platforms: rebuild staging iOS and Android before the next `pnpm update:staging`, otherwise installed testers will not receive the OTA (see `fe/docs/ota-updates.md`).
  • Not in this MR: `fe/.env.ui` is still ignored/untracked (ui profile would fail the same way); `android.image: latest` still floats.

Review

Opus gate: r1 PASS (import), r2 PASS (.gitignore), r3 PASS (image; SHOULD-FIX = the fingerprint note above, no code change).

🤖 Generated with Claude Code

Edited Oct 23, 2026 by Khanh Pham
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: fix/app-config-env-import