6177214e-ce7c-49e3-99de-ff9721b26f63 — Commit f4dd9445
Changed files
azure/azure-pipelines.yml | 70 +--------- azure/templates/build-android.yml | 98 +++----------- azure/templates/build-ios.yml | 243 ++++++++++++++--------------------- azure/templates/build-web.yml | 41 ------ azure/templates/download-env.yml | 13 ++ azure/templates/env-vars.yml | 64 +++++++++ azure/templates/install-flutter.yml | 36 ++++++ comwell_key_app/.fvm/release | 2 +- comwell_key_app/.fvm/version | 2 +- comwell_key_app/.fvmrc | 2 +- comwell_key_app/lib/main_dev.dart | 5 - comwell_key_app/lib/main_prod.dart | 6 - comwell_key_app/lib/main_stage.dart | 6 - comwell_key_app/lib/main_test.dart | 6 - comwell_key_app/scripts/run_stage.sh | 1 + 15 files changed, 233 insertions(+), 362 deletions(-)
Diff
diff --git a/azure/azure-pipelines.yml b/azure/azure-pipelines.yml
index 8911e1f6..94a2b2dd 100644
--- a/azure/azure-pipelines.yml
+++ b/azure/azure-pipelines.yml
@@ -57,72 +57,4 @@ stages:
releaseName: 'test connection'
isDraftRelease: true
# parameters:
- # flavor: $( flavor )
-
-
-# - stage: CI_iOS
-# pool:
-# vmImage: 'macOS-14'
-# jobs:
-# - job:
-# steps:
-# - script: |
-# echo "##vso[task.setvariable variable=environment]develop"
-# echo "##vso[task.setvariable variable=stageName]developStage"
-# echo "##vso[task.setvariable variable=flavor]develop"
-# name: setdefaultStep
-# - script: echo $(setdefaultStep.flavor)
-# displayName: 'Set default variables for develop'
-# - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/test') }}:
-# - script: |
-# echo "##vso[task.setvariable variable=environment]test"
-# echo "##vso[task.setvariable variable=stageName]testStage"
-# echo "##vso[task.setvariable variable=flavor]releasetest"
-# displayName: 'Set variables for test'
-# - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/stage') }}:
-# - script: |
-# echo "##vso[task.setvariable variable=environment]stage"
-# echo "##vso[task.setvariable variable=stageName]stageStage"
-# echo "##vso[task.setvariable variable=flavor]releasestage"
-# displayName: 'Set variables for stage'
-# - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/prod') }}:
-# - script: |
-# echo "##vso[task.setvariable variable=environment]prod"
-# echo "##vso[task.setvariable variable=stageName]prodStage"
-# echo "##vso[task.setvariable variable=flavor]releaseprod"
-# displayName: 'Set variables for prod'
-# - job:
-# variables:
-# flavor: $[ dependencies.A.outputs['setdefaultStep.myOutputVar'] ]
-# steps:
-# - script: echo "name is $( flavor)"
-# - template: templates/build-ios.yml
-# parameters:
-# stageName: $( stageName )
-# environment: $( environment )
-# flavor: $( flavor )
-# cppwd: $( cppwd )
-
-# - stage: Deploy_Android
-# pool:
-# vmImage: 'ubuntu-latest'
-# dependsOn: CI_Android
-# condition: and(succeeded('CI_Android'), or(eq(variables['Build.SourceBranch'], 'refs/heads/develop'), eq(variables['Build.SourceBranch'], 'refs/heads/stage'), eq(variables['Build.SourceBranch'], 'refs/heads/prod')))
-# jobs:
-# - deployment:
-# environment: 'dev'
-# strategy:
-# runOnce:
-# deploy:
-# steps:
-# - task: GooglePlayRelease@4
-# inputs:
-# serviceConnection: 'Google play'
-# applicationId: 'com.comwell.phoenix.$( environment )'
-# action: 'SingleBundle'
-# bundleFile: '$(Build.ArtifactStagingDirectory)/*.aab'
-# track: 'internal'
-# releaseName: 'test connection'
-# isDraftRelease: true
-
-
+ # flavor: $( flavor )
\ No newline at end of file
diff --git a/azure/templates/build-android.yml b/azure/templates/build-android.yml
index 3c17ca31..b06e7fb8 100644
--- a/azure/templates/build-android.yml
+++ b/azure/templates/build-android.yml
@@ -3,11 +3,8 @@
# type: string
steps:
-- task: DownloadSecureFile@1
- name: keyprop
- displayName: Download key properties file
- inputs:
- secureFile: "key.properties"
+- template: install-flutter.yml
+- template: download-env.yml
- task: DownloadSecureFile@1
name: localprop
@@ -39,86 +36,31 @@ steps:
versionSpec: '17'
jdkArchitectureOption: 'x64'
jdkSourceOption: 'PreInstalled'
-# Download secure file from azure library
-- task: DownloadSecureFile@1
- inputs:
- secureFile: ".env"
-
-- task: DownloadSecureFile@1
- inputs:
- secureFile: ".env.dev"
-
-- task: DownloadSecureFile@1
- inputs:
- secureFile: ".env.stage"
-
-# Copy the .env file
-- task: CopyFiles@2
- inputs:
- sourceFolder: "$(Agent.TempDirectory)"
- contents: "**/*.env"
- targetFolder: "$(Build.SourcesDirectory)/comwell_key_app"
- cleanTargetFolder: false
-
-- task: CopyFiles@2
- inputs:
- sourceFolder: "$(Agent.TempDirectory)"
- contents: "**/*.dev"
- targetFolder: "$(Build.SourcesDirectory)/comwell_key_app"
- cleanTargetFolder: false
-
-- task: CopyFiles@2
- inputs:
- sourceFolder: "$(Agent.TempDirectory)"
- contents: "**/*.stage"
- targetFolder: "$(Build.SourcesDirectory)/comwell_key_app"
- cleanTargetFolder: false
-
-- task: FlutterInstall@0
- displayName: "Install Flutter SDK"
- inputs:
- mode: "auto"
- channel: "stable"
- version: "latest"
-
-- task: FlutterCommand@0
- displayName: "Run Flutter diagnostics"
- inputs:
- projectDirectory: "."
- arguments: "doctor -v"
-- task: ShellScript@2
- inputs:
- scriptPath: "$(Build.SourcesDirectory)/mobilekeys_sdk_plugin/pigeon.sh"
- task: FlutterBuild@0
displayName: "Build application"
inputs:
buildNumber: "$(Build.BuildId)"
target: "aab"
- extraArgs: "-t lib/main_test.dart --release"
- buildFlavour: "releasetest"
- debugMode: false
- profileMode: false
+ buildFlavour: $(flavor)
projectDirectory: "$(Build.SourcesDirectory)/comwell_key_app"
- #- task: FlutterTest@0
- # displayName: "Run unit tests"
- #inputs:
- # generateCodeCoverageReport: true
- #projectDirectory: '$(Build.SourcesDirectory)'
+- task: AndroidSigning@3
+ inputs:
+ apkFiles: '$(Agent.BuildDirectory)/s/android/app/build/outputs/bundle/$(androidAABPath)'
+ apksignerArguments: "--min-sdk-version 23"
+ apksignerKeystoreFile: 'comwell_keystore.jks'
+ apksignerKeystorePassword: $(storePassword)
+ apksignerKeystoreAlias: $(keyAlias)
+ apksignerKeyPassword: $(keyPassword)
-- task: CopyFiles@2
- displayName: "Copy app to staging directory"
- inputs:
- sourceFolder: "$(Agent.BuildDirectory)"
- contents: "**/bundle/**"
- targetFolder: "$(Build.StagingDirectory)"
- flattenFolders: true
-
-- task: PublishBuildArtifacts@1
- displayName: "Publish AAB file"
- inputs:
- PathtoPublish: "$(Build.ArtifactStagingDirectory)"
- ArtifactName: "AAB"
- publishLocation: "Container"
+- task: GooglePlayRelease@4
+ inputs:
+ serviceConnection: 'Google Play Store Connection Mit FDM'
+ applicationId: $(androidBundleId)
+ action: 'SingleBundle'
+ bundleFile: '$(Agent.BuildDirectory)/s/android/app/build/outputs/bundle/$(androidAABPath)'
+ track: 'internal'
+ releaseName: 'Azure Pipeline'
+ isDraftRelease: true
diff --git a/azure/templates/build-ios.yml b/azure/templates/build-ios.yml
index fda5cc6b..07fb3cb0 100644
--- a/azure/templates/build-ios.yml
+++ b/azure/templates/build-ios.yml
@@ -1,156 +1,103 @@
-variables:
- - name: cppwd
- - name: flavor
- value: releasetest
+parameters:
+- name: env
+ displayName: environment
+ type: string
+ default: development
+ values:
+ - production
+ - staging
+ - test
+
pool:
- vmImage: 'macOS-14'
+ vmImage: 'macOS-latest'
steps:
- # Download secure file from Azure library
- - task: DownloadSecureFile@1
- inputs:
- secureFile: '.env'
-
- # Copy the .env file to the project directory
- - task: CopyFiles@2
- inputs:
- sourceFolder: '$(Agent.TempDirectory)'
- contents: '**/*.env'
- targetFolder: '$(Build.SourcesDirectory)/comwell_key_app'
- cleanTargetFolder: false
-
- # Install Apple certificate for code signing
- - task: InstallAppleCertificate@2
- displayName: Install certificate
- inputs:
- certSecureFile: 'cpcert.p12'
- certPwd: '$(cppwd)' # Assuming cppwd is a parameter or pipeline variable
- keychain: 'temp'
-
- # Install Apple provisioning profile
- - task: InstallAppleProvisioningProfile@1
- displayName: Install provisioning file
- inputs:
- provisioningProfileLocation: 'secureFiles'
- provProfileSecureFile: 'CP_Test.mobileprovision'
-
- # Install Flutter SDK
- - task: FlutterInstall@0
- displayName: "Install Flutter SDK"
- inputs:
- mode: 'auto'
- channel: 'stable'
- version: 'latest'
-
- # Run Flutter diagnostics
- - task: FlutterCommand@0
- displayName: "Run Flutter diagnostics"
- inputs:
- projectDirectory: '.'
- arguments: 'doctor -v'
-
- # Run custom Pigeon script
- - task: ShellScript@2
- displayName: "Run Pigeon script"
- inputs:
- scriptPath: "$(Build.SourcesDirectory)/mobilekeys_sdk_plugin/pigeon.sh"
-
- # Analyze Flutter code
- - task: FlutterAnalyzeTask@0
- inputs:
- projectDirectory: '$(Build.SourcesDirectory)/comwell_key_app'
- pubGet: true
- extraArgs: --no-fatal-infos --no-fatal-warnings
-
-# Clean the Flutter and iOS build directories
- - task: Bash@3
- displayName: "Clean Build Directories"
- inputs:
- targetType: 'inline'
- script: |
- flutter clean
- cd $(Build.SourcesDirectory)/comwell_key_app/ios
- xcodebuild clean -workspace Runner.xcworkspace -scheme "$(flavor)"
+- template: download-env.yml
+- template: install-flutter.yml
- # Install CocoaPods dependencies
- - task: Bash@3
- displayName: "Install CocoaPods dependencies"
- inputs:
- targetType: 'inline'
- script: |
- flutter pub get
- flutter build ios
- cd $(Build.SourcesDirectory)/comwell_key_app/ios
-
- # Copy SeosMobileKeysSDK to the Xcode project directory
- - task: CopyFiles@2
- displayName: "Copy SeosMobileKeysSDK framework to Xcode project"
- inputs:
- sourceFolder: '$(Build.SourcesDirectory)/mobilekeys_sdk_plugin/XCFrameworks/'
- contents: 'SeosMobileKeysSDK.xcframework/**'
- targetFolder: '$(Build.SourcesDirectory)/comwell_key_app/ios/Frameworks/'
- flattenFolders: false
-
-# Add a Run Script phase to ensure the framework is linked
- - task: Bash@3
- displayName: "Ensure SeosMobileKeysSDK is linked"
- inputs:
- targetType: 'inline'
- script: |
- cd $(Build.SourcesDirectory)/comwell_key_app/ios
- if [ ! -d "Frameworks/SeosMobileKeysSDK.xcframework" ]; then
- echo "Error: SeosMobileKeysSDK.xcframework not found!"
- exit 1
- fi
-
- # Ensure the custom XCFramework is added to the Xcode project
- - task: Xcode@5
- displayName: "Integrate XCFramework into Xcode project"
- inputs:
- actions: "build"
- scheme: "$(flavor)" # Make sure to use the correct scheme that includes the custom XCFramework
- sdk: "iphoneos"
- configuration: "Debug"
- xcWorkspacePath: "$(Build.SourcesDirectory)/comwell_key_app/ios/Runner.xcworkspace"
- xcodeVersion: "default"
- packageApp: true
- signingOption: "manual"
- signingIdentity: "$(APPLE_CERTIFICATE_SIGNING_IDENTITY)"
- provisioningProfileUuid: "$(APPLE_PROV_PROFILE_UUID)"
- args: |
- -verbose
- OTHER_LDFLAGS="$(inherited) -framework SeosMobileKeysSDK"
- FRAMEWORK_SEARCH_PATHS="$(Build.SourcesDirectory)/comwell_key_app/ios/Frameworks"
-
- # Build the iOS application
- - task: FlutterCommand@0
- displayName: "Build Flutter iOS project"
- inputs:
- projectDirectory: '$(Build.SourcesDirectory)/comwell_key_app'
- arguments: 'build ios --no-codesign --flavor=$(flavor) --build-name=1.0.0 --build-number=1'
-
# Uncomment to run unit tests
- # - task: FlutterTest@0
- # displayName: "Run unit tests"
- # inputs:
- # generateCodeCoverageReport: true
- # projectDirectory: '$(Build.SourcesDirectory)'
+# - task: FlutterTest@0
+# displayName: "Run unit tests"
+# inputs:
+# generateCodeCoverageReport: true
+# projectDirectory: '$(Build.SourcesDirectory)'
+
+# Install Apple certificate for code signing
+- task: InstallAppleCertificate@2
+ displayName: Install certificate
+ inputs:
+ certSecureFile: 'cpcert.p12'
+ certPwd: '$(cppwd)' # Assuming cppwd is a parameter or pipeline variable
+ keychain: 'temp'
+
+# Install Apple provisioning profile
+- task: InstallAppleProvisioningProfile@1
+ displayName: Install provisioning file
+ inputs:
+ provisioningProfileLocation: 'secureFiles'
+ provProfileSecureFile: $(iosProvisionProfileFileName)
+
+# Copy SeosMobileKeysSDK to the Xcode project directory
+- task: CopyFiles@2
+ displayName: "Copy SeosMobileKeysSDK framework to Xcode project"
+ inputs:
+ sourceFolder: '$(Build.SourcesDirectory)/mobilekeys_sdk_plugin/XCFrameworks/'
+ contents: 'SeosMobileKeysSDK.xcframework/**'
+ targetFolder: '$(Build.SourcesDirectory)/comwell_key_app/ios/Frameworks/'
+ flattenFolders: false
- # Copy app to staging directory
- - task: CopyFiles@2
- displayName: "Copy app to staging directory"
- inputs:
- sourceFolder: '$(Agent.BuildDirectory)'
- contents: '**/ipa/*.ipa'
- targetFolder: '$(Build.StagingDirectory)'
- flattenFolders: true
-
- # Publish IPA file
- - task: PublishBuildArtifacts@1
- displayName: "Publish IPA file"
- inputs:
- PathtoPublish: '$(Build.StagingDirectory)'
- ArtifactName: 'IPA'
- publishLocation: 'Container'
+# Add a Run Script phase to ensure the framework is linked
+- task: Bash@3
+ displayName: "Ensure SeosMobileKeysSDK is linked"
+ inputs:
+ targetType: 'inline'
+ script: |
+ cd $(Build.SourcesDirectory)/comwell_key_app/ios
+ if [ ! -d "Frameworks/SeosMobileKeysSDK.xcframework" ]; then
+ echo "Error: SeosMobileKeysSDK.xcframework not found!"
+ exit 1
+ fi
+
+# Install CocoaPods dependencies
+- task: CocoaPods@0
+ inputs:
+ workingDirectory: 'ios'
+ forceRepoUpdate: false
+
+- task: FlutterBuild@0
+ displayName: "Build application"
+ inputs:
+ buildNumber: "$(Build.BuildId)"
+ target: "ios"
+ buildFlavour: $(flavor)
+ projectDirectory: "$(Build.SourcesDirectory)/comwell_key_app"
+
+# Ensure the custom XCFramework is added to the Xcode project
+- task: Xcode@5
+ displayName: "Integrate XCFramework into Xcode project"
+ inputs:
+ actions: "build"
+ scheme: "$(iosScheme)" # Make sure to use the correct scheme that includes the custom XCFramework
+ configuration: "$(iosConfiguration)"
+ sdk: "iphoneos"
+ xcWorkspacePath: "$(Build.SourcesDirectory)/comwell_key_app/ios/Runner.xcworkspace"
+ xcodeVersion: "default"
+ packageApp: true
+ signingOption: "manual"
+ signingIdentity: "$(APPLE_CERTIFICATE_SIGNING_IDENTITY)"
+ provisioningProfileUuid: "$(APPLE_PROV_PROFILE_UUID)"
+ args: |
+ -verbose
+ OTHER_LDFLAGS="$(inherited) -framework SeosMobileKeysSDK"
+ FRAMEWORK_SEARCH_PATHS="$(Build.SourcesDirectory)/comwell_key_app/ios/Frameworks"
+
+- task: AppStoreRelease@1
+ inputs:
+ releaseTrack: 'TestFlight'
+ appIdentifier: $(iosBundleId)
+ serviceEndpoint: "Apple App Store Connection Mit FDM"
+ appType: 'iOS'
+ shouldSkipWaitingForProcessing: true
+ shouldSkipSubmission: true
diff --git a/azure/templates/build-web.yml b/azure/templates/build-web.yml
deleted file mode 100644
index 8cb2bb1c..00000000
--- a/azure/templates/build-web.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-- stage: BuildwebStage
- pool:
- vmImage: ubuntu-latest
- jobs:
- - job: BuildWebStage
- steps:
-
- # Download secure file from azure library
- - task: DownloadSecureFile@1
- inputs:
- secureFile: '.env.${{ parameters.environment }}'
-
- # Copy the .env file
- - task: CopyFiles@2
- inputs:
- sourceFolder: '$(Agent.TempDirectory)'
- contents: '**/*.env.development'
- targetFolder: '$(YOUR_DEFINED_PROJECT_ROOT_FOLDER_VARIABLE)'
- cleanTargetFolder: false
-
- - task: FlutterInstall@0
- inputs:
- mode: 'auto'
- channel: 'stable'
- version: 'latest'
-
- - task: FlutterBuild@0
- inputs:
- target: 'web'
- projectDirectory: '.'
- - task: CopyFiles@2
- inputs:
- SourceFolder: 'build/web'
- Contents: '**'
- TargetFolder: '$(build.artifactStagingDirectory)'
- - task: PublishBuildArtifacts@1
- displayName: "Publish Web"
- inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)'
- ArtifactName: 'drop'
- publishLocation: 'Container'
\ No newline at end of file
diff --git a/azure/templates/download-env.yml b/azure/templates/download-env.yml
new file mode 100644
index 00000000..93e37bf5
--- /dev/null
+++ b/azure/templates/download-env.yml
@@ -0,0 +1,13 @@
+steps:
+- task: DownloadSecureFile@1
+ displayName: 'Download .env file'
+ name: dotenv
+ inputs:
+ secureFile: $(dotenvFileName)
+
+- task: CopyFiles@2
+ inputs:
+ sourceFolder: $(Agent.TempDirectory)
+ contents: $(dotenvFileName)
+ targetFolder: $(Agent.BuildDirectory)/s
+ displayName: 'Import .env file'
\ No newline at end of file
diff --git a/azure/templates/env-vars.yml b/azure/templates/env-vars.yml
new file mode 100644
index 00000000..cdbacd86
--- /dev/null
+++ b/azure/templates/env-vars.yml
@@ -0,0 +1,64 @@
+# We can only use variables in a template if the variables are defined in their own template.
+
+parameters:
+ env: 'test'
+
+variables:
+ - name: dotenvFileRename
+ ${{ if eq(parameters.env, 'production') }}:
+ value: '.env'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: '.env.stage'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: '.env.dev'
+ - name: bundleId
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'com.comwell.phoenix'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'com.comwell.phoenix.stage'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'com.comwell.phoenix.test'
+ - name: flavor
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'prod'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'stage'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'develop'
+# iOS
+ - name: iosProvisionProfileFileName
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'CP_Prod.mobileprovision'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'CP_Stage.mobileprovision'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'CP_TEST.mobileprovision'
+ - name: iosScheme
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'Prod'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'Stage'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'releasetest'
+ - name: iosConfiguration
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'Release-Prod'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'Release-Stage'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'Release-releasetest'
+# Android
+ - name: androidBuildCommand
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'android:build:prod:release'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'android:build:stag:release'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'android:build:dev:release'
+ - name: androidAABPath
+ ${{ if eq(parameters.env, 'production') }}:
+ value: 'productionRelease/app-production-release.aab'
+ ${{ if eq(parameters.env, 'staging') }}:
+ value: 'stagingRelease/app-staging-release.aab'
+ ${{ if eq(parameters.env, 'test') }}:
+ value: 'developmentRelease/app-development-release.aab'
diff --git a/azure/templates/install-flutter.yml b/azure/templates/install-flutter.yml
new file mode 100644
index 00000000..0680899d
--- /dev/null
+++ b/azure/templates/install-flutter.yml
@@ -0,0 +1,36 @@
+steps:
+
+
+ # Install Flutter SDK
+ - task: FlutterInstall@0
+ displayName: "Install Flutter SDK"
+ inputs:
+ mode: 'auto'
+ channel: 'stable'
+ version: 'latest'
+
+ # Run Flutter diagnostics
+ - task: FlutterCommand@0
+ displayName: "Run Flutter diagnostics"
+ inputs:
+ projectDirectory: '.'
+ arguments: 'doctor -v'
+
+ # Run custom Pigeon script
+ - task: ShellScript@2
+ displayName: "Run Pigeon script"
+ inputs:
+ scriptPath: "$(Build.SourcesDirectory)/mobilekeys_sdk_plugin/pigeon.sh"
+
+ # Analyze Flutter code
+ - task: FlutterAnalyzeTask@0
+ inputs:
+ projectDirectory: '$(Build.SourcesDirectory)/comwell_key_app'
+ pubGet: true
+ extraArgs: --no-fatal-infos --no-fatal-warnings
+
+#- task: FlutterTest@0
+# displayName: "Run unit tests"
+#inputs:
+# generateCodeCoverageReport: true
+#projectDirectory: '$(Build.SourcesDirectory)'
\ No newline at end of file
diff --git a/comwell_key_app/.fvm/release b/comwell_key_app/.fvm/release
index 057aa0d0..c058d50e 100644
--- a/comwell_key_app/.fvm/release
+++ b/comwell_key_app/.fvm/release
@@ -1 +1 @@
-3.24.4
\ No newline at end of file
+3.32.1
\ No newline at end of file
diff --git a/comwell_key_app/.fvm/version b/comwell_key_app/.fvm/version
index c93df967..c058d50e 100644
--- a/comwell_key_app/.fvm/version
+++ b/comwell_key_app/.fvm/version
@@ -1 +1 @@
-3.28.0-2.0.pre.38699
\ No newline at end of file
+3.32.1
\ No newline at end of file
diff --git a/comwell_key_app/.fvmrc b/comwell_key_app/.fvmrc
index ff263c64..b91fa3c6 100644
--- a/comwell_key_app/.fvmrc
+++ b/comwell_key_app/.fvmrc
@@ -1,3 +1,3 @@
{
- "flutter": "3.24.4"
+ "flutter": "3.32.1"
}
\ No newline at end of file
diff --git a/comwell_key_app/lib/main_dev.dart b/comwell_key_app/lib/main_dev.dart
deleted file mode 100644
index ae8c5ec2..00000000
--- a/comwell_key_app/lib/main_dev.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-import 'package:comwell_key_app/firebase_options.dart';
-import 'package:comwell_key_app/main.dart';
-void main() async {
- runMainApp(DefaultFirebaseOptions.currentPlatform);
-}
\ No newline at end of file
diff --git a/comwell_key_app/lib/main_prod.dart b/comwell_key_app/lib/main_prod.dart
deleted file mode 100644
index 64db2747..00000000
--- a/comwell_key_app/lib/main_prod.dart
+++ /dev/null
@@ -1,6 +0,0 @@
-import 'package:comwell_key_app/firebase_options.dart';
-import 'package:comwell_key_app/main.dart';
-
-void main() async {
- runMainApp(DefaultFirebaseOptions.currentPlatform);
-}
\ No newline at end of file
diff --git a/comwell_key_app/lib/main_stage.dart b/comwell_key_app/lib/main_stage.dart
deleted file mode 100644
index 64db2747..00000000
--- a/comwell_key_app/lib/main_stage.dart
+++ /dev/null
@@ -1,6 +0,0 @@
-import 'package:comwell_key_app/firebase_options.dart';
-import 'package:comwell_key_app/main.dart';
-
-void main() async {
- runMainApp(DefaultFirebaseOptions.currentPlatform);
-}
\ No newline at end of file
diff --git a/comwell_key_app/lib/main_test.dart b/comwell_key_app/lib/main_test.dart
deleted file mode 100644
index 64db2747..00000000
--- a/comwell_key_app/lib/main_test.dart
+++ /dev/null
@@ -1,6 +0,0 @@
-import 'package:comwell_key_app/firebase_options.dart';
-import 'package:comwell_key_app/main.dart';
-
-void main() async {
- runMainApp(DefaultFirebaseOptions.currentPlatform);
-}
\ No newline at end of file
diff --git a/comwell_key_app/scripts/run_stage.sh b/comwell_key_app/scripts/run_stage.sh
new file mode 100644
index 00000000..a2cc7b6d
--- /dev/null
+++ b/comwell_key_app/scripts/run_stage.sh
@@ -0,0 +1 @@
+fvm flutter run --flavor stage