Graduately/scripts/bundle-ios.sh
pepaskopec-blip c3bc32113b Build all apps from Markdown content; Compose Desktop replaces GTK on Linux and Windows
- content/ + scripts/build-content.py produce content.json for every app
- stable lesson IDs with one-time progress migration (Swift, Kotlin)
- shared answer-check tests (tests/answers.json) for Kotlin and Swift
- android/desktop: Compose app with updater, speech and GTK progress import
- CI packages AppImage and Windows zip with ProGuard, runs the tests

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 20:40:37 +02:00

37 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
# Build an unsigned iOS IPA for sideloading (Xcode / AltStore / Sideloadly).
set -eu
root=$(CDPATH= cd -- "$(dirname "$0")/.." && pwd)
cd "$root"
# The Xcode target builds content.json from content/ itself.
export DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode.app/Contents/Developer}"
COMMIT="${COMMIT:-$(git -C "$root" rev-parse HEAD 2>/dev/null || echo dev)}"
dd="$root/ios/DerivedData"
rm -rf "$root/ios/Payload"
mkdir -p "$dd" "$root/dist-ios"
xcodebuild \
-project ios/Graduately.xcodeproj \
-scheme Graduately \
-configuration Release \
-sdk iphoneos \
-destination 'generic/platform=iOS' \
-derivedDataPath "$dd" \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO \
COMMIT="$COMMIT"
app=$(find "$dd" -name 'Graduately.app' -path '*/Release-iphoneos/*' | head -n 1)
if [ -z "$app" ]; then
echo "Graduately.app not found" >&2
exit 1
fi
mkdir -p "$root/ios/Payload"
cp -R "$app" "$root/ios/Payload/Graduately.app"
(cd "$root/ios" && zip -r -q "$root/dist-ios/graduately-ios.ipa" Payload)
echo "wrote $root/dist-ios/graduately-ios.ipa"