From 6b4f11272802caa5c880c475d3cd7af48c8e663f Mon Sep 17 00:00:00 2001 From: iGoX Date: Wed, 25 Mar 2026 18:54:08 +0100 Subject: [PATCH] [iOS] Create flutter build helper --- .gitignore | 1 + ios/flutter-build-ios.sh | 60 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100755 ios/flutter-build-ios.sh diff --git a/.gitignore b/.gitignore index f8ddb9e..755cd34 100644 --- a/.gitignore +++ b/.gitignore @@ -51,4 +51,5 @@ bugreport* !downloads/* android/builds.json macos/builds.json +ios/builds.json windows/busylight-buddy-windows-installer-builder.iss \ No newline at end of file diff --git a/ios/flutter-build-ios.sh b/ios/flutter-build-ios.sh new file mode 100755 index 0000000..e7a32f6 --- /dev/null +++ b/ios/flutter-build-ios.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Default values +buildType="release" +buildName="0.0.0" +buildsRef="builds.json" + +# Help message +show_help() { + echo "Usage: $0 [-t buildType] [-n buildName]" + echo "Builds a Flutter iOS application with versioning support." + echo "" + echo "Options:" + echo " -t, --buildType Build type (release or debug). Default: release" + echo " -n, --buildName Build name (version). Default: 0.0.0" + echo " -h, --help Show this help message" + exit 0 +} + +# Parse command-line arguments +while [[ "$#" -gt 0 ]]; do + case $1 in + -t|--buildType) buildType="$2"; shift ;; + -n|--buildName) buildName="$2"; shift ;; + -h|--help) show_help ;; + *) echo "Unknown parameter: $1"; show_help; exit 1 ;; + esac + shift +done + +# Check if builds.json exists +if [ ! -f "$buildsRef" ]; then + echo "File created: $buildsRef" + echo "{\"$buildName\": 0}" > "$buildsRef" +else + echo "File already exists: $buildsRef" +fi + +# Read the JSON file +buildsMap=$(cat "$buildsRef") + +# Check if buildName exists in the JSON +if jq -e --arg key "$buildName" 'has($key)' <<< "$buildsMap" > /dev/null; then + echo "Build exists: $buildName" + buildNumber=$(jq --arg key "$buildName" '.[$key]' <<< "$buildsMap") + buildNumber=$((buildNumber + 1)) + echo "Next build number for $buildName: $buildNumber" + buildsMap=$(jq --arg key "$buildName" --argjson value "$buildNumber" '.[$key] = $value' <<< "$buildsMap") +else + echo "New build: $buildName, starting at build number: 1" + buildNumber=1 + buildsMap=$(jq --arg key "$buildName" --argjson value "$buildNumber" '.[$key] = $value' <<< "$buildsMap") +fi + +# Save the updated JSON back to the file +echo "$buildsMap" > "$buildsRef" + +# Build iOS application +echo "Building iOS application with arguments: --$buildType --build-name=$buildName --build-number=$buildNumber" +flutter build ios --"$buildType" --build-name="$buildName" --build-number="$buildNumber" \ No newline at end of file