Commit 6411a02f authored by Kourser's avatar Kourser
Browse files

chore(app-store): macOS App Store export options + upload script



ExportOptions-macOS-appstore.plist (app-store-connect / upload) and
scripts/release-macos-appstore.sh to archive + export + upload the macOS
build to App Store Connect. Requires a "Mac Installer Distribution"
certificate in the keychain (cloud signing via API key is not permitted);
alternatively distribute the archive from Xcode Organizer.

Co-Authored-By: default avatarClaude Opus 4.8 <noreply@anthropic.com>
parent f93ab096
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>method</key>
	<string>app-store-connect</string>
	<key>teamID</key>
	<string>88NB46UUP7</string>
	<key>signingStyle</key>
	<string>automatic</string>
	<key>destination</key>
	<string>upload</string>
</dict>
</plist>
+42 −0
Original line number Diff line number Diff line
#!/usr/bin/env bash
#
# Archive + export (Mac App Store) + upload du build macOS vers App Store Connect.
#   ./scripts/release-macos-appstore.sh
#
# ⚠️ PRÉREQUIS : un certificat « Mac Installer Distribution » (aka 3rd Party Mac
#    Developer Installer) doit exister dans le trousseau — sinon l'export échoue
#    avec « No signing certificate "Mac Installer Distribution" found ».
#    Créer une fois : Xcode > Settings > Accounts > (compte) > Manage Certificates
#    > + > Mac Installer Distribution.  (La création via clé API échoue en
#    « Cloud signing permission error » sauf clé Admin.)
#
# Alternative sans CLI : distribuer l'archive via Xcode > Organizer >
#    Distribute App > App Store Connect (Xcode gère le certif via ton compte).
#
# NE soumet PAS à la review — crée seulement le build côté ASC.
set -euo pipefail
cd "$(dirname "$0")/.."
set -a; . scripts/release.env 2>/dev/null || true; set +a
export DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode.app/Contents/Developer}"

: "${ASC_KEY_ID:?Renseigne ASC_KEY_ID (scripts/release.env)}"
: "${ASC_ISSUER_ID:?Renseigne ASC_ISSUER_ID}"
: "${ASC_KEY_PATH:?Renseigne ASC_KEY_PATH (.p8)}"
P8="${ASC_KEY_PATH/#\~/$HOME}"
AUTH=(-authenticationKeyPath "$P8" -authenticationKeyID "$ASC_KEY_ID" -authenticationKeyIssuerID "$ASC_ISSUER_ID")

ARCHIVE="build/Skingomz-macOS-appstore.xcarchive"
EXPORT="build/macos-appstore-export"

echo "▶︎ Archive macOS (App Store)…"
rm -rf "$ARCHIVE" "$EXPORT"
xcodebuild -project Skingomz.xcodeproj -scheme Skingomz -configuration Release \
  -destination 'generic/platform=macOS' -archivePath "$ARCHIVE" \
  -allowProvisioningUpdates "${AUTH[@]}" archive

echo "▶︎ Export + upload (app-store-connect)…"
xcodebuild -exportArchive -archivePath "$ARCHIVE" \
  -exportOptionsPlist ExportOptions-macOS-appstore.plist -exportPath "$EXPORT" \
  -allowProvisioningUpdates "${AUTH[@]}"

echo "✓ Build macOS envoyé à App Store Connect."