[object Object]

← back to Nineoh Guide

eas: pin production ios.image=latest (ITMS-90725 guard) before the rebuild

8d5fd18d160c91e0824c337c777c1feda5d00fcd · 2026-09-11 14:10:37 -0700 · Steve Abrams

This app needs a rebuild — its uploaded binary predates its shipped fix by 28
days — and it was about to build without the guard that Charge & Explore needed.

ITMS-90725 is not hypothetical on this Apple account. C&E sat at *0 builds in
ASC* because the upload bounced on it, and the documented fix was exactly this
one eas.json line (Xcode 26 / iOS 26 SDK image). The chargeandexplore-release
canary treats `build.production.ios.image === 'latest'` as a HARD gate for that
reason. Neither this app nor 90210/BHV had it.

Without the pin, the rebuild could bounce on upload *after* paying for the EAS
build. One line removes the variable.

Verified by semantic diff that this adds build.production.ios.image and changes
or removes nothing else; JSON re-validated.

Refs TK-11155.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Files touched

Diff

commit 8d5fd18d160c91e0824c337c777c1feda5d00fcd
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Sep 11 14:10:37 2026 -0700

    eas: pin production ios.image=latest (ITMS-90725 guard) before the rebuild
    
    This app needs a rebuild — its uploaded binary predates its shipped fix by 28
    days — and it was about to build without the guard that Charge & Explore needed.
    
    ITMS-90725 is not hypothetical on this Apple account. C&E sat at *0 builds in
    ASC* because the upload bounced on it, and the documented fix was exactly this
    one eas.json line (Xcode 26 / iOS 26 SDK image). The chargeandexplore-release
    canary treats `build.production.ios.image === 'latest'` as a HARD gate for that
    reason. Neither this app nor 90210/BHV had it.
    
    Without the pin, the rebuild could bounce on upload *after* paying for the EAS
    build. One line removes the variable.
    
    Verified by semantic diff that this adds build.production.ios.image and changes
    or removes nothing else; JSON re-validated.
    
    Refs TK-11155.
    
    Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---
 apps/mobile/eas.json | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json
index 70804d2..87dceb6 100644
--- a/apps/mobile/eas.json
+++ b/apps/mobile/eas.json
@@ -25,7 +25,10 @@
     },
     "production": {
       "autoIncrement": true,
-      "distribution": "store"
+      "distribution": "store",
+      "ios": {
+        "image": "latest"
+      }
     }
   },
   "submit": {

← 3b8d021 90210: gate Firebase Analytics/Crashlytics behind ATT (fix 5  ·  back to Nineoh Guide  ·  5x sweep 1: fix /api/cast 500 — credits has no show_id; scop dc8c199 →