From b9c6cabf5c88fec55cdcb8cb3497896fdee578cf Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Sat, 11 Oct 2025 01:05:27 -0700 Subject: [PATCH 01/17] BrickController Legacy & IOS build (#180) --- .github/workflows/build-android.yml | 10 +- .github/workflows/build-core.yml | 4 +- .github/workflows/build-ios.yml | 125 ++++++++++++++++++ .github/workflows/build-windows.yml | 6 +- .../BrickController2.Android.csproj | 7 +- .../BrickController2.Android/MainActivity.cs | 2 +- .../Properties/AndroidManifest.xml | 4 +- .../Package.appxmanifest | 2 +- .../Properties/AssemblyInfo.cs | 6 +- .../BrickController2.iOS.csproj | 8 +- .../BrickController2.iOS/Info.plist | 8 +- .../BrickController2/UI/Pages/AboutPage.xaml | 8 +- .../ControllerActionPageViewModel.cs | 4 +- Directory.Build.props | 2 +- README.md | 8 +- 15 files changed, 167 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/build-ios.yml diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index e1435413..62bfdc78 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -4,7 +4,7 @@ on: push: branches: - default - - 'releases/**' + - 'release/**' paths: - '.github/**/*android.yml' - 'BrickController2/*.props' @@ -14,7 +14,7 @@ on: pull_request: branches: - default - - 'releases/**' + - 'release/**' paths: - '.github/**/*android.yml' - 'BrickController2/*.props' @@ -79,15 +79,15 @@ jobs: uses: actions/upload-artifact@v4 with: name: brickcontroller-android-ci-build - path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/com.scn.BrickController2-Signed.apk + path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.apk - name: Upload Artifact to Release if: github.event_name == 'release' && github.event.action == 'published' uses: actions/upload-release-asset@v1 with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} - asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/com.scn.BrickController2-Signed.apk - asset_name: BrickController2_${{env.APP_DISPLAY_VERSION}}.apk + asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.apk + asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.apk asset_content_type: application/vnd.android.package-archive env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} diff --git a/.github/workflows/build-core.yml b/.github/workflows/build-core.yml index 994a4469..49030888 100644 --- a/.github/workflows/build-core.yml +++ b/.github/workflows/build-core.yml @@ -4,7 +4,7 @@ on: push: branches: - default - - 'releases/**' + - 'release/**' paths: - '.github/**/*core.yml' - 'BrickController2/*.props' @@ -14,7 +14,7 @@ on: pull_request: branches: - default - - 'releases/**' + - 'release/**' paths: - '.github/**/*core.yml' - 'BrickController2/*.props' diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml new file mode 100644 index 00000000..feb9ed83 --- /dev/null +++ b/.github/workflows/build-ios.yml @@ -0,0 +1,125 @@ +name: Build BrickController iOS + +on: + push: + branches: + - default + - 'release/**' + paths: + - '.github/**/*ios.yml' + - 'BrickController2/*.props' + - 'BrickController2/*.sln' + - 'BrickController2/BrickController2/**' + - 'BrickController2/BrickController2.iOS/**' + pull_request: + branches: + - default + - 'release/**' + paths: + - '.github/**/*ios.yml' + - 'BrickController2/*.props' + - 'BrickController2/*.sln' + - 'BrickController2/BrickController2/**' + - 'BrickController2/BrickController2.iOS/**' + release: + types: + - published + workflow_dispatch: + +permissions: + contents: read + +jobs: + build-ios: + runs-on: macos-15 + name: BrickController iOS Build + env: + APP_DISPLAY_VERSION: "" + steps: + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 10.0.x + + # fix error with missing XCode 16.4 + - name: Select Xcode 16.4 + run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer + + - name: Install MAUI workload + run: dotnet workload install maui + + - name: Find Current Release Info + if: github.event_name == 'release' && github.event.action == 'published' + id: get_release + uses: octokit/request-action@v2.x + with: + route: GET /repos/${{ github.repository }}/releases/tags/${{ github.event.release.tag_name }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Set APP_DISPLAY_VERSION for release + if: github.event_name == 'release' && github.event.action == 'published' + shell: bash + run: echo "APP_DISPLAY_VERSION=$(echo '${{ fromJson(steps.get_release.outputs.data).tag_name }}')" >> $GITHUB_ENV + + - name: Import Code-Signing Certificates + uses: Apple-Actions/import-codesign-certs@v1 + with: + p12-file-base64: ${{ secrets.APPLE_SIGNING_CERTIFICATE_BASE64 }} + p12-password: ${{ secrets.APPLE_SIGNING_CERTIFICATE_PASSWORD }} + + - name: Download Apple Provisioning Profiles + uses: Apple-Actions/download-provisioning-profiles@v1 + with: + bundle-id: 'cz.vico.brickcontrollerlegacy' + issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} + api-key-id: ${{ secrets.APPSTORE_KEY_ID }} + api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} + + - name: List Keychain Certificates + run: security find-identity -v -p codesigning + + - name: Restore Dependencies + run: dotnet restore BrickController2/BrickController2.iOS/BrickController2.iOS.csproj + - name: Build MAUI iOS + run: >- + dotnet publish BrickController2/BrickController2.iOS/BrickController2.iOS.csproj + --no-restore + -c Release + -f net10.0-iOS + -p:ArchiveOnBuild=true + -p:EnableAssemblyILStripping=false + -p:CodesignKey="iPhone Distribution" + -p:CodesignProvision=Automatic + -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" + + - name: List build output + run: ls -R BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/ + + - name: Upload IOS Artifact + uses: actions/upload-artifact@v4 + with: + name: brickcontroller-ios-ci-build + path: BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa + + - name: Upload Artifact to Release + if: github.event_name == 'release' && github.event.action == 'published' + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} + asset_path: BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa + asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.ipa + asset_content_type: application/octet-stream + env: + GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} + + - name: Upload app to TestFlight + if: github.event_name == 'release' && github.event.action == 'published' + uses: Apple-Actions/upload-testflight-build@v1 + with: + app-path: 'BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa' + issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} + api-key-id: ${{ secrets.APPSTORE_KEY_ID }} + api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} + diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index df304361..40e2ff30 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -4,7 +4,7 @@ on: push: branches: - default - - 'releases/**' + - 'release/**' paths: - '.github/**/*windows.yml' - 'BrickController2/*.props' @@ -14,7 +14,7 @@ on: pull_request: branches: - default - - 'releases/**' + - 'release/**' paths: - '.github/**/*windows.yml' - 'BrickController2/*.props' @@ -113,7 +113,7 @@ jobs: with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} asset_path: BrickController2\BrickController2.WinUI\bin\x64\Release\net10.0-windows10.0.19041.0\win-x64\AppPackages\BrickController2.WinUI_${{env.APP_PACKAGE_VERSION}}_Test\BrickController2.WinUI_${{env.APP_PACKAGE_VERSION}}_x64.msix - asset_name: BrickController2_${{env.APP_DISPLAY_VERSION}}.msix + asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.msix asset_content_type: application/vnd.ms-appx env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} diff --git a/BrickController2/BrickController2.Android/BrickController2.Android.csproj b/BrickController2/BrickController2.Android/BrickController2.Android.csproj index decbb114..a1a24d8a 100644 --- a/BrickController2/BrickController2.Android/BrickController2.Android.csproj +++ b/BrickController2/BrickController2.Android/BrickController2.Android.csproj @@ -3,10 +3,11 @@ net10.0-android - 23.0 - 36.0 - Exe + 23.0 + 36.0 + Exe BrickController2.Droid + BrickController true Resource false diff --git a/BrickController2/BrickController2.Android/MainActivity.cs b/BrickController2/BrickController2.Android/MainActivity.cs index e95e65ea..ef9f4021 100644 --- a/BrickController2/BrickController2.Android/MainActivity.cs +++ b/BrickController2/BrickController2.Android/MainActivity.cs @@ -15,7 +15,7 @@ namespace BrickController2.Droid { [Activity( - Label = "BrickController2", + Label = "BrickController", Icon = "@mipmap/ic_launcher", Theme = "@style/MainTheme", MainLauncher = true, diff --git a/BrickController2/BrickController2.Android/Properties/AndroidManifest.xml b/BrickController2/BrickController2.Android/Properties/AndroidManifest.xml index 1fba04c1..6493810f 100644 --- a/BrickController2/BrickController2.Android/Properties/AndroidManifest.xml +++ b/BrickController2/BrickController2.Android/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@  - + @@ -14,5 +14,5 @@ - + \ No newline at end of file diff --git a/BrickController2/BrickController2.WinUI/Package.appxmanifest b/BrickController2/BrickController2.WinUI/Package.appxmanifest index 735b3b00..fbb39c50 100644 --- a/BrickController2/BrickController2.WinUI/Package.appxmanifest +++ b/BrickController2/BrickController2.WinUI/Package.appxmanifest @@ -28,7 +28,7 @@ - + net10.0-ios ios-arm64 - 12.2 + 12.2 Exe - com.scn.BrickController2 - BrickController2.iOS + cz.vico.brickcontroller + BrickController2.iOS true diff --git a/BrickController2/BrickController2.iOS/Info.plist b/BrickController2/BrickController2.iOS/Info.plist index 9e684753..775c343e 100644 --- a/BrickController2/BrickController2.iOS/Info.plist +++ b/BrickController2/BrickController2.iOS/Info.plist @@ -23,11 +23,11 @@ MinimumOSVersion 12.2 CFBundleDisplayName - BrickController2 + BrickController CFBundleIdentifier - com.scn.brickcontroller2 + cz.vico.brickcontroller CFBundleName - BrickController2 + BrickController NSBluetoothPeripheralUsageDescription Bluetooth access is required to use SBrick, BuWizz or Powered-Up devices. NSCalendarsUsageDescription @@ -43,7 +43,7 @@ CFBundleShortVersionString 3.4 CFBundleVersion - 50 + 51 NSBluetoothAlwaysUsageDescription Bluetooth access is required to use SBrick, BuWizz or Powered-Up devices. NSContactsUsageDescription diff --git a/BrickController2/BrickController2/UI/Pages/AboutPage.xaml b/BrickController2/BrickController2/UI/Pages/AboutPage.xaml index aadbb30f..793312b1 100644 --- a/BrickController2/BrickController2/UI/Pages/AboutPage.xaml +++ b/BrickController2/BrickController2/UI/Pages/AboutPage.xaml @@ -19,7 +19,8 @@ - diff --git a/BrickController2/BrickController2/UI/ViewModels/ControllerActionPageViewModel.cs b/BrickController2/BrickController2/UI/ViewModels/ControllerActionPageViewModel.cs index 83fd3c43..3b8ce37d 100644 --- a/BrickController2/BrickController2/UI/ViewModels/ControllerActionPageViewModel.cs +++ b/BrickController2/BrickController2/UI/ViewModels/ControllerActionPageViewModel.cs @@ -60,7 +60,7 @@ public ControllerActionPageViewModel( } else { - var lastSelectedDeviceId = _preferences.Get("LastSelectedDeviceId", string.Empty, "com.scn.BrickController2.ControllerActionPage"); + var lastSelectedDeviceId = _preferences.Get("LastSelectedDeviceId", string.Empty, "ControllerActionPage"); SelectedDevice = _deviceManager.GetDeviceById(lastSelectedDeviceId) ?? _deviceManager.Devices.FirstOrDefault(d => d.HasOutputChannel); Action.Channel = 0; Action.IsInvert = false; @@ -136,7 +136,7 @@ public Device? SelectedDevice public override void OnDisappearing() { - _preferences.Set("LastSelectedDeviceId", _selectedDevice!.Id, "com.scn.BrickController2.ControllerActionPage"); + _preferences.Set("LastSelectedDeviceId", _selectedDevice!.Id, "ControllerActionPage"); base.OnDisappearing(); } diff --git a/Directory.Build.props b/Directory.Build.props index 98015fcd..65ea4036 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -21,6 +21,6 @@ 3.4 - 50 + 51 \ No newline at end of file diff --git a/README.md b/README.md index 64954c3a..e3663b6a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# BrickController 2 +# BrickController -Cross platform mobile application for controlling your creations using a bluetooth gamepad. +Cross-platform application, forked from [BrickController 2](https://github.com/imurvai/brickcontroller2), for controlling LEGO® and compatible brick creations using a Bluetooth gamepad. + +This app lets you control your motorized builds — whether made from LEGO® or other compatible brick systems—using a standard Bluetooth game controller. ## Supported platforms @@ -38,7 +40,7 @@ Cross platform mobile application for controlling your creations using a bluetoo ## Project details -BrickController 2 is a MAUI application and can be compiled using Visual Studio 2026 (Professional, Enterprise and Community Editions) +BrickController is a MAUI application and can be compiled using Visual Studio 2026 (Professional, Enterprise and Community Editions) or Visual Studio for Mac. ## 3rd party libraries used From 08730d4c086dcd7c4746025b85c1974ed022680c Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Mon, 13 Oct 2025 12:16:24 -0700 Subject: [PATCH 02/17] Fix iOS versioning & publish AAB format for release [legacy] (#181) --- .github/workflows/build-android.yml | 29 +++++++++++++++++-- .../BrickController2.iOS/Info.plist | 4 --- README.md | 1 + 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 62bfdc78..c218dd42 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -66,14 +66,26 @@ jobs: - name: Setup Android signing shell: bash run: (echo "${{secrets.KEYSTORE}}" | base64 --decode) > BrickController2/BrickController2.Android/keystore.jks - - name: Build MAUI Android + - name: Build MAUI Android (APK) run: dotnet publish BrickController2/BrickController2.Android/BrickController2.Android.csproj ` -c Release ` -f net10.0-android ` --no-restore ` -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" ` -p:AndroidSigningKeyPass=${{secrets.KEYSTORE_PASSWORD}} ` - -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} + -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` + -p:AndroidPackageFormat=apk + + - name: Build MAUI Android (AAB) + if: github.event_name == 'release' && github.event.action == 'published' + run: dotnet publish BrickController2/BrickController2.Android/BrickController2.Android.csproj ` + -c Release ` + -f net10.0-android ` + --no-restore ` + -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" ` + -p:AndroidSigningKeyPass=${{secrets.KEYSTORE_PASSWORD}} ` + -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` + -p:AndroidPackageFormat=aab - name: Upload Android Artifact uses: actions/upload-artifact@v4 @@ -81,7 +93,7 @@ jobs: name: brickcontroller-android-ci-build path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.apk - - name: Upload Artifact to Release + - name: Upload APK Artifact to Release if: github.event_name == 'release' && github.event.action == 'published' uses: actions/upload-release-asset@v1 with: @@ -91,3 +103,14 @@ jobs: asset_content_type: application/vnd.android.package-archive env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} + + - name: Upload AAB Artifact to Release + if: github.event_name == 'release' && github.event.action == 'published' + uses: actions/upload-release-asset@v1 + with: + upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} + asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.aab + asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.aab + asset_content_type: application/x-authorware-bin + env: + GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} diff --git a/BrickController2/BrickController2.iOS/Info.plist b/BrickController2/BrickController2.iOS/Info.plist index 775c343e..4f8f121a 100644 --- a/BrickController2/BrickController2.iOS/Info.plist +++ b/BrickController2/BrickController2.iOS/Info.plist @@ -40,10 +40,6 @@ Location access is required to use SBrick, BuWizz or Powered-Up devices. NSCameraUsageDescription Camera is required in order to import a creation via QR code from another application. - CFBundleShortVersionString - 3.4 - CFBundleVersion - 51 NSBluetoothAlwaysUsageDescription Bluetooth access is required to use SBrick, BuWizz or Powered-Up devices. NSContactsUsageDescription diff --git a/README.md b/README.md index e3663b6a..635dc302 100644 --- a/README.md +++ b/README.md @@ -55,3 +55,4 @@ or Visual Studio for Mac. ## Author István Murvai +Vít Německý From 030e0a4dec0c15f9db0388983895c0ce6c0205ee Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 15 Oct 2025 12:26:28 -0700 Subject: [PATCH 03/17] Unify release app versioning + fix IOS builds: XCODE 26 (#182) --- .github/workflows/build-android.yml | 21 +++++++++------------ .github/workflows/build-ios.yml | 22 ++++++++-------------- .github/workflows/build-windows.yml | 26 ++++++-------------------- 3 files changed, 23 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index c218dd42..55e2b557 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -33,8 +33,6 @@ jobs: build-android: runs-on: windows-2025 name: BrickController Android Build - env: - APP_DISPLAY_VERSION: "" steps: @@ -47,6 +45,10 @@ jobs: - name: Install .NET MAUI Workload run: dotnet workload install maui-android + - name: Get App Version from Build Properties + shell: bash + run: echo "APP_VERSION=$(sed -n 's|.*\(.*\).*|\1|p' Directory.Build.props)" >> $GITHUB_ENV + - name: Find Current Release Info if: github.event_name == 'release' && github.event.action == 'published' id: get_release @@ -56,11 +58,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Set APP_DISPLAY_VERSION for release - if: github.event_name == 'release' && github.event.action == 'published' - shell: bash - run: echo "APP_DISPLAY_VERSION=$(echo '${{ fromJson(steps.get_release.outputs.data).tag_name }}')" >> $GITHUB_ENV - - name: Restore Dependencies run: dotnet restore BrickController2/BrickController2.Android/BrickController2.Android.csproj - name: Setup Android signing @@ -71,18 +68,18 @@ jobs: -c Release ` -f net10.0-android ` --no-restore ` - -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" ` + -p:ApplicationVersion="${{ github.run_number }}" ` -p:AndroidSigningKeyPass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidPackageFormat=apk - - name: Build MAUI Android (AAB) + - name: Build MAUI Android (AAB) for Release if: github.event_name == 'release' && github.event.action == 'published' run: dotnet publish BrickController2/BrickController2.Android/BrickController2.Android.csproj ` -c Release ` -f net10.0-android ` --no-restore ` - -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" ` + -p:ApplicationVersion="${{ github.run_number }}" ` -p:AndroidSigningKeyPass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidPackageFormat=aab @@ -99,7 +96,7 @@ jobs: with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.apk - asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.apk + asset_name: BrickController_${{env.APP_VERSION}}.apk asset_content_type: application/vnd.android.package-archive env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} @@ -110,7 +107,7 @@ jobs: with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.aab - asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.aab + asset_name: BrickController_${{env.APP_VERSION}}.aab asset_content_type: application/x-authorware-bin env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index feb9ed83..2d8da9e6 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -31,24 +31,23 @@ permissions: jobs: build-ios: - runs-on: macos-15 + runs-on: macos-26 name: BrickController iOS Build - env: - APP_DISPLAY_VERSION: "" + steps: - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 10.0.x - - # fix error with missing XCode 16.4 - - name: Select Xcode 16.4 - run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer - name: Install MAUI workload run: dotnet workload install maui + - name: Get App Version from Build Properties + shell: bash + run: echo "APP_VERSION=$(sed -n 's|.*\(.*\).*|\1|p' Directory.Build.props)" >> $GITHUB_ENV + - name: Find Current Release Info if: github.event_name == 'release' && github.event.action == 'published' id: get_release @@ -58,11 +57,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Set APP_DISPLAY_VERSION for release - if: github.event_name == 'release' && github.event.action == 'published' - shell: bash - run: echo "APP_DISPLAY_VERSION=$(echo '${{ fromJson(steps.get_release.outputs.data).tag_name }}')" >> $GITHUB_ENV - - name: Import Code-Signing Certificates uses: Apple-Actions/import-codesign-certs@v1 with: @@ -92,7 +86,7 @@ jobs: -p:EnableAssemblyILStripping=false -p:CodesignKey="iPhone Distribution" -p:CodesignProvision=Automatic - -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" + -p:ApplicationVersion="${{ github.run_number }}" - name: List build output run: ls -R BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/ @@ -109,7 +103,7 @@ jobs: with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} asset_path: BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa - asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.ipa + asset_name: BrickController_${{env.APP_VERSION}}.ipa asset_content_type: application/octet-stream env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 40e2ff30..4a8bbcd0 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -36,9 +36,6 @@ jobs: build-winui: runs-on: windows-2025 name: BrickController WinUI Build - env: - APP_DISPLAY_VERSION: "" - APP_PACKAGE_VERSION: "" steps: - uses: actions/checkout@v4 @@ -50,6 +47,10 @@ jobs: - name: Install .NET MAUI Workload run: dotnet workload install maui-windows + - name: Get App Version from Build Properties + shell: bash + run: echo "APP_VERSION=$(sed -n 's|.*\(.*\).*|\1|p' Directory.Build.props)" >> $GITHUB_ENV + - name: Find Current Release Info if: github.event_name == 'release' && github.event.action == 'published' id: get_release @@ -59,19 +60,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Set app version for release - if: github.event_name == 'release' && github.event.action == 'published' - shell: bash - run: | - TAG_NAME=$(echo '${{ fromJson(steps.get_release.outputs.data).tag_name }}') - # Split the tag into parts, remove leading zeros and add missing parts as zeros - IFS='.' read -r -a VERSION_PARTS <<< "$TAG_NAME" - for i in "${!VERSION_PARTS[@]}"; do - VERSION_PARTS[$i]=$(echo "${VERSION_PARTS[$i]}" | sed 's/^0*//') - done - echo "APP_DISPLAY_VERSION=$TAG_NAME" >> $GITHUB_ENV - echo "APP_PACKAGE_VERSION=${VERSION_PARTS[0]:-0}.${VERSION_PARTS[1]:-0}.${VERSION_PARTS[2]:-0}.${VERSION_PARTS[3]:-0}" >> $GITHUB_ENV - - name: Decode Signing Certificate run: | echo "${{ secrets.SIGNING_CERTIFICATE_BASE_64_CONTENT }}" > cert.asc @@ -88,9 +76,7 @@ jobs: -c Release ` -r win-x64 ` -p:Platform=x64 ` - -p:ApplicationDisplayVersion="${{ env.APP_DISPLAY_VERSION }}" ` - -p:ApplicationVersion="0" ` - -p:PackageVersion="${{ env.APP_PACKAGE_VERSION }}" + -p:ApplicationVersion="${{ github.run_number }}" - name: Build MAUI WinUI App run: dotnet publish ${{env.PROJECT_PATH}} ` @@ -113,7 +99,7 @@ jobs: with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} asset_path: BrickController2\BrickController2.WinUI\bin\x64\Release\net10.0-windows10.0.19041.0\win-x64\AppPackages\BrickController2.WinUI_${{env.APP_PACKAGE_VERSION}}_Test\BrickController2.WinUI_${{env.APP_PACKAGE_VERSION}}_x64.msix - asset_name: BrickController_${{env.APP_DISPLAY_VERSION}}.msix + asset_name: BrickController_${{env.APP_VERSION}}.msix asset_content_type: application/vnd.ms-appx env: GITHUB_TOKEN: ${{ secrets.CI_RELEASE_ASSETS_PAT }} From 054c94062378bf20114ff0de649c8a2a66f364cb Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 19:33:28 +0100 Subject: [PATCH 04/17] instal XCode 26.2 --- .github/workflows/build-ios.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 2d8da9e6..9e5c972e 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -40,6 +40,12 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: 10.0.x + + - name: Set Xcode version + run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + + - name: Verify Xcode version + run: xcodebuild -version - name: Install MAUI workload run: dotnet workload install maui From 89c1c17ae94fcaf1c3928558f4e294b0e3d6a837 Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 22:45:05 +0100 Subject: [PATCH 05/17] wrong bundle id --- .github/workflows/build-ios.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 9e5c972e..0c03bb92 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -72,7 +72,7 @@ jobs: - name: Download Apple Provisioning Profiles uses: Apple-Actions/download-provisioning-profiles@v1 with: - bundle-id: 'cz.vico.brickcontrollerlegacy' + bundle-id: 'cz.vico.brickcontroller' issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} api-key-id: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} From a4944c4a25ae1c4f906fd8a6cf91720307ddbefb Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 23:27:37 +0100 Subject: [PATCH 06/17] try fix --- .github/workflows/build-ios.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 0c03bb92..f35cd7b2 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -41,8 +41,14 @@ jobs: with: dotnet-version: 10.0.x - - name: Set Xcode version - run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + # - name: Set Xcode version + # run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + + - name: Fix macOS SDK + run: | + sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + SDK=$(xcrun --sdk macosx --show-sdk-path) + echo "SDKROOT=$SDK" >> $GITHUB_ENV - name: Verify Xcode version run: xcodebuild -version From 55c5118eb0c44f61ce2dac2a4255b4a4e8860e7e Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 23:36:04 +0100 Subject: [PATCH 07/17] . --- .github/workflows/build-ios.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index f35cd7b2..36074600 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -54,7 +54,7 @@ jobs: run: xcodebuild -version - name: Install MAUI workload - run: dotnet workload install maui + run: dotnet workload install maui ios - name: Get App Version from Build Properties shell: bash @@ -93,7 +93,7 @@ jobs: dotnet publish BrickController2/BrickController2.iOS/BrickController2.iOS.csproj --no-restore -c Release - -f net10.0-iOS + -f net10.0-ios -p:ArchiveOnBuild=true -p:EnableAssemblyILStripping=false -p:CodesignKey="iPhone Distribution" From 54a2e332b19a4b699a5b510843cd3aaa5c1c31af Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 23:45:31 +0100 Subject: [PATCH 08/17] .. --- .github/workflows/build-ios.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 36074600..7972c0b6 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -98,6 +98,7 @@ jobs: -p:EnableAssemblyILStripping=false -p:CodesignKey="iPhone Distribution" -p:CodesignProvision=Automatic + -p:BuildIpa=true -p:ApplicationVersion="${{ github.run_number }}" - name: List build output From 2eb4aee0bd0163fd9a46090ee006d299afe28de9 Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 23:50:26 +0100 Subject: [PATCH 09/17] ... --- .github/workflows/build-ios.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 7972c0b6..e77ec0b6 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -41,14 +41,14 @@ jobs: with: dotnet-version: 10.0.x - # - name: Set Xcode version - # run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - - - name: Fix macOS SDK - run: | - sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - SDK=$(xcrun --sdk macosx --show-sdk-path) - echo "SDKROOT=$SDK" >> $GITHUB_ENV + - name: Set Xcode version + run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + + # - name: Fix macOS SDK + # run: | + # sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + # SDK=$(xcrun --sdk macosx --show-sdk-path) + # echo "SDKROOT=$SDK" >> $GITHUB_ENV - name: Verify Xcode version run: xcodebuild -version From 1efd65c55305d97f48690ea55b9922ec35b8eb94 Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Wed, 17 Dec 2025 23:55:11 +0100 Subject: [PATCH 10/17] .... --- .github/workflows/build-ios.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index e77ec0b6..d58ec721 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -94,6 +94,7 @@ jobs: --no-restore -c Release -f net10.0-ios + -p:RuntimeIdentifier=ios-arm64 -p:ArchiveOnBuild=true -p:EnableAssemblyILStripping=false -p:CodesignKey="iPhone Distribution" From 55affa349ea7e653aa426ae10dd8274fd5ca561a Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Thu, 18 Dec 2025 00:05:47 +0100 Subject: [PATCH 11/17] test --- .github/workflows/build-ios.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index d58ec721..bdb525ca 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -41,8 +41,12 @@ jobs: with: dotnet-version: 10.0.x + # run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - name: Set Xcode version - run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + shell: bash + run: | + echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_26.2.app + sudo xcode-select --switch /Applications/Xcode_26.2.app/Contents/Developer # - name: Fix macOS SDK # run: | From 43ae3369e6660c1c97ac2877fab5ba41c5e4f3dc Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Thu, 18 Dec 2025 00:11:58 +0100 Subject: [PATCH 12/17] test test --- .github/workflows/build-ios.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index bdb525ca..1ac53ee4 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -42,17 +42,17 @@ jobs: dotnet-version: 10.0.x # run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - - name: Set Xcode version - shell: bash - run: | - echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_26.2.app - sudo xcode-select --switch /Applications/Xcode_26.2.app/Contents/Developer - - # - name: Fix macOS SDK + # - name: Set Xcode version + # shell: bash # run: | - # sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - # SDK=$(xcrun --sdk macosx --show-sdk-path) - # echo "SDKROOT=$SDK" >> $GITHUB_ENV + # echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_26.2.app + # sudo xcode-select --switch /Applications/Xcode_26.2.app/Contents/Developer + + - name: Fix macOS SDK + run: | + sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer + SDK=$(xcrun --sdk macosx --show-sdk-path) + echo "SDKROOT=$SDK" >> $GITHUB_ENV - name: Verify Xcode version run: xcodebuild -version From e54ca3ba64c378e56e451449b747738c68678fff Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Thu, 18 Dec 2025 00:19:44 +0100 Subject: [PATCH 13/17] . --- .github/workflows/build-ios.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 1ac53ee4..f7f6e8d3 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -98,7 +98,7 @@ jobs: --no-restore -c Release -f net10.0-ios - -p:RuntimeIdentifier=ios-arm64 + -r ios-arm64 -p:ArchiveOnBuild=true -p:EnableAssemblyILStripping=false -p:CodesignKey="iPhone Distribution" From b49dd87a52451069da07c40fb917f50947b1ec08 Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Mon, 22 Dec 2025 19:43:21 +0100 Subject: [PATCH 14/17] . --- .github/workflows/build-ios.yml | 43 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index f7f6e8d3..c47ed740 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -29,6 +29,11 @@ on: permissions: contents: read +env: + XCODE_VERSION: '26.2' + TARGET_FRAMEWORK: 'net10.0-ios' + TARGET_RUNTIME: 'ios-arm64' + jobs: build-ios: runs-on: macos-26 @@ -41,24 +46,18 @@ jobs: with: dotnet-version: 10.0.x - # run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - # - name: Set Xcode version - # shell: bash - # run: | - # echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_26.2.app - # sudo xcode-select --switch /Applications/Xcode_26.2.app/Contents/Developer + - name: Install MAUI workload + run: dotnet workload install maui ios - - name: Fix macOS SDK + - name: Set XCode Version + if: runner.os == 'macOS' + shell: bash run: | - sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer - SDK=$(xcrun --sdk macosx --show-sdk-path) - echo "SDKROOT=$SDK" >> $GITHUB_ENV + sudo xcode-select -s "/Applications/Xcode_${{ env.XCODE_VERSION }}.app" + echo "MD_APPLE_SDK_ROOT=/Applications/Xcode_${{ env.XCODE_VERSION }}.app" >> $GITHUB_ENV - name: Verify Xcode version run: xcodebuild -version - - - name: Install MAUI workload - run: dotnet workload install maui ios - name: Get App Version from Build Properties shell: bash @@ -97,30 +96,30 @@ jobs: dotnet publish BrickController2/BrickController2.iOS/BrickController2.iOS.csproj --no-restore -c Release - -f net10.0-ios - -r ios-arm64 + -f ${{ env.TARGET_FRAMEWORK }} + -r ${{ env.TARGET_RUNTIME }} + -p:ApplicationVersion="${{ github.run_number }}" -p:ArchiveOnBuild=true - -p:EnableAssemblyILStripping=false + -p:BuildIpa=true -p:CodesignKey="iPhone Distribution" -p:CodesignProvision=Automatic - -p:BuildIpa=true - -p:ApplicationVersion="${{ github.run_number }}" + -p:EnableAssemblyILStripping=false - name: List build output - run: ls -R BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/ + run: ls -R BrickController2/BrickController2.iOS/bin/Release/${{ env.TARGET_FRAMEWORK }}/${{ env.TARGET_RUNTIME }}/publish/ - name: Upload IOS Artifact uses: actions/upload-artifact@v4 with: name: brickcontroller-ios-ci-build - path: BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa + path: BrickController2/BrickController2.iOS/bin/Release/${{ env.TARGET_FRAMEWORK }}/${{ env.TARGET_RUNTIME }}/publish/BrickController2.iOS.ipa - name: Upload Artifact to Release if: github.event_name == 'release' && github.event.action == 'published' uses: actions/upload-release-asset@v1 with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} - asset_path: BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa + asset_path: BrickController2/BrickController2.iOS/bin/Release/${{ env.TARGET_FRAMEWORK }}/${{ env.TARGET_RUNTIME }}/publish/BrickController2.iOS.ipa asset_name: BrickController_${{env.APP_VERSION}}.ipa asset_content_type: application/octet-stream env: @@ -130,7 +129,7 @@ jobs: if: github.event_name == 'release' && github.event.action == 'published' uses: Apple-Actions/upload-testflight-build@v1 with: - app-path: 'BrickController2/BrickController2.iOS/bin/Release/net10.0-ios/ios-arm64/publish/BrickController2.iOS.ipa' + app-path: 'BrickController2/BrickController2.iOS/bin/Release/${{ env.TARGET_FRAMEWORK }}/${{ env.TARGET_RUNTIME }}/publish/BrickController2.iOS.ipa' issuer-id: ${{ secrets.APPSTORE_ISSUER_ID }} api-key-id: ${{ secrets.APPSTORE_KEY_ID }} api-private-key: ${{ secrets.APPSTORE_PRIVATE_KEY }} From ebb42d01e290a856365ea3a36ae1fc1bd22cdaca Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Mon, 22 Dec 2025 20:06:12 +0100 Subject: [PATCH 15/17] try opt branch build --- .github/workflows/build-ios.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index c47ed740..73aa3987 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -33,6 +33,7 @@ env: XCODE_VERSION: '26.2' TARGET_FRAMEWORK: 'net10.0-ios' TARGET_RUNTIME: 'ios-arm64' + PUBLISH_TRIMMED: ${{ (github.event_name == 'release' && github.event.action == 'published') }} jobs: build-ios: @@ -104,6 +105,7 @@ jobs: -p:CodesignKey="iPhone Distribution" -p:CodesignProvision=Automatic -p:EnableAssemblyILStripping=false + -p:PublishTrimmed=${{ env.PUBLISH_TRIMMED }} - name: List build output run: ls -R BrickController2/BrickController2.iOS/bin/Release/${{ env.TARGET_FRAMEWORK }}/${{ env.TARGET_RUNTIME }}/publish/ From e8588f14b205df1aeba0f215d8174e603032b516 Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Mon, 22 Dec 2025 20:32:48 +0100 Subject: [PATCH 16/17] try finetune branch build - trimming --- .github/workflows/build-android.yml | 16 +++++++++++----- .github/workflows/build-ios.yml | 4 ++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 55e2b557..4620edcc 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -29,6 +29,10 @@ on: permissions: contents: read +env: + TARGET_FRAMEWORK: 'net10.0-android' + PUBLISH_TRIMMED: ${{ (github.event_name == 'release' && github.event.action == 'published') }} + jobs: build-android: runs-on: windows-2025 @@ -66,36 +70,38 @@ jobs: - name: Build MAUI Android (APK) run: dotnet publish BrickController2/BrickController2.Android/BrickController2.Android.csproj ` -c Release ` - -f net10.0-android ` + -f ${{ env.TARGET_FRAMEWORK }} ` --no-restore ` -p:ApplicationVersion="${{ github.run_number }}" ` -p:AndroidSigningKeyPass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidPackageFormat=apk + -p:PublishTrimmed=${{ env.PUBLISH_TRIMMED }} - name: Build MAUI Android (AAB) for Release if: github.event_name == 'release' && github.event.action == 'published' run: dotnet publish BrickController2/BrickController2.Android/BrickController2.Android.csproj ` -c Release ` - -f net10.0-android ` + -f ${{ env.TARGET_FRAMEWORK }} ` --no-restore ` -p:ApplicationVersion="${{ github.run_number }}" ` -p:AndroidSigningKeyPass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidPackageFormat=aab + -p:PublishTrimmed=${{ env.PUBLISH_TRIMMED }} - name: Upload Android Artifact uses: actions/upload-artifact@v4 with: name: brickcontroller-android-ci-build - path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.apk + path: BrickController2/BrickController2.Android/bin/Release/${{ env.TARGET_FRAMEWORK }}/cz.vico.BrickController-Signed.apk - name: Upload APK Artifact to Release if: github.event_name == 'release' && github.event.action == 'published' uses: actions/upload-release-asset@v1 with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} - asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.apk + asset_path: BrickController2/BrickController2.Android/bin/Release/${{ env.TARGET_FRAMEWORK }}/cz.vico.BrickController-Signed.apk asset_name: BrickController_${{env.APP_VERSION}}.apk asset_content_type: application/vnd.android.package-archive env: @@ -106,7 +112,7 @@ jobs: uses: actions/upload-release-asset@v1 with: upload_url: ${{ fromJson(steps.get_release.outputs.data).upload_url }} - asset_path: BrickController2/BrickController2.Android/bin/Release/net10.0-android/cz.vico.BrickController-Signed.aab + asset_path: BrickController2/BrickController2.Android/bin/Release/${{ env.TARGET_FRAMEWORK }}/cz.vico.BrickController-Signed.aab asset_name: BrickController_${{env.APP_VERSION}}.aab asset_content_type: application/x-authorware-bin env: diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 73aa3987..bc457844 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -33,7 +33,7 @@ env: XCODE_VERSION: '26.2' TARGET_FRAMEWORK: 'net10.0-ios' TARGET_RUNTIME: 'ios-arm64' - PUBLISH_TRIMMED: ${{ (github.event_name == 'release' && github.event.action == 'published') }} + IOS_TRIM_MODE: ${{ (github.event_name == 'release' && github.event.action == 'published') && 'Full' || 'None' }} jobs: build-ios: @@ -105,7 +105,7 @@ jobs: -p:CodesignKey="iPhone Distribution" -p:CodesignProvision=Automatic -p:EnableAssemblyILStripping=false - -p:PublishTrimmed=${{ env.PUBLISH_TRIMMED }} + -p:MtouchLink=${{ env.IOS_TRIM_MODE }} - name: List build output run: ls -R BrickController2/BrickController2.iOS/bin/Release/${{ env.TARGET_FRAMEWORK }}/${{ env.TARGET_RUNTIME }}/publish/ From 3142b8e363e1be73b5299a089067f6969e7a6872 Mon Sep 17 00:00:00 2001 From: Vit Nemecky Date: Mon, 22 Dec 2025 21:26:12 +0100 Subject: [PATCH 17/17] . --- .github/workflows/build-android.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index 4620edcc..1af40768 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -89,6 +89,7 @@ jobs: -p:AndroidSigningStorePass=${{secrets.KEYSTORE_PASSWORD}} ` -p:AndroidPackageFormat=aab -p:PublishTrimmed=${{ env.PUBLISH_TRIMMED }} + -p:RunAOTCompilation=${{ env.PUBLISH_TRIMMED }} - name: Upload Android Artifact uses: actions/upload-artifact@v4