name: Build iOS App on: push: branches: - main workflow_dispatch: jobs: build: name: Build .ipa and publish source runs-on: macos env: # Point xcodebuild at full Xcode without sudo (sudo hangs in CI). # DEVELOPER_DIR overrides the active developer directory for all steps. DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer steps: - name: Checkout uses: actions/checkout@v4 - name: Select Xcode run: | xcodebuild -version - name: Build unsigned .ipa run: | # Build the app bundle (no signing — SideStore signs on-device) xcodebuild \ -project iOS-hello_world.xcodeproj \ -scheme iOS-hello_world \ -configuration Release \ -sdk iphoneos \ -derivedDataPath build \ CODE_SIGNING_ALLOWED=NO \ CODE_SIGNING_REQUIRED=NO \ CODE_SIGN_IDENTITY="" \ build # Locate the .app bundle APP_PATH=$(find build/Build/Products -name "*.app" -type d | head -1) echo "App bundle: $APP_PATH" # Package into an .ipa (Payload/App.app structure) mkdir -p dist/Payload cp -R "$APP_PATH" dist/Payload/ cd dist zip -r ../iOS-hello_world.ipa Payload cd .. ls -la iOS-hello_world.ipa - name: Generate source.json run: | VERSION="1.0" SIZE=$(stat -f%z iOS-hello_world.ipa) DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") cat > source.json <