crossmate

A collaborative crossword app for iOS
Log | Files | Refs | LICENSE

upload-ios.sh (1049B)


      1 #!/bin/bash
      2 set -euo pipefail
      3 
      4 REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
      5 SECRETS="$REPO_ROOT/.asc/secrets.sh"
      6 IPA_PATH="${1:-/tmp/Crossmate-export/Crossmate.ipa}"
      7 
      8 if [[ ! -f "$SECRETS" ]]; then
      9     echo "Error: $SECRETS not found. See Scripts/secrets.sh.example for the required format."
     10     exit 1
     11 fi
     12 
     13 if [[ ! -f "$IPA_PATH" ]]; then
     14     echo "Error: IPA not found at $IPA_PATH"
     15     echo "Run Scripts/publish-ios.sh --check first, or pass an IPA path:"
     16     echo "  bash Scripts/upload-ios.sh /path/to/Crossmate.ipa"
     17     exit 1
     18 fi
     19 
     20 source "$SECRETS"
     21 
     22 cd "$REPO_ROOT"
     23 
     24 mkdir -p "$REPO_ROOT/private_keys"
     25 cp "$REPO_ROOT/.asc/AuthKey_${KEY_ID}.p8" "$REPO_ROOT/private_keys/"
     26 
     27 cleanup_key() {
     28     rm -f "$REPO_ROOT/private_keys/AuthKey_${KEY_ID}.p8"
     29     rmdir "$REPO_ROOT/private_keys" 2>/dev/null || true
     30 }
     31 trap cleanup_key EXIT
     32 
     33 echo "==> Uploading $IPA_PATH to App Store Connect..."
     34 xcrun iTMSTransporter \
     35     -m upload \
     36     -assetFile "$IPA_PATH" \
     37     -apiKey "$KEY_ID" \
     38     -apiIssuer "$ISSUER_ID" \
     39     -v informational
     40 
     41 echo "==> Done!"