Release v0.3
This commit is contained in:
69
scripts/make-app-store-pkg.sh
Executable file
69
scripts/make-app-store-pkg.sh
Executable file
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
source "$ROOT_DIR/scripts/release-version.sh"
|
||||
|
||||
APP_NAME="I Hate PDFs"
|
||||
BUNDLE_ID="${BUNDLE_ID:-net.akkolli.ihatepdfs}"
|
||||
APP_SIGNING_IDENTITY="${APP_SIGNING_IDENTITY:-}"
|
||||
INSTALLER_SIGNING_IDENTITY="${INSTALLER_SIGNING_IDENTITY:-}"
|
||||
PROVISIONING_PROFILE="${PROVISIONING_PROFILE:-}"
|
||||
ENTITLEMENTS_PATH="${ENTITLEMENTS_PATH:-$ROOT_DIR/Signing/IHatePDFs-AppStore.entitlements}"
|
||||
DIST_DIR="$ROOT_DIR/dist"
|
||||
APP_DIR="$DIST_DIR/$APP_NAME.app"
|
||||
PKG_PATH="${PKG_PATH:-$DIST_DIR/IHatePDFs-v$RELEASE_VERSION-macos-appstore.pkg}"
|
||||
VALIDATE_WITH_ALTOOL="${VALIDATE_WITH_ALTOOL:-0}"
|
||||
|
||||
require_value() {
|
||||
local name="$1"
|
||||
local value="$2"
|
||||
local hint="$3"
|
||||
|
||||
if [[ -z "$value" ]]; then
|
||||
echo "Missing $name." >&2
|
||||
echo "$hint" >&2
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
require_value "APP_SIGNING_IDENTITY" "$APP_SIGNING_IDENTITY" \
|
||||
"Example: APP_SIGNING_IDENTITY=\"Apple Distribution: Your Name (TEAMID)\" or \"3rd Party Mac Developer Application: Your Name (TEAMID)\""
|
||||
require_value "INSTALLER_SIGNING_IDENTITY" "$INSTALLER_SIGNING_IDENTITY" \
|
||||
"Example: INSTALLER_SIGNING_IDENTITY=\"3rd Party Mac Developer Installer: Your Name (TEAMID)\""
|
||||
require_value "PROVISIONING_PROFILE" "$PROVISIONING_PROFILE" \
|
||||
"Download an App Store provisioning profile for $BUNDLE_ID and pass its local path."
|
||||
|
||||
mkdir -p "$DIST_DIR"
|
||||
|
||||
BUNDLE_ID="$BUNDLE_ID" \
|
||||
APP_VERSION="$APP_VERSION" \
|
||||
BUILD_NUMBER="$BUILD_NUMBER" \
|
||||
SIGNING_IDENTITY="$APP_SIGNING_IDENTITY" \
|
||||
ENTITLEMENTS_PATH="$ENTITLEMENTS_PATH" \
|
||||
PROVISIONING_PROFILE="$PROVISIONING_PROFILE" \
|
||||
"$ROOT_DIR/scripts/build-app.sh"
|
||||
|
||||
xattr -cr "$APP_DIR" 2>/dev/null || true
|
||||
rm -f "$PKG_PATH"
|
||||
productbuild \
|
||||
--component "$APP_DIR" /Applications \
|
||||
--sign "$INSTALLER_SIGNING_IDENTITY" \
|
||||
"$PKG_PATH"
|
||||
|
||||
pkgutil --check-signature "$PKG_PATH"
|
||||
|
||||
if [[ "$VALIDATE_WITH_ALTOOL" == "1" ]]; then
|
||||
require_value "ASC_USERNAME" "${ASC_USERNAME:-}" \
|
||||
"Set ASC_USERNAME to the Apple ID or App Store Connect API key issuer format expected by altool."
|
||||
require_value "ASC_PASSWORD" "${ASC_PASSWORD:-}" \
|
||||
"Set ASC_PASSWORD to an app-specific password or app-store-connect API key password."
|
||||
|
||||
xcrun altool --validate-app \
|
||||
--type macos \
|
||||
--file "$PKG_PATH" \
|
||||
--username "$ASC_USERNAME" \
|
||||
--password "$ASC_PASSWORD"
|
||||
fi
|
||||
|
||||
echo "Created App Store package: $PKG_PATH"
|
||||
Reference in New Issue
Block a user