diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..5a249b9 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,93 @@ +name: Release + +on: + push: + paths: + - Configs/Deployment.xcconfig + +jobs: + upload: + runs-on: macos-13 + environment: Release + env: + GITHUB_API_BASE_URL: https://api.github.com/repos/${{ github.repository }} + GH_TOKEN: ${{ github.token }} + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up signing + run: | + KEYCHAIN="$RUNNER_TEMP/keychain.keychain-db" + KEYCHAIN_PASSWORD=password + + echo "${{ secrets.CERTIFICATE }}" | base64 -d > "$RUNNER_TEMP/Certificate.p12" + + security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN" + security set-keychain-settings "$KEYCHAIN" + security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN" + security list-keychains -d user -s "$KEYCHAIN" + security import "$RUNNER_TEMP/Certificate.p12" -P "${{ secrets.CERTIFICATE_PASSWORD }}" -A -k "$KEYCHAIN" + + mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles + cp Release/iOS.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles + + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_15.2.app + + - name: Set up visionOS SDK + run: | + defaults write com.apple.dt.Xcode AllowUnsupportedVisionOSHost -bool YES + defaults write com.apple.CoreSimulator AllowUnsupportedVisionOSHost -bool YES + xcodebuild -downloadPlatform visionOS + + - name: System Info + run: | + uname -a + xcodebuild -version + + - name: Archive macOS + run: xcodebuild -scheme macOS -archivePath macOS.xcarchive archive + + - name: Archive visionOS + run: xcodebuild -scheme visionOS -archivePath visionOS.xcarchive archive + + - name: Collect Assets + run: | + ( + cd macOS.xcarchive/Products/Applications/ + zip -r macOS.zip Ensemble.app + mv macOS.zip ../.. + ) + + ( + cd macOS.xcarchive/dSYMs/ + zip -r macOS-symbols.zip Ensemble.app.dSYM/ + mv macOS-symbols.zip .. + ) + + ( + cd visionOS.xcarchive/Products/Applications/ + zip -r visionOS.zip Ensemble.app + mv visionOS.zip ../.. + ) + + ( + cd visionOS.xcarchive/dSYMs/ + zip -r visionOS-symbols.zip Ensemble.app.dSYM/ + mv visionOS-symbols.zip .. + ) + + - name: Create Release + run: | + version="$(cat Configs/Deployment.xcconfig | grep CURRENT_PROJECT_VERSION | awk '{ print $3 }')" + + gh release create "v$version" -p macOS.zip macOS-symbols.zip visionOS.zip visionOS-symbols.zip + + # - name: Upload macOS + # run: xcodebuild -exportArchive -exportOptionsPlist Release/ExportOptions.plist -archivePath MacCast-macOS.xcarchive/ -exportPath macOS + + # - name: Upload visionOS + # run: xcodebuild -exportArchive -exportOptionsPlist Release/ExportOptions.plist -archivePath MacCast-visionOS.xcarchive/ -exportPath visionOS diff --git a/Release/ExportOptions.plist b/Release/ExportOptions.plist new file mode 100644 index 0000000..a2e7f76 --- /dev/null +++ b/Release/ExportOptions.plist @@ -0,0 +1,14 @@ + + + + + destination + upload + manageAppVersionAndBuildNumber + + method + app-store-connect + stripSwiftSymbols + + + diff --git a/Release/iOS.mobileprovision b/Release/iOS.mobileprovision new file mode 100644 index 0000000..9aacc74 Binary files /dev/null and b/Release/iOS.mobileprovision differ