[object Object]

← back to Boomer Calculator

Verify Boomer build 8 cloud signing and Apple validation

8dffd188feefe2424af4db7084d81a5a98a3e6d4 · 2026-09-11 11:34:07 -0700 · Steve Abrams

Files touched

Diff

commit 8dffd188feefe2424af4db7084d81a5a98a3e6d4
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Sep 11 11:34:07 2026 -0700

    Verify Boomer build 8 cloud signing and Apple validation
---
 .../TK-11230/native-build8/CLOUD-SIGNING.md        | 35 +++++++++++++
 .../TK-11230/native-build8/apple-validation.json   | 22 ++++++++
 .../cloud-signing-decision/claude.txt              |  1 +
 .../cloud-signing-decision/codex-debate.txt        |  9 ++++
 .../native-build8/cloud-signing-decision/codex.txt |  3 ++
 .../native-build8/cloud-signing-decision/grok.txt  |  1 +
 .../native-build8/cloud-signing-decision/kimi.txt  |  1 +
 .../native-build8/cloud-signing-decision/muse.txt  |  1 +
 .../cloud-signing-decision/question.txt            |  1 +
 .../native-build8/cloud-signing-decision/qwen.txt  |  2 +
 .../native-build8/cloud-signing-proof.json         | 60 ++++++++++++++++++++++
 11 files changed, 136 insertions(+)

diff --git a/verification/TK-11230/native-build8/CLOUD-SIGNING.md b/verification/TK-11230/native-build8/CLOUD-SIGNING.md
new file mode 100644
index 0000000..3bd6bed
--- /dev/null
+++ b/verification/TK-11230/native-build8/CLOUD-SIGNING.md
@@ -0,0 +1,35 @@
+# Boomer Calc build 8: signing recovered
+
+The missing local Distribution private key is no longer a blocker. The existing
+App Store Connect key and Apple cloud-managed signing exported a valid IPA.
+Apple's validate-only check returned zero errors on September 11, 2026.
+
+The successful export used the existing archive and team, automatic signing,
+`destination=export`, `method=app-store-connect`, and
+`manageAppVersionAndBuildNumber=false`. Authentication used the existing key
+file; no key material is stored here. Pass the existing key path, ID and issuer
+through xcodebuild's `-authenticationKeyPath`, `-authenticationKeyID` and
+`-authenticationKeyIssuerID`, together with `-allowProvisioningUpdates`.
+
+Run xcodebuild with a command-local `PATH=/usr/bin:/bin:/usr/sbin:/sbin`.
+Otherwise Apple's rsync can launch the Homebrew rsync server during packaging;
+that server rejects `--extended-attributes` and export reports `Copy failed`.
+No system-wide PATH change is needed.
+
+The resulting IPA is retained at
+`artifacts/TK11230-BoomerCalc-8-cloud-export/App.ipa`. Its SHA-256, bundle
+identity, checks, and remaining work are in `cloud-signing-proof.json`.
+`apple-validation.json` contains Apple's result. Its one warning concerns the
+future Spring 2027 minimum iOS version requirement; validation passed today.
+
+Cloud signing is an authenticated remote signing operation even when exporting
+to a local directory. Existing certificate inventory was unchanged. Xcode
+created an `AWAITING_UPLOAD` build-upload metadata record; no binary was uploaded
+or submitted. Preserve existing review submissions and the GovArbitrage owner's
+completed reply. All email sends remain excluded.
+
+Exact-build physical-device verification remains unfinished. Signing success
+does not establish native UI behavior or App Review acceptance. Recheck current
+App Store Connect build state before any later upload or attachment.
+
+Reference: https://developer.apple.com/videos/play/wwdc2021/10204/
diff --git a/verification/TK-11230/native-build8/apple-validation.json b/verification/TK-11230/native-build8/apple-validation.json
new file mode 100644
index 0000000..60ab618
--- /dev/null
+++ b/verification/TK-11230/native-build8/apple-validation.json
@@ -0,0 +1,22 @@
+{
+  "details" : {
+
+  },
+  "os-version" : "Version 26.4 (Build 25E246)",
+  "success-message" : "No errors, 1 warnings, validating archive at '/Users/macstudio3/Projects/boomer-calculator/artifacts/TK11230-BoomerCalc-8-cloud-export/App.ipa'.",
+  "tool-path" : "/Applications/Xcode.app/Contents/SharedFrameworks/ContentDelivery.framework/Resources",
+  "tool-version" : "26.40.1 (174001)",
+  "warnings" : [
+    {
+      "code" : 90068,
+      "message" : "MinimumOSVersion too low. This app has a MinimumOSVersion of 14.0. Starting in Spring 2027, all iOS apps must have a MinimumOSVersion of 15.0 or later in order to be uploaded to App Store Connect or submitted for distribution.",
+      "underlying-errors" : [
+
+      ],
+      "user-info" : {
+        "NSLocalizedDescription" : "MinimumOSVersion too low. This app has a MinimumOSVersion of 14.0. Starting in Spring 2027, all iOS apps must have a MinimumOSVersion of 15.0 or later in order to be uploaded to App Store Connect or submitted for distribution.",
+        "server_warning" : "{\n    code = 90068;\n    description = \"MinimumOSVersion too low. This app has a MinimumOSVersion of 14.0. Starting in Spring 2027, all iOS apps must have a MinimumOSVersion of 15.0 or later in order to be uploaded to App Store Connect or submitted for distribution.\";\n}"
+      }
+    }
+  ]
+}
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/claude.txt b/verification/TK-11230/native-build8/cloud-signing-decision/claude.txt
new file mode 100644
index 0000000..19b5d16
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/claude.txt
@@ -0,0 +1 @@
+[claude disabled: DTD_ZERO_COST=1]
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/codex-debate.txt b/verification/TK-11230/native-build8/cloud-signing-decision/codex-debate.txt
new file mode 100644
index 0000000..8c7d01d
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/codex-debate.txt
@@ -0,0 +1,9 @@
+**PROSECUTOR:** A understates its effects by calling this “local-only.” Apple documents that cloud-signing requests can trigger automatic certificate creation or rotation; exporting locally does not make signing an account-read-only operation. Stopping on errors cannot undo changes already made. A valid ASC key also does not establish cloud-signing permission. [Apple certificate documentation](https://developer.apple.com/help/account/certificates/cloud-managed-certificates)
+
+**DEFENDER:** Those objections defeat a guarantee of zero account changes, but A makes a bounded export attempt using automatic cloud signing. The stated constraints prohibit uploads, device registration, explicit revocation, and email—not ordinary cloud-signing management. Apple explicitly supports signing without a local Distribution private key and distinguishes export from upload. Permission uncertainty supports the specified stop-on-error rule; it does not establish that the attempt is inappropriate. [Apple’s distribution workflow](https://developer.apple.com/videos/play/wwdc2021/10204/)
+
+**JUDGE:** The defender prevails. The prosecutor exposes imprecise wording and uncertain permissions, but neither contradicts the supplied authorization for scoped signing work. Requiring a local private key would reject a documented alternative without testing it.
+
+FINAL: KEEP
+
+Proceed with the single constrained export attempt. The controlling distinction is that “local-only” describes the artifact’s destination, not the signing service’s operation: automatic signing can manage remote signing assets. On the supplied constraints, that inherent behavior does not invalidate A, while the bans on upload, device registration, explicit revocation, and email remain binding.
\ No newline at end of file
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/codex.txt b/verification/TK-11230/native-build8/cloud-signing-decision/codex.txt
new file mode 100644
index 0000000..dbf7de8
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/codex.txt
@@ -0,0 +1,3 @@
+VERDICT: A
+
+Try one local-only export of the verified archive using the existing valid ASC key and documented automatic cloud signing flags, scoped to the existing team/app, with destination `export` and `manageAppVersionAndBuildNumber=false`. This tests the authorized path without assuming a local Distribution private key is required. Do not upload, register devices, explicitly revoke certificates, or send email; stop on access or certificate-limit errors.
\ No newline at end of file
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/grok.txt b/verification/TK-11230/native-build8/cloud-signing-decision/grok.txt
new file mode 100644
index 0000000..7b3ad95
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/grok.txt
@@ -0,0 +1 @@
+[grok unavailable]
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/kimi.txt b/verification/TK-11230/native-build8/cloud-signing-decision/kimi.txt
new file mode 100644
index 0000000..ea4b5a5
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/kimi.txt
@@ -0,0 +1 @@
+[kimi unavailable]
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/muse.txt b/verification/TK-11230/native-build8/cloud-signing-decision/muse.txt
new file mode 100644
index 0000000..3a84ae1
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/muse.txt
@@ -0,0 +1 @@
+[muse unavailable]
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/question.txt b/verification/TK-11230/native-build8/cloud-signing-decision/question.txt
new file mode 100644
index 0000000..7f2a120
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/question.txt
@@ -0,0 +1 @@
+TK11230 Boomer Calc local App Store export failed because no local Distribution identity. User has now explicitly said unblock after authorizing scoped non-email work. Existing ASC API key is valid. Apple WWDC10204 and local xcodebuild help document cloud signing with -allowProvisioningUpdates plus authenticationKeyPath/ID/IssuerID. Option A: try one local-only export of the existing verified archive using existing key, automatic cloud signing and existing team/app, destination export, manageAppVersionAndBuildNumber false, no upload, no device registration, no explicit certificate revocation, no email; stop on access/certificate-limit errors. Option B: keep blocked demanding a local Distribution private key without testing cloud signing. Option C: manually revoke and replace team certificates. Pick exactly one option. Begin your answer with VERDICT: <option> on its own line, then give one paragraph of reasoning.
\ No newline at end of file
diff --git a/verification/TK-11230/native-build8/cloud-signing-decision/qwen.txt b/verification/TK-11230/native-build8/cloud-signing-decision/qwen.txt
new file mode 100644
index 0000000..3823c12
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-decision/qwen.txt
@@ -0,0 +1,2 @@
+VERDICT: A  
+Option A is the most viable solution because it leverages existing valid resources (the ASC API key, verified archive, and team/app configuration) while utilizing Apple's recommended cloud signing workflow with `-allowProvisioningUpdates`, which bypasses the need for a local Distribution identity. By avoiding manual certificate revocation (Option C) and rejecting the unnecessary demand for a local private key (Option B), it aligns with Apple's modern practices of minimizing local certificate dependencies. The parameters specified (no upload, no device registration, etc.) ensure minimal risk while testing cloud signing, and stopping on access/certificate-limit errors provides a safety net to avoid further complications. This approach respects the user's authorization of scoped non-email work and avoids unnecessary disruptions.
diff --git a/verification/TK-11230/native-build8/cloud-signing-proof.json b/verification/TK-11230/native-build8/cloud-signing-proof.json
new file mode 100644
index 0000000..b59d5c6
--- /dev/null
+++ b/verification/TK-11230/native-build8/cloud-signing-proof.json
@@ -0,0 +1,60 @@
+{
+  "ticket": "TK-11230",
+  "timestamp": "2026-09-11T18:33:35.975141+00:00",
+  "intent": "Unblock Boomer Calc build8 distribution export using existing Apple cloud signing",
+  "riskTier": "R3",
+  "authorization": "Steve: unblock; scoped non-email actions authorized",
+  "baseline": "Local export failed because no local Distribution private key; archived code previously verified",
+  "artifact": {
+    "ipa": "/Users/macstudio3/Projects/boomer-calculator/artifacts/TK11230-BoomerCalc-8-cloud-export/App.ipa",
+    "sha256": "9b0b2b49789ca3432668d4772eb7e5a71d307418bcd65800b6748ab27fe323c4",
+    "size": 5695703,
+    "bundle": "com.boomercalc67.app",
+    "version": "1.0.1",
+    "build": "8",
+    "zipIntegrity": "PASS",
+    "embeddedFilesMatched": 39,
+    "mismatches": []
+  },
+  "checks": [
+    {
+      "name": "Authenticated cloud signing",
+      "verdict": "PASS"
+    },
+    {
+      "name": "Local IPA export using system PATH",
+      "verdict": "PASS"
+    },
+    {
+      "name": "codesign --verify --deep --strict",
+      "verdict": "PASS",
+      "authority": "Apple Distribution: Steven Abrams (3VAV3KMNZK)"
+    },
+    {
+      "name": "App Store profile",
+      "verdict": "PASS",
+      "getTaskAllow": false,
+      "appIdentifier": "3VAV3KMNZK.com.boomercalc67.app"
+    },
+    {
+      "name": "Apple validate-only check",
+      "verdict": "PASS",
+      "errors": 0,
+      "warnings": 1,
+      "evidence": "apple-validation.json"
+    },
+    {
+      "name": "Existing certificate inventory preserved",
+      "verdict": "PASS"
+    },
+    {
+      "name": "Exact build physical-device journey",
+      "verdict": "SKIP",
+      "reason": "Not yet exercised; preflight interrupted before installation"
+    }
+  ],
+  "retry": "Authenticated export passed signing but failed IPA packaging when Apple rsync selected incompatible Homebrew server; command-local PATH=/usr/bin:/bin:/usr/sbin:/sbin resolved it. No global PATH edit.",
+  "sideEffects": "Xcode export created AWAITING_UPLOAD buildUploads metadata for build8; no binary upload or submission performed. No email send action executed.",
+  "retained": "Signed IPA and archive retained under gitignored artifacts; signed binaries and provisioning information excluded from git.",
+  "verdict": "SIGNING AND EXPORT UNBLOCKED; native verification and App Store submission remain incomplete."
+}

← f7093c7 Record signing export blocker after approval relay  ·  back to Boomer Calculator  ·  Record native build 8 installation and device handoff 2df03e3 →