mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-17 05:41:29 +02:00
iOS TestFlight: sanity-check Apple secrets reach the runner
First TestFlight trigger failed at the .p12 import step with "base64: stdin: (null): error decoding base64 input stream" — meaning $APPLE_DIST_CERT_P12_BASE64 was empty when reaching the keychain step. Add a length-only debug step at the top of the Apple-signing section that prints the length of every required Apple secret and bails fast with a clear "set this secret on Builds/hash-wallet" message if any is zero-length. Same pattern build-android.yml uses for the Android keystore + Trocador secrets. The likely cause is the Apple secrets being set on github-such- software/hash-wallet but not on the Builds fork the workflow runs in — Gitea secrets are repo-scoped, not org-scoped.
This commit is contained in:
@@ -208,6 +208,40 @@ jobs:
|
||||
lib/.secrets.g.dart
|
||||
|
||||
# ---- Apple signing setup --------------------------------------------
|
||||
- name: Sanity-check Apple secrets are reaching the runner
|
||||
env:
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
|
||||
APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }}
|
||||
APPLE_API_KEY_P8_BASE64: ${{ secrets.APPLE_API_KEY_P8_BASE64 }}
|
||||
APPLE_DIST_CERT_P12_BASE64: ${{ secrets.APPLE_DIST_CERT_P12_BASE64 }}
|
||||
APPLE_DIST_CERT_P12_PASSWORD: ${{ secrets.APPLE_DIST_CERT_P12_PASSWORD }}
|
||||
APPLE_PROVISIONING_PROFILE_BASE64: ${{ secrets.APPLE_PROVISIONING_PROFILE_BASE64 }}
|
||||
APPLE_KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
|
||||
run: |
|
||||
# Print LENGTHS only — never the secret values. Length 0 means the
|
||||
# secret isn't actually reaching the runner (most often: secret is
|
||||
# set on a different Gitea repo than this workflow is running in).
|
||||
set +e
|
||||
echo "APPLE_TEAM_ID length: ${#APPLE_TEAM_ID}"
|
||||
echo "APPLE_KEY_ID length: ${#APPLE_KEY_ID}"
|
||||
echo "APPLE_ISSUER_ID length: ${#APPLE_ISSUER_ID}"
|
||||
echo "APPLE_API_KEY_P8_BASE64 length: ${#APPLE_API_KEY_P8_BASE64}"
|
||||
echo "APPLE_DIST_CERT_P12_BASE64 length: ${#APPLE_DIST_CERT_P12_BASE64}"
|
||||
echo "APPLE_DIST_CERT_P12_PASSWORD length: ${#APPLE_DIST_CERT_P12_PASSWORD}"
|
||||
echo "APPLE_PROVISIONING_PROFILE_BASE64 length: ${#APPLE_PROVISIONING_PROFILE_BASE64}"
|
||||
echo "APPLE_KEYCHAIN_PASSWORD length: ${#APPLE_KEYCHAIN_PASSWORD}"
|
||||
set -e
|
||||
# Fail fast on any zero-length secret so we don't waste time on the
|
||||
# subsequent steps.
|
||||
for n in TEAM_ID KEY_ID ISSUER_ID API_KEY_P8_BASE64 DIST_CERT_P12_BASE64 DIST_CERT_P12_PASSWORD PROVISIONING_PROFILE_BASE64 KEYCHAIN_PASSWORD; do
|
||||
var="APPLE_$n"
|
||||
if [[ -z "${!var}" ]]; then
|
||||
echo "FATAL: $var is empty — set it as a Gitea repo secret on the repo this workflow runs in (Builds/hash-wallet)."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Create temp keychain + import distribution cert
|
||||
env:
|
||||
APPLE_DIST_CERT_P12_BASE64: ${{ secrets.APPLE_DIST_CERT_P12_BASE64 }}
|
||||
|
||||
Reference in New Issue
Block a user