From 8ab6b899f2d5e9609ff27d326a7c146b82fe6675 Mon Sep 17 00:00:00 2001 From: Shiv Shankar Tiwari Date: Fri, 24 Jul 2026 19:18:39 +0530 Subject: [PATCH 1/2] ci: add EAS Workflow to build, submit & OTA-update on push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .eas/workflows/create-production-builds.yml runs on EAS servers (on push to main, or manually via `eas workflow:run`): publishes an OTA update, builds iOS production, and submits to App Store Connect — no local CLI. iOS-only for now (Android keystore not configured). Includes a commented tag-based trigger since submitting to the App Store on every push isn't usually desirable. Requires the one-time GitHub↔EAS repo connection. Co-Authored-By: Claude Opus 4.8 (1M context) --- .eas/workflows/create-production-builds.yml | 57 +++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .eas/workflows/create-production-builds.yml diff --git a/.eas/workflows/create-production-builds.yml b/.eas/workflows/create-production-builds.yml new file mode 100644 index 0000000..14214f3 --- /dev/null +++ b/.eas/workflows/create-production-builds.yml @@ -0,0 +1,57 @@ +# EAS Workflow — production deploy for SnapBiodata (iOS) +# Docs: https://docs.expo.dev/eas/workflows/get-started/ +# +# Runs on EAS servers. Two ways to trigger: +# • automatically on every push to `main` (see `on:` below), or +# • manually: npx eas-cli@latest workflow:run create-production-builds.yml +# +# ── One-time setup ─────────────────────────────────────────────────────────── +# Connect this GitHub repo to the EAS project so pushes trigger the workflow: +# Expo dashboard → @agastyaai/snapbiodata → project settings → GitHub → connect. +# +# ⚠️ IMPORTANT: this submits to the App Store on every push to main. App Store +# review happens per submission, so for a real release cadence you likely want +# `submit_ios` to run only on version tags, not every push — see the commented +# `on:` alternative below. The `publish_update` (OTA) job is the safe +# every-push action for JS-only changes. +# +# Android is intentionally omitted until its keystore is configured +# (`eas credentials` → Android). Add build_android/submit_android then. +# ───────────────────────────────────────────────────────────────────────────── + +name: Create production builds + +on: + push: + branches: + - main + # Release-only alternative (recommended for build+submit) — swap the block above: + # push: + # tags: + # - 'v*' + +jobs: + # Fast path: publish an OTA JS update to the production channel on every push. + publish_update: + name: OTA update (production) + type: update + params: + branch: production + message: ${{ github.sha }} + + # Native build. + build_ios: + name: Build iOS (production) + type: build + params: + platform: ios + profile: production + + # Upload the fresh build to App Store Connect (personal account). + submit_ios: + name: Submit to App Store + needs: [build_ios] + type: submit + params: + platform: ios + profile: production From 8cd95bfecb67ff4851e983a5b0bc6b60ff1e504b Mon Sep 17 00:00:00 2001 From: Shiv Shankar Tiwari Date: Fri, 24 Jul 2026 19:41:47 +0530 Subject: [PATCH 2/2] fix(ios): declare all 4 iPad orientations (App Store error 90474) Making the app universal requires iPad apps (not full-screen-only) to support all four orientations. Add UISupportedInterfaceOrientations~ipad with Portrait, PortraitUpsideDown, LandscapeLeft, LandscapeRight to all three schemes. iPhone keeps its existing 3-orientation set. Fixes the App Store processing rejection of build 45 (error 90474). Co-Authored-By: Claude Opus 4.8 (1M context) --- ios/ReactNativeIgniteKit dev-Info.plist | 7 +++++++ ios/ReactNativeIgniteKit prod-Info.plist | 7 +++++++ ios/ReactNativeIgniteKit stag-Info.plist | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/ios/ReactNativeIgniteKit dev-Info.plist b/ios/ReactNativeIgniteKit dev-Info.plist index 36962f8..1c80479 100644 --- a/ios/ReactNativeIgniteKit dev-Info.plist +++ b/ios/ReactNativeIgniteKit dev-Info.plist @@ -51,6 +51,13 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIViewControllerBasedStatusBarAppearance diff --git a/ios/ReactNativeIgniteKit prod-Info.plist b/ios/ReactNativeIgniteKit prod-Info.plist index d7c826d..7878918 100644 --- a/ios/ReactNativeIgniteKit prod-Info.plist +++ b/ios/ReactNativeIgniteKit prod-Info.plist @@ -51,6 +51,13 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIViewControllerBasedStatusBarAppearance diff --git a/ios/ReactNativeIgniteKit stag-Info.plist b/ios/ReactNativeIgniteKit stag-Info.plist index 1fdad9a..2fda1e2 100644 --- a/ios/ReactNativeIgniteKit stag-Info.plist +++ b/ios/ReactNativeIgniteKit stag-Info.plist @@ -49,6 +49,13 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIViewControllerBasedStatusBarAppearance