From 0c74a4f35591e3ab28e73b5c77842fd24a9221f2 Mon Sep 17 00:00:00 2001 From: italo patricio Date: Tue, 3 Oct 2023 22:14:46 -0300 Subject: [PATCH] chore(update-version): update version gradle --- .metadata | 36 + .vscode/launch.json | 6 + analysis_options.yaml | 28 + android/app/build.gradle | 67 ++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 33 + .../com/example/get_version/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 13 +- android/gradle/wrapper/gradle-wrapper.jar | Bin 54329 -> 53636 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- android/gradlew | 72 +- android/gradlew.bat | 14 +- example/.flutter-plugins-dependencies | 2 +- example/.gitignore | 45 +- example/.metadata | 30 +- example/README.md | 168 +---- example/analysis_options.yaml | 28 + example/android/.gitignore | 6 + example/android/app/build.gradle | 46 +- .../android/app/src/debug/AndroidManifest.xml | 6 +- .../android/app/src/main/AndroidManifest.xml | 20 +- .../com/example/example/MainActivity.kt | 6 - .../res/drawable-v21/launch_background.xml | 12 + .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 12 +- .../app/src/profile/AndroidManifest.xml | 6 +- example/android/build.gradle | 10 +- example/android/example_android.iml | 2 +- example/android/gradle.properties | 1 - .../gradle/wrapper/gradle-wrapper.properties | 3 +- example/android/settings.gradle | 27 +- example/example.iml | 3 +- example/ios/.gitignore | 2 + example/ios/Flutter/AppFrameworkInfo.plist | 4 +- example/ios/Flutter/Debug.xcconfig | 2 +- example/ios/Flutter/Release.xcconfig | 2 +- .../ios/Flutter/flutter_export_environment.sh | 9 +- example/ios/Podfile | 2 +- example/ios/Runner.xcodeproj/project.pbxproj | 201 ++++-- .../contents.xcworkspacedata | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 21 +- .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 564 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 1283 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 1588 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 1025 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 1716 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 1920 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 1283 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 1895 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 2665 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 2665 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 3831 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 1888 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 3294 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 3612 -> 1418 bytes example/ios/Runner/Info.plist | 8 +- example/ios/RunnerTests/RunnerTests.swift | 12 + example/lib/main_old.dart | 155 +++++ example/pubspec.yaml | 58 +- example/test/widget_test.dart | 35 +- example/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes example/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes example/web/index.html | 50 +- example/web/manifest.json | 14 +- ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 617 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 ++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 ++ ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + pubspec.yaml | 5 +- test/widget_test.dart | 30 + web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 59 ++ web/manifest.json | 35 + 121 files changed, 2168 insertions(+), 417 deletions(-) create mode 100644 .metadata create mode 100644 analysis_options.yaml create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/get_version/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml mode change 100644 => 100755 android/gradlew create mode 100644 example/analysis_options.yaml create mode 100644 example/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 example/android/app/src/main/res/values-night/styles.xml create mode 100644 example/ios/RunnerTests/RunnerTests.swift create mode 100644 example/lib/main_old.dart create mode 100644 example/web/icons/Icon-maskable-192.png create mode 100644 example/web/icons/Icon-maskable-512.png create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 test/widget_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..2bb8bb7 --- /dev/null +++ b/.metadata @@ -0,0 +1,36 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "367f9ea16bfae1ca451b9cc27c1366870b187ae2" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + - platform: android + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + - platform: ios + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + - platform: web + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/.vscode/launch.json b/.vscode/launch.json index 348ecfc..42b120d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,12 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { + "name": "Dart", + "type": "dart", + "request": "launch", + "program": "bin/main.dart" + } ] diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..96e672f --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,67 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +android { + namespace "com.example.get_version" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.get_version" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies {} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..993f497 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/get_version/MainActivity.kt b/android/app/src/main/kotlin/com/example/get_version/MainActivity.kt new file mode 100644 index 0000000..e1425f4 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/get_version/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.get_version + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle index 5969fd5..bca7c91 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,14 +2,14 @@ group 'com.appleeducate.getversion' version '1.0' buildscript { - ext.kotlin_version = '1.7.20' + ext.kotlin_version = '1.9.10' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.3' + classpath 'com.android.tools.build:gradle:7.3.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion 33 + compileSdk 33 sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -61,8 +61,7 @@ android { } } -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} +//dependencies { +// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +//} -apply plugin: 'kotlin-android-extensions' \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar index f6b961fd5a86aa5fbfe90f707c3138408be7c718..13372aef5e24af05341d49695ee84e5f9b594659 100644 GIT binary patch delta 41017 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 YJa(A^3rM$<$}NaSLW+iF*?#ixe-7>3SpWb4 delta 41595 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 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 7636ec7..9fe458a 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/android/gradlew b/android/gradlew old mode 100644 new mode 100755 index cccdd3d..9d82f78 --- a/android/gradlew +++ b/android/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash ############################################################################## ## @@ -6,38 +6,20 @@ ## ############################################################################## -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn () { +warn ( ) { echo "$*" } -die () { +die ( ) { echo echo "$*" echo @@ -48,7 +30,6 @@ die () { cygwin=false msys=false darwin=false -nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -59,11 +40,26 @@ case "`uname`" in MINGW* ) msys=true ;; - NONSTOP* ) - nonstop=true - ;; esac +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -89,7 +85,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -154,19 +150,11 @@ if $cygwin ; then esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") } -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" -exec "$JAVACMD" "$@" +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat index f955316..8a0b282 100644 --- a/android/gradlew.bat +++ b/android/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,9 +46,10 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windows variants +@rem Get command-line arguments, handling Windowz variants if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -59,6 +60,11 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/example/.flutter-plugins-dependencies b/example/.flutter-plugins-dependencies index ad105b4..202166a 100644 --- a/example/.flutter-plugins-dependencies +++ b/example/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"get_version","path":"F:\\\\WorkSet\\\\Other\\\\get_version\\\\","native_build":true,"dependencies":["package_info"]},{"name":"package_info","path":"C:\\\\Users\\\\HH\\\\AppData\\\\Roaming\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-2.0.2\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"get_version","path":"F:\\\\WorkSet\\\\Other\\\\get_version\\\\","native_build":true,"dependencies":["package_info"]},{"name":"package_info","path":"C:\\\\Users\\\\HH\\\\AppData\\\\Roaming\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-2.0.2\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"package_info","path":"C:\\\\Users\\\\HH\\\\AppData\\\\Roaming\\\\Pub\\\\Cache\\\\hosted\\\\pub.flutter-io.cn\\\\package_info-2.0.2\\\\","native_build":true,"dependencies":[]}],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"get_version","dependencies":["package_info"]},{"name":"package_info","dependencies":[]}],"date_created":"2022-11-15 00:30:59.583673","version":"3.4.0-34.1.pre"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"get_version","path":"/Volumes/DADOS/documents/ELEVE/forks/get_version/","native_build":true,"dependencies":["package_info"]},{"name":"package_info","path":"/Users/italopatricio/.pub-cache/hosted/pub.dev/package_info-2.0.2/","native_build":true,"dependencies":[]}],"android":[{"name":"get_version","path":"/Volumes/DADOS/documents/ELEVE/forks/get_version/","native_build":true,"dependencies":["package_info"]},{"name":"package_info","path":"/Users/italopatricio/.pub-cache/hosted/pub.dev/package_info-2.0.2/","native_build":true,"dependencies":[]}],"macos":[{"name":"package_info","path":"/Users/italopatricio/.pub-cache/hosted/pub.dev/package_info-2.0.2/","native_build":true,"dependencies":[]}],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"get_version","dependencies":["package_info"]},{"name":"package_info","dependencies":[]}],"date_created":"2023-10-03 22:01:21.458081","version":"3.13.4"} \ No newline at end of file diff --git a/example/.gitignore b/example/.gitignore index af17aaf..24476c5 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -1,11 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp .DS_Store .atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id .dart_tool/ -.idea -.vscode/ +.flutter-plugins +.flutter-plugins-dependencies .packages +.pub-cache/ .pub/ -build/ -ios/.generated/ -packages -.flutter-plugins +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/example/.metadata b/example/.metadata index c549cc0..2bb8bb7 100644 --- a/example/.metadata +++ b/example/.metadata @@ -4,7 +4,33 @@ # This file should be version controlled and should not be manually edited. version: - revision: 92f7e16312d9c7c396c0100dcb699458c3f10172 - channel: master + revision: "367f9ea16bfae1ca451b9cc27c1366870b187ae2" + channel: "stable" project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + - platform: android + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + - platform: ios + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + - platform: web + create_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + base_revision: 367f9ea16bfae1ca451b9cc27c1366870b187ae2 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/example/README.md b/example/README.md index 41636b9..2b3fce4 100644 --- a/example/README.md +++ b/example/README.md @@ -1,164 +1,16 @@ -# get_version +# example -Demonstrates how to use the get_version plugin. +A new Flutter project. -## Example +## Getting Started -```dart -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:get_version/get_version.dart'; +This project is a starting point for a Flutter application. -import 'dart:io' show Platform; -import 'package:flutter/foundation.dart'; +A few resources to get you started if this is your first Flutter project: -// The existing imports -// !! Keep your existing impots here !! +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) -/// main is entry point of Flutter application -void main() { - // Desktop platforms aren't a valid platform. - if (!kIsWeb) _setTargetPlatformForDesktop(); - return runApp(MyApp()); -} - -/// If the current platform is desktop, override the default platform to -/// a supported platform (iOS for macOS, Android for Linux and Windows). -/// Otherwise, do nothing. -void _setTargetPlatformForDesktop() { - TargetPlatform targetPlatform; - if (Platform.isMacOS) { - targetPlatform = TargetPlatform.iOS; - } else if (Platform.isLinux || Platform.isWindows) { - targetPlatform = TargetPlatform.android; - } - if (targetPlatform != null) { - debugDefaultTargetPlatformOverride = targetPlatform; - } -} - -class MyApp extends StatefulWidget { - @override - _MyAppState createState() => new _MyAppState(); -} - -class _MyAppState extends State { - String _platformVersion = 'Unknown'; - String _projectVersion = ''; - String _projectCode = ''; - String _projectAppID = ''; - String _projectName = ''; - - @override - void initState() { - _initPlatformState(); - super.initState(); - } - - // Platform messages are asynchronous, so we initialize in an async method. - void _initPlatformState() async { - String platformVersion; - // Platform messages may fail, so we use a try/catch PlatformException. - try { - platformVersion = await GetVersion.platformVersion; - } on PlatformException { - platformVersion = 'Failed to get platform version.'; - } - - String projectVersion; - // Platform messages may fail, so we use a try/catch PlatformException. - try { - projectVersion = await GetVersion.projectVersion; - } on PlatformException { - projectVersion = 'Failed to get project version.'; - } - - String projectCode; - // Platform messages may fail, so we use a try/catch PlatformException. - try { - projectCode = await GetVersion.projectCode; - } on PlatformException { - projectCode = 'Failed to get build number.'; - } - - String projectAppID; - // Platform messages may fail, so we use a try/catch PlatformException. - try { - projectAppID = await GetVersion.appID; - } on PlatformException { - projectAppID = 'Failed to get app ID.'; - } - - String projectName; - // Platform messages may fail, so we use a try/catch PlatformException. - try { - projectName = await GetVersion.appName; - } on PlatformException { - projectName = 'Failed to get app name.'; - } - - // If the widget was removed from the tree while the asynchronous platform - // message was in flight, we want to discard the reply rather than calling - // setState to update our non-existent appearance. - if (!mounted) return; - - setState(() { - _platformVersion = platformVersion; - _projectVersion = projectVersion; - _projectCode = projectCode; - _projectAppID = projectAppID; - _projectName = projectName; - }); - } - - @override - Widget build(BuildContext context) { - return new MaterialApp( - home: new Scaffold( - appBar: new AppBar( - title: const Text('Get Version Example'), - ), - body: new SingleChildScrollView( - child: new ListBody( - children: [ - new Container( - height: 10.0, - ), - new ListTile( - leading: const Icon(Icons.info), - title: const Text('Name'), - subtitle: new Text(_projectName), - ), - const Divider(height: 20.0), - new ListTile( - leading: const Icon(Icons.info), - title: const Text('Running on'), - subtitle: new Text(_platformVersion), - ), - const Divider(height: 20.0), - new ListTile( - leading: const Icon(Icons.info), - title: const Text('Version Name'), - subtitle: new Text(_projectVersion), - ), - const Divider(height: 20.0), - new ListTile( - leading: const Icon(Icons.info), - title: const Text('Version Code'), - subtitle: new Text(_projectCode), - ), - const Divider(height: 20.0), - new ListTile( - leading: const Icon(Icons.info), - title: const Text('App ID'), - subtitle: new Text(_projectAppID), - ), - ], - ), - ), - ), - ); - } -} - -``` \ No newline at end of file +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/example/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/example/android/.gitignore b/example/android/.gitignore index bc2100d..6f56801 100644 --- a/example/android/.gitignore +++ b/example/android/.gitignore @@ -5,3 +5,9 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 0f6a5e5..118ee1d 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,29 +22,33 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 28 + namespace "com.example.example" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion - sourceSets { - main.java.srcDirs += 'src/main/kotlin' + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' } - lintOptions { - disable 'InvalidPackage' + sourceSets { + main.java.srcDirs += 'src/main/kotlin' } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.example" - minSdkVersion 16 - targetSdkVersion 28 + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -59,9 +64,4 @@ flutter { source '../..' } -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' -} +dependencies {} diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml index c208884..399f698 100644 --- a/example/android/app/src/debug/AndroidManifest.xml +++ b/example/android/app/src/debug/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 55ca830..19b862e 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,16 +1,11 @@ - - + - - diff --git a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt index 1656503..e793a00 100644 --- a/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt +++ b/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt @@ -1,12 +1,6 @@ package com.example.example -import androidx.annotation.NonNull; import io.flutter.embedding.android.FlutterActivity -import io.flutter.embedding.engine.FlutterEngine -import io.flutter.plugins.GeneratedPluginRegistrant class MainActivity: FlutterActivity() { - override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) { - GeneratedPluginRegistrant.registerWith(flutterEngine); - } } diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/example/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/example/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/example/android/app/src/main/res/values-night/styles.xml b/example/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/example/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml index 1f83a33..cb1ef88 100644 --- a/example/android/app/src/main/res/values/styles.xml +++ b/example/android/app/src/main/res/values/styles.xml @@ -1,18 +1,18 @@ - - - diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml index c208884..399f698 100644 --- a/example/android/app/src/profile/AndroidManifest.xml +++ b/example/android/app/src/profile/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/example/android/build.gradle b/example/android/build.gradle index 3100ad2..f7eb7f6 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,12 +1,12 @@ buildscript { - ext.kotlin_version = '1.3.50' + ext.kotlin_version = '1.7.10' repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -14,7 +14,7 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } @@ -26,6 +26,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/example/android/example_android.iml b/example/android/example_android.iml index 1029d72..1899969 100644 --- a/example/android/example_android.iml +++ b/example/android/example_android.iml @@ -21,7 +21,7 @@ - + diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 38c8d45..94adc3a 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -1,4 +1,3 @@ org.gradle.jvmargs=-Xmx1536M -android.enableR8=true android.useAndroidX=true android.enableJetifier=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index 296b146..3c472b9 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 5a2f14f..55c4ca8 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -1,15 +1,20 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + } + settings.ext.flutterSdkPath = flutterSdkPath() -def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -def plugins = new Properties() -def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') -if (pluginsFile.exists()) { - pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } + plugins { + id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false + } } -plugins.each { name, path -> - def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() - include ":$name" - project(":$name").projectDir = pluginDirectory -} +include ":app" + +apply from: "${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/example/example.iml b/example/example.iml index e5c8371..f66303d 100644 --- a/example/example.iml +++ b/example/example.iml @@ -7,7 +7,6 @@ - @@ -15,4 +14,4 @@ - \ No newline at end of file + diff --git a/example/ios/.gitignore b/example/ios/.gitignore index e96ef60..7a7f987 100644 --- a/example/ios/.gitignore +++ b/example/ios/.gitignore @@ -1,3 +1,4 @@ +**/dgph *.mode1v3 *.mode2v3 *.moved-aside @@ -18,6 +19,7 @@ Flutter/App.framework Flutter/Flutter.framework Flutter/Flutter.podspec Flutter/Generated.xcconfig +Flutter/ephemeral/ Flutter/app.flx Flutter/app.zip Flutter/flutter_assets/ diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 6b4c0f7..9625e10 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en CFBundleExecutable App CFBundleIdentifier @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 11.0 diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig index e8efba1..ec97fc6 100644 --- a/example/ios/Flutter/Debug.xcconfig +++ b/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig index 399e934..c4855bf 100644 --- a/example/ios/Flutter/Release.xcconfig +++ b/example/ios/Flutter/Release.xcconfig @@ -1,2 +1,2 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Flutter/flutter_export_environment.sh b/example/ios/Flutter/flutter_export_environment.sh index 31eb99e..ec9fa0c 100755 --- a/example/ios/Flutter/flutter_export_environment.sh +++ b/example/ios/Flutter/flutter_export_environment.sh @@ -1,13 +1,14 @@ #!/bin/sh # This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=D:\Software\SDK\flutter" -export "FLUTTER_APPLICATION_PATH=F:\WorkSet\Other\get_version\example" +export "FLUTTER_ROOT=/Users/italopatricio/flutter/3.13.4" +export "FLUTTER_APPLICATION_PATH=/Volumes/DADOS/documents/ELEVE/forks/get_version/example" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=lib\main.dart" +export "FLUTTER_TARGET=/Volumes/DADOS/documents/ELEVE/forks/get_version/example/lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=1.0.0" export "FLUTTER_BUILD_NUMBER=1" +export "DART_DEFINES=Zmx1dHRlci5pbnNwZWN0b3Iuc3RydWN0dXJlZEVycm9ycz1mYWxzZQ==,RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==,RkxVVFRFUl9XRUJfQ0FOVkFTS0lUX1VSTD1odHRwczovL3d3dy5nc3RhdGljLmNvbS9mbHV0dGVyLWNhbnZhc2tpdC85MDY0NDU5YThiMGRjZDMyODc3MTA3ZjYwMDJjYzQyOWE3MTY1OWQxLw==" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.dart_tool/package_config.json" +export "PACKAGE_CONFIG=/Volumes/DADOS/documents/ELEVE/forks/get_version/example/.dart_tool/package_config.json" diff --git a/example/ios/Podfile b/example/ios/Podfile index 0ee4a53..edf67c0 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +# platform :ios, '11.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 6a4846d..be9dd68 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,22 +3,29 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXCopyFilesBuildPhase section */ 9705A1C41CF9048500538489 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; @@ -26,8 +33,6 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, - 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -38,18 +43,18 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -57,8 +62,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, - 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -68,9 +71,7 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( - 3B80C3931E831B6300D905FE /* App.framework */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEBA1CF902C7004384FC /* Flutter.framework */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 9740EEB31CF90195004384FC /* Generated.xcconfig */, @@ -78,12 +79,21 @@ name = Flutter; sourceTree = ""; }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, ); sourceTree = ""; }; @@ -91,6 +101,7 @@ isa = PBXGroup; children = ( 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, ); name = Products; sourceTree = ""; @@ -102,7 +113,6 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, - 97C146F11CF9000F007C117D /* Supporting Files */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, @@ -111,16 +121,27 @@ path = Runner; sourceTree = ""; }; - 97C146F11CF9000F007C117D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - ); - name = "Supporting Files"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 97C146ED1CF9000F007C117D /* Runner */ = { isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; @@ -147,9 +168,14 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1020; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; LastSwiftMigration = 1100; @@ -170,11 +196,19 @@ projectRoot = ""; targets = ( 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 97C146EC1CF9000F007C117D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -191,20 +225,23 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -220,6 +257,14 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 97C146EA1CF9000F007C117D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -231,6 +276,14 @@ }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin PBXVariantGroup section */ 97C146FA1CF9000F007C117D /* Main.storyboard */ = { isa = PBXVariantGroup; @@ -253,7 +306,6 @@ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -293,7 +345,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -309,16 +361,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 8S68X7XUCK; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Flutter", + "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -328,9 +376,58 @@ }; name = Profile; }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -376,7 +473,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -386,7 +483,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -426,11 +522,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -443,16 +540,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 8S68X7XUCK; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Flutter", + "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -470,16 +563,12 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 8S68X7XUCK; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Flutter", + "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.example; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -492,6 +581,16 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 1d526a1..919434a 100644 --- a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140c..87131a0 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ - - - - + + + + + + - - Gw7hsN~k)CYt4dQDFxbs5*_&e@Hj)wtt(&JE<3Eq*D z;_gQLvqXoKv=I*gWqM9C(Tvu0>=?hTbOp9!6k6AF;>f6|S5%jGEE}TA9h)e`Yuiu8 d7)l?o1NFcJg%EAfM$P~L002ovPDHLkV1g^Dnv?(l delta 550 zcmV+>0@?ki0<;8>8Gi-<0051N9Sr~g00DDSM?wIu&K&6g00HhvL_t(I5v`QFOB_)Y z#?QI;j_a;jjf#Z$YJ7mH(xecJU?W)A`9CN~KrBV85C}GDQ=|;GDFPNjtWty!L{u=? zh>8yo%^GE+J9o~_IZFoiamQVQXP7%LzTbT3F@uf+9x&7cvVV%GdjTaC;zf>@mq<=3 z!c<%*UT)@yJ|0BK6~d4Jx-*KV`ZQ(@VyUPupum=XhInNG#Z_k-X|hK{B}~9IfiWx} zLD5QY6Vm)p0NrWymdkrHPN5Vgwd>5>4HI1=@PA+e^rq~CEj|n2X`??)0mUI*D{KBn zjv{V=y5X9|X@3grkpcXC6oou4ML~ezCc2EtnsQTB4tWNg?4bkf;hG7IMfhgNI(FV5 zGs4|*GyMTIY0$B=_*mso9+>eB z?J{?+FLkYu+4_Uk`r_>LHF~flZm0oBf#vr8%vJ>#p~!KNvqGG3)|f1T_)ydeh8$vDceZ>oNbH^|*hJ*t?Yc*1`WB&W>VYVEzu) zq#7;;VjO)t*nbgf(!`OXJBr45rP>>AQr$6c7slJWvbpNW@KTwna6d?PP>hvXCcp=4 zF;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f<+$JJpcdz delta 1274 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 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index 4cde12118dda48d71e01fcb589a74d069c5d7cb5..4cd7b0099ca80c806f8fe495613e8d6c69460d76 100644 GIT binary patch delta 266 zcmV+l0rmcY2$}+r8Gi!+003c4mpuRg09{Z_R7L;)|5U~JDYo_jSDX9(|7FYh`2GLd z^Zv2r{H^2sT*&w!Y^SB+`<>qVZqE6)=lqo0`vF#&*75!I`TIh@_d&k*HoEtQyV-iD z%Xz2D9EQRbeYh5Nr~y=#0ZD;^+vz0$004MNL_t(2&&|%+4u6C&2tZM$Wf&dzefR%A z(^3-?6X>hnCz2Ba@RH&`m!pgy?n@#@AuLYB&}Q)FGY`?vcft0!vht0Z@M&ZeNCWXh75gzRTXR8EE3oN&6 Q00000NkvXXt^-0~g5kS`djJ3c delta 1014 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 Zxpx7IC@PekH?;r&002ovPDHLkV1i)CYaajr delta 1916 zcmV-?2ZQ*)1%MBb8Gi-<0042w*=zs+2S-UnK~#9!?cG~!6jc}p@R>r@2Yv8@p?G^R zA|eDZ7{rR#1}sop6nca3fIb-?ED*6VwIFJZ!6Hy8w-yO8C@}~_05Gdr_$c4kiU&u$4j+xhLc-+x@XJ4X;S3;@U>VSc^? zQ-oQ8>A;-DT*34?AXhQJV-8~KF(sHg2eU|P;DUxQ_a|dEVEzDijZ2tj%oNrIBN{~& z>4Wk1F-%L`6DpV>Mpo}D4uPcWBCG2czh1jBlh{hu3!B5d1(snX=85|q1gQs{g(mmw zFhk?t-J03}-hU3m?2B8tH)4^yF(WhqGZlM3=9Ibs$%U1wWzcss*_c0=v_+^bfb`kB zFsI`d;ElwiU%frgRB%qBjn@!0U2zZehBn|{%uNIKBA7n=zE`nnwTP85{g;8AkYxA6 z8>#muXa!G>xH22D1I*SiD~7C?7Za+9y7j1SHiuSkK7ajvv#C@#-AyB-fbF?o#FaMR zJDRHO-oJwI(P;@j{Y`?E22zh%eMW-!PD-%va?p$yjUHg_5SW97D|{EkK-iW`L3pv- z4~1!@=&&EA9Pq)SV*$7tP|P@nrw{)Za}U8S%a)eF!V;W0J$@*|lp087uOFr#^24%U zq{wnjs(&o%xPaiU&xXU>0kGeNGuuGQ5tmf`yC)E6~>g8M!1m77Jdtm6rS zdzt5cn`N-@5mj#acH657tGvPJ!hP*GaHk;W`bL8(b&Ca)IkqSle-( z3~MW{(_wAHbpxy|xNd>XIIf#uGm7gr*o@)25q~x#xNe2D9M{dTmf~6gTbo6&mf^a+ zVlBhOVG}?}yia48X#p0jM&V#m55h z>JI^E`!oE3BU#}Dmwv9b)dtvg=lWr4mmi7``{5;>DN=7szV*Yi2Ys;Wj0F8;T@+3# zmw&G0iEAwC?DK@aT)GHRLhnz2WCvf3Ba;o=aY72{Asu5MEjGOY4O# zGgz@@J;q*0`kd2n8I3BeNuMmYZf{}pg=jTdTCrIIYuW~luKecn+E-pHY%ohyj1YuzG;)ZUq^`O?8S;53Ckoo?tVMn}05B zGT>6qU~R)?+l5}(M8IV|KHPZupz$m}u(sinl_#h8mK+a2-Z%PTS>T7;ufv262{vDp zBPZ@%`$0U4OAyGe*$BiPV-R;#+kY^w3*gq;1F)dJExc@8xT3fim)*FL!`r-_`hf}T zm`;Gax^BpsUI#+qYM8gWQ+@FWuz%ui+@N9%I0E}YCkWG)gIKl^a_2UIFntXIALItu z){pJS0}s~#9D>DGkhi=8gcoW+oYRQ78$!9MG7ea_7ufbMoah0Lz%Jbl!qW>uoV5yZ z*MeBOUIpGb5LmIV2XpaNDJ?A`1ltWTyk;i|kG}@u%nv~uIJ^uvgD3GS^%*ikdW6-!VFUU?JVZc2)4cMs@z;op$113mAD>fO*E%TZ|nArgH8#-g2!+%8FHwf;15T1O3 z%f6cwxNr>!C5<2yuQisJ*MabSJ(PUB7y5jX85K+)O)e+)5WQGt3uMU^^;zI|wjF^d zm+XKkwXKj}(_$#kENzAHZ*GT%JtreABF(BL3)s(I;&le^eK!%ZnImYePe^V6%BS#_+}3{E!Zyy%yt6N zc_MCu=*%YGbTRt+EScu(c1Sd(7eueRKax2l_JFm)Uc-z{HH8dq4-*++uSFzp1^;03 zwN8FSfgg=)5whnQIg+Indk!;R^%|;o+Ah*Vw#K~;+&BY@!gZ`W9baLF>6#BM(F}EX ze-`F=f_@`A7+Q&|QaZ??Txp_dB#lg!NH=t3$G8&06MFhwR=Iu*Im0s_b2B@|nW>X} zsy~m#EW)&6E&!*0%}8UAS)wjt+A(io#wGI@Z2S+Ms1Cxl%YVE80000+>eB z?J{?+FLkYu+4_Uk`r_>LHF~flZm0oBf#vr8%vJ>#p~!KNvqGG3)|f1T_)ydeh8$vDceZ>oNbH^|*hJ*t?Yc*1`WB&W>VYVEzu) zq#7;;VjO)t*nbgf(!`OXJBr45rP>>AQr$6c7slJWvbpNW@KTwna6d?PP>hvXCcp=4 zF;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f<+$JJpcdz delta 1274 zcmV@pi1MCNO0zH7s z{8#}P0)7Ba8DqYf&QgSne>X__O83t$NZM4&R0{XJq|x}oAU?tcfC@|eNz$04T}34& z8DJf78R&>*Zz`k$q{`#gfGHnx7nlH^G{y`jfER)1<_fNi<9aM%_zrm1C`yPkKma(+ ztQ;y*CR2bbBYz>zG*SVsfpkGU(q>uHZf3iogk_%#9E|5SWeHrmAo>P;ejX7mwq#*} zW25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+X$F_KMdb6sRz!~7K zkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&IDi_4_D!s#MVXp|-XhH;H z#&@_;oApJVd}}5O@b=X_gJboD^-fM@6|#V@sA%X)Rlkd}3MLH0dGXGG&-HX|aD~|M zC)W#H7=H?AbtdaV#dGpubj_O^J-SlWpVNv-5(;wR%mvE9`Qaqo>03b&##eNNf=m#B z9@^lsd8tJ;BvI86kNV zc~0CY(7V{s+h%cWG|y=gt|q`z$l<(@qU=i?9q#uz`G?PgDMK!VMGidHZt*N+1L0ZI zFkH=mFtywc6rJ}C_?)=m)18V!ZQ`*-j(D`gCFK|nt#{bk*%%zuQ7o7kvJgA^=(^7b zzkm5GZ;jxRn{Wup8IOUx8D4uh&(=Ox-7$a;U><*5L^!% zxRlw)vAbh;sdlR||&e}8_8%)c2Fwy=F& zH|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}Jb#viX>Oi;kBKp1x_fc0#UIbIeSJ^EkWFox zijdim{ojmn@#7EC*aY;fC0W*WN+DmQtE06pNK3SfZ^#@2K`6RgEuU_KwJTQ>E?Yar zc_9e#I$F8%>kuy-JI6ocSsYvQGbsxUCx04(w1z-pMRz9`kH5smmF@WHEG?dcYkv){ zV?kn3XB$_3zr*h1Uow)(<5)w5;3Wh1jHI)`ZlXp&!yEV{Y_~@;?CLwq;4eeaGOe6( zEsSSbwSGD0-`dUUl014$1_O8Gi!+006nq0-pc?0H{z*R7L;)|5U~JDYo_jSDXF*|5nEMy6F5^ z$M}8I`uzU?*Yf=uXr;5|{0m;6_Wb|A>ik^D_|)+I$?g3CSDK^3+eX0mD!2CP`2NN0 z{dLg!a?km&%iyTt`yiax0acdp`~T(l{$a`ZF1YpsRg(cvjDG_-U$Er-fz#Bw>2W$eUI#iU z)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G!hkE!s;%oku3;IwG3U^2k zw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn_j%}l|2+O?a>_7qq7W zmx(qtA2nV^tZlLpy_#$U%ZNx5;$`0L&dZ!@e7rFXPGAOup%q`|03hpdtXsPP0000< KMNUMnLSTZ1N;Pr- delta 1891 zcmV-p2b}oI1m_Nr8Gi-<0052=@~r>>2QEoOK~#9!?VW3E6jc<*XLh$yKNt;)Mial3 z7z%<>zxaV5DhMs*(b6YIW1=KP6Jj(m21QYbiJ}su&;o5EN=$%gptMj6p|(7#AOTUJ zlt8fsX(iGq?ZQ50=XmbU+~w|cmz~|6$KBbz$-g^IcV>Hk`+q<8%-p?uMi3G-0B~!5 ze-yPCwFPw?HGmpMc~K)7BCq;C528+>zC*o^8h^XKC)IFgkv#xzm!ewK7j|kRa9dFo zC>MoDSR@P2#cWSU{i1oH5K2-Xb3jRz>|h7VOh0K` zhq^--L3H}A0r)nr z;Tr|-kPjB1s=ItpnS`oT%|U=a4oK-ZFIE^YBLH{u2#~@%%D^K)$`9*Tg(~9M-B+Zj z;~H?4LVsEt0eFtN4&>H(DZ@KpI6RhBKLL21CxC`J&m4Gc^9wwMZU#7SR1+KtuhSZM z+yLY}Vekzw6T_ApfEkuB_yU;e&a)L@rX~z70A_N+upOXN!qygmPDmKG0d%7CECcAI zgkd>ArzH$a0XjKsO$X@IgkcH5Y;m3`0G*yNOn(KK4GF_EfL4aB5i1j9o&Z{vFk~k> z&?@K2jQcJO%W!cddG(_DyfSoO55bUMHtbDF8DPkwF^~Ql#Eq4w15k{h%ML5Ar&pzi zl-D7v8kQXQ!&RRgKCW#5DZB$$6?mjWm50rRw*ukK>P-GkA|k69h{NARc>e}uLx+U4 z0DqE>7pa}9Fez+Vc-3jb`%i^uulglFoMzAVR|2%rf= zf#;74FXF^Ku_4+G&-4$KVy%YP>%2rxu2VG_cdm?XRjEhF&wPXJ># z_Q2+jGs=l~Fyx#MmGn+PZ0`@kBfGp|fO;Vov<$;z`(+sSZ7;Y=zXaF(8rb@CuQDV^ zq3i(2LfqO%AS!Ss>V%j7%>{6mtbYQrtQK5V4InPq0NZSaXv+f2U=&2}Z6OvkBfNHi z{LSaVJ!d5dC2K*ft_L^DRk;boQhOoVw!~Kt#0b2vd%!(&DF|~u1F@nG#LA5zR&7Fv z4GKgXooMSKb1g)6Obo-rgpuEP20T;W0Aa>55KC4gtQrKkAq-Hgs@FigV1GG8+rQ=z z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRet3L_uNyQ*c zE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=kyx=~RKa4{iT zm{_>_vSCm?$Ej=i6@=m%@PE9t1zZaoM}@2|h!#1K02~31S_I<0ZV=|K0}n!RRX6Ac zXmMf*5P-dLW}WPVsCKq)-x(0*txpZ2xrv3cxJ%l=7lpoNCyG< zK92ySAcmb-3m&}s@VwXv9(0#p<>B-5$bMxT;rk;OmENa6eM4D&LVo~01soUL39?R{ zyFLt3m|v?rCK7#KNu9E9Q4KV-pEUv^{rrClE&X&9I4-e7%pu_31#zGTOfC=ab%w20R*zBP+uT#l2{a~~~0wuG%6 zco*tVxK&e>%SJj*K!2tq*_h&ES5S9@TKb8WzpK;`&b9dNdxh4S)z%Q)o`aYWUh}9L z(`p!#WO5IxI|nf?yz{90R93Ed6@2qim*}Zjj$H&Esd`?JsFJUnDfiAgF_eYiWR3GC z>M9SHDylEWrA(%mfm~;u7OU9!Wz^!7Z%jZF zi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i0WYBP d*#0Ks^FNSabJA*5${_#%002ovPDHLkV1gB0Vle;! diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index a6d6b8609df07bf62e5100a53a01510388bd2b22..0ec303439225b78712f49115768196d8d76f6790 100644 GIT binary patch delta 850 zcmV-Y1Fih&6y64q8Gi!+000iU#^3+|0OwFlR7L;)|5U~J09TtSw)Xt~|5(QO`~Ck( z!T0|D|3<*~RmJ%E{r+;#`2ba!klFf7!uJMSo%Q?vP{jByxcAZE>;OrUCbaZYjJo^$ z{nGILmD~Da$@upC{`C6(Ey4dPw)Pyc^>5DkHoEo!QcuK-Jwl-l}t(fQKv z{dds$V#@dygS`PvhX6is7Z+@*x-d;$ zb=6f@U3Jw}_s+W3%*+b9H_vS)-R#9?zrXogeLVI2We2RFTTAL}&3C8PS~<5D&v@UI z+`s*$wqQ=yd$laNUY-|ovcS9~n_90tFUdl#qq0tEUXle|k{Op|DHpSrbxEeZ5~$>o%>OSe z^=41qvh3LlC2xXzu+-2eQoqs1^L>7ylB$bCP);(%(xYZL1 cY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f@rA97ytkO literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index a6d6b8609df07bf62e5100a53a01510388bd2b22..0ec303439225b78712f49115768196d8d76f6790 100644 GIT binary patch delta 850 zcmV-Y1Fih&6y64q8Gi!+000iU#^3+|0OwFlR7L;)|5U~J09TtSw)Xt~|5(QO`~Ck( z!T0|D|3<*~RmJ%E{r+;#`2ba!klFf7!uJMSo%Q?vP{jByxcAZE>;OrUCbaZYjJo^$ z{nGILmD~Da$@upC{`C6(Ey4dPw)Pyc^>5DkHoEo!QcuK-Jwl-l}t(fQKv z{dds$V#@dygS`PvhX6is7Z+@*x-d;$ zb=6f@U3Jw}_s+W3%*+b9H_vS)-R#9?zrXogeLVI2We2RFTTAL}&3C8PS~<5D&v@UI z+`s*$wqQ=yd$laNUY-|ovcS9~n_90tFUdl#qq0tEUXle|k{Op|DHpSrbxEeZ5~$>o%>OSe z^=41qvh3LlC2xXzu+-2eQoqs1^L>7ylB$bCP);(%(xYZL1 cY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f@rA97ytkO literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 75b2d164a5a98e212cca15ea7bf2ab5de5108680..e9f5fea27c705180eb716271f41b582e76dcbd90 100644 GIT binary patch delta 1668 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 diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index c4df70d39da7941ef3f6dcb7f06a192d8dcb308d..84ac32ae7d989f82d5e46a60405adcc8279e8001 100644 GIT binary patch delta 749 zcmVg;Ps8|O$@u8^{Z_{KM!@$5TAfS6_e#O{MZfpz`2O`0$7~@NRr(1{THzH08y3x{{PYM{eL;T_A9^tcF_4Sxb`8l z_9V3RD6;a(-0A^Pjsi!1?)d#Ap4Tk3^CP0(07;VpJ7@tgQ}z4)*zx@&yZwC9`DV-b z0ZobH_5IB4{KxD3;p_6%|f=bdFhu+F!zMZ2UFj;GUKX7tI;hv3{q~!*pMj75WP_c}> z6)IWvg5_yyg<9Op()eD1hWC19M@?_9_MHec{Z8n3FMs~w_u?Av_yNBmRxVYrpi(M% zFMP21g+hmocQp3ay*Su=qM6He)*HaaTg$E^sym`(t%s3A)x!M+vfjXUBEpK6X9%iU zU!u9jj3(-$dM~sJ%Liy#?|+!6IY#MTau#O6vVj`yh_7%Ni!?!VS+MPTO(_fG+1<#p zqu;A#i+_(N%CmVnYvb>#nA{>Q%3E`Ds7<~jZMywn@h2t>G-LrYy7?Dj{aZqhQd6tzX%(Trn+ z)HNF}%-F{rr=m*0{=a;s#YDL00000NkvXXu0mjfaGjYE delta 1884 zcmV-i2c!7<1>g>l8Gi-<0076AQ7Zrd2Pa8HK~#9!?VNjT6h$1z_m0EFf5bmb1dTDK zp;kdKV1h(V(8Sc1M<37!RE>znAk{x4#zX@eOeE1j3~!+nB5IL z<xS}u?#DBMB>w^b($1Z)`9G?eP95EKi& z$eOy@K%h;ryrR3la%;>|o*>CgB(s>dDcNOXg}CK9SPmD?Uu$P4(=PGA0ShFasNfcIHTL?9WjB9#(2xSLC z`0%$#9DW9F;B4mbU{BlaYx!SjF!QSeF~(msQRxwboh5B_O$BWOQja)GboJz$&!?mgB&3$ytsA zvns&b3Cl5Hx#%p%faR*Q906u&fbXy$maV`n?S>A)vJIH!F-vxCrY+rq5_JA(GcOgu7(Ky4X3ATR9z8*%k&<5qYeV&4Y`~}XYmK(j{)!g8d2UgHXIINM!Rvn zKtEq~Foe0s!U{kux~F6Y7Sp+2f|*Cc${S{@oh8D0=XhB8Ec-w9CflfL+te4ium2cU zoPTCj_m<3d#gjK=<*8R`HP^C$lOPM5d~UhKhRRmvv{LI za^|oavk1$QiEApSrP@~Jjbg`<*dW4TO@DPEEX$Tg$xh?Y>Qd}y@kaH~IT8!lLpS^J zR7(&wZSI6+>Eb)tX>9Z?GX#q$u z4I>7e#b7ojyJ1grOh!^}s8S#ubi^Jkd1?UK)3mp6rI^_zxRY zrx6_QmhoWoDR`fp4R7gu6@OBFGu7IDVR6~nJsB{^f5jHn<{WJ&&f^X?3f8TIk3#U& zu1*Q-e@;snJxNx8-PBnpI|uFTKN!+Lp;fPfZ+eqqU^Y1|#DJY~126?zOx-+d>%4*? z&o`TbrXSNXZW^!P0t2>@$6&aiBtUDh2wLXLD9&a(1J=k_FK|iGbAQ@x4Qmx}Ms+*; zze&q6bH(=wYuXHfz0H6<05!LkE4rl~v^!bj=^9d+vI5fN<;GP>*Pas=q2l9RxDkk` zPRk&EQI+t_0$Y%nKE)Ma)W?jaA@4Z{h zTk*7;;#lG?hvTN_On=Jaxp%bdE;mDq(q#dgdYF|-?wrMeI4h`$idZ6^VyXZVlaCd0 z;i)OYR3npf@9>00Gqn##Zb4HRurgaWFCzL9u6@J@sse>Z1XznxWvSy%Td32I3!#YN zXt9v0)RQtDDZRd?#WY?~KF7A0UcR{jt9 W+;fr}hV%pg0000&=UXv0SHh`R7L;)|5U~JDYo_jSDRDC`1<|-SjPDL z{{Q{{{{H{}09Kk-#rR9Y_viNgVafPO!S|ls`uzR=MZfp^{QU=8od8La1X`Tr_Wmff z_5e$ivgQ1@=KMy$_g9a+`TPAle6cOJ_Fc#L7qIpvwDkd1mw$fK`6IOUD75rX!}mad zv(fMTE4=(Nx%L54lL1hVF1YpqNrC`FddBPg#_Ietx%Lrkq5wX00X1L{S%Cm9QY*av z#_Rh5PKy9KYTWbvz3BX9%J>0Hi1+#X{rLA{m%$Kamk?i!03AC38#Yrxs)5QTeTVRiEmz~MKK1WAjCw(c-JK6eox;2O)?`?TG`AHia671e^vgmp!llK zp|=5sVHk#C7=~epA~VAf-~%aPC=%Qw01h8mnSZ|p?tc*y?iZ$PR7_ceEIapF3KB14K0Pog?7wtd+^xgUCa_GVmlD z<^nU>AU_Yn-JU?NFdu|wf^bTCNf-wSBYVZltDdvGBln-YrbeGvJ!|s{#`gjN@yAMb zM6cjFz0eFECCsc|_8hTa3*9-JQGehksdoVP^K4m?&wpA~+|b%{EP5D-+7h)6CE; z*{>BP=GRR3Ea}xyV*bqry{l^J=0#DaC4ej;1qs8_by?H6Tr@7hl>UKNZt)^B&yl;)&oqzLg zcfZxpE?3k%_iTOVywh%`XVN-E#COl+($9{v(pqSQcrz=)>G!!3HeNxbXGM@})1|9g zG4*@(OBaMvY0P0_TfMFPh fVHk#CZX3S=^^2mI>Ux-D00000NkvXXu0mjfzK(<8 literal 3294 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 cX)(b1KSk$MOV07*qoM6N<$f&{Qds= z{r_0T`1}6fwc-8!#-TGX}_?g)CZq4{k!uZ_g@DrQdoW0kI zu+W69&uN^)W`CK&06mMNcYMVF00dG=L_t(|+U?wHQxh>12H+Dm+1+fh+IF>G0SjJM zkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJTkdTm&kdTm&kdTm&kdP`e zsgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>VI$fQI%^ugM`#6By?GeadWcu z0gy9!D`m!H>Bd!JW(@avE8`|5XX(0PN}!8K>`dkavs;rHL+wy96QGNT=S@#7%xtlm zIW!++@*2zm-Py#Zr`DzqsLm!b{iskFNULSqE9A>SqHem>o31A%XL>S_5?=;V_i_y+ z(xxXhnt#r-l1Y8_*h`r?8Tr|)(RAiO)4jQR`13X0mx07C&p@KBP_2s``KEhv^|*8c z$$_T(v6^1Ig=#R}sE{vjA?ErGDZGUsyoJuWdJMc7Nb1^KF)-u<7q zPy$=;)0>vuWuK2hQhswLf!9yg`88u&eBbR8uhod?Nw09AXH}-#qOLLxeT2%C;R)QQ$Za#qp~cM&YVmS4i-*Fpd!cC zBXc?(4wcg>sHmXGd^VdE<5QX{Kyz$;$sCPl(_*-P2Iw?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF34$0Z;QO!J zOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUCUoZo%k(yku QW&i*H07*qoM6N<$g47z!?*IS* literal 3612 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 iW8 CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Example CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -39,7 +41,9 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - UIViewControllerBasedStatusBarAppearance - + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + diff --git a/example/ios/RunnerTests/RunnerTests.swift b/example/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/example/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/example/lib/main_old.dart b/example/lib/main_old.dart new file mode 100644 index 0000000..b78fb6d --- /dev/null +++ b/example/lib/main_old.dart @@ -0,0 +1,155 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:get_version/get_version.dart'; + +import 'dart:io' show Platform; +import 'package:flutter/foundation.dart'; + +// The existing imports +// !! Keep your existing impots here !! + +/// main is entry point of Flutter application +void main() { + // Desktop platforms aren't a valid platform. + if (!kIsWeb) _setTargetPlatformForDesktop(); + return runApp(MyApp()); +} + +/// If the current platform is desktop, override the default platform to +/// a supported platform (iOS for macOS, Android for Linux and Windows). +/// Otherwise, do nothing. +void _setTargetPlatformForDesktop() { + TargetPlatform? targetPlatform; + if (Platform.isMacOS) { + targetPlatform = TargetPlatform.iOS; + } else if (Platform.isLinux || Platform.isWindows) { + targetPlatform = TargetPlatform.android; + } + if (targetPlatform != null) { + debugDefaultTargetPlatformOverride = targetPlatform; + } +} + +class MyApp extends StatefulWidget { + @override + _MyAppState createState() => new _MyAppState(); +} + +class _MyAppState extends State { + String _platformVersion = 'Unknown'; + String _projectVersion = ''; + String _projectCode = ''; + String _projectAppID = ''; + String _projectName = ''; + + @override + void initState() { + _initPlatformState(); + super.initState(); + } + + // Platform messages are asynchronous, so we initialize in an async method. + void _initPlatformState() async { + String platformVersion; + // Platform messages may fail, so we use a try/catch PlatformException. + try { + platformVersion = await GetVersion.platformVersion; + } on PlatformException { + platformVersion = 'Failed to get platform version.'; + } + + String projectVersion; + // Platform messages may fail, so we use a try/catch PlatformException. + try { + projectVersion = await GetVersion.projectVersion; + } on PlatformException { + projectVersion = 'Failed to get project version.'; + } + + String projectCode; + // Platform messages may fail, so we use a try/catch PlatformException. + try { + projectCode = await GetVersion.projectCode; + } on PlatformException { + projectCode = 'Failed to get build number.'; + } + + String projectAppID; + // Platform messages may fail, so we use a try/catch PlatformException. + try { + projectAppID = await GetVersion.appID; + } on PlatformException { + projectAppID = 'Failed to get app ID.'; + } + + String projectName; + // Platform messages may fail, so we use a try/catch PlatformException. + try { + projectName = await GetVersion.appName; + } on PlatformException { + projectName = 'Failed to get app name.'; + } + + // If the widget was removed from the tree while the asynchronous platform + // message was in flight, we want to discard the reply rather than calling + // setState to update our non-existent appearance. + if (!mounted) return; + + setState(() { + _platformVersion = platformVersion; + _projectVersion = projectVersion; + _projectCode = projectCode; + _projectAppID = projectAppID; + _projectName = projectName; + }); + } + + @override + Widget build(BuildContext context) { + return new MaterialApp( + home: new Scaffold( + appBar: new AppBar( + title: const Text('Get Version Example'), + ), + body: new SingleChildScrollView( + child: new ListBody( + children: [ + new Container( + height: 10.0, + ), + new ListTile( + leading: const Icon(Icons.info), + title: const Text('Name'), + subtitle: new Text(_projectName), + ), + const Divider(height: 20.0), + new ListTile( + leading: const Icon(Icons.info), + title: const Text('Running on'), + subtitle: new Text(_platformVersion), + ), + const Divider(height: 20.0), + new ListTile( + leading: const Icon(Icons.info), + title: const Text('Version Name'), + subtitle: new Text(_projectVersion), + ), + const Divider(height: 20.0), + new ListTile( + leading: const Icon(Icons.info), + title: const Text('Version Code'), + subtitle: new Text(_projectCode), + ), + const Divider(height: 20.0), + new ListTile( + leading: const Icon(Icons.info), + title: const Text('App ID'), + subtitle: new Text(_projectAppID), + ), + ], + ), + ), + ), + ); + } +} diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 0396c94..32dc51f 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,28 +1,58 @@ -name: get_version_example -description: Demonstrates how to use the get_version plugin. +name: example +description: A new Flutter project. +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.1.2 <4.0.0' +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter + get_version: + path: ../ + # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.0 + cupertino_icons: ^1.0.2 dev_dependencies: flutter_test: sdk: flutter - get_version: - path: ../ + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 # For information on the generic Dart part of this file, see the -# following page: https://www.dartlang.org/tools/pub/pubspec +# following page: https://dart.dev/tools/pub/pubspec -# The following section is specific to Flutter. +# The following section is specific to Flutter packages. flutter: # The following line ensures that the Material Icons font is @@ -32,14 +62,14 @@ flutter: # To add assets to your application, add an assets section, like this: # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.io/assets-and-images/#resolution-aware. + # https://flutter.dev/assets-and-images/#resolution-aware # For details regarding adding assets from package dependencies, see - # https://flutter.io/assets-and-images/#from-packages + # https://flutter.dev/assets-and-images/#from-packages # To add custom fonts to your application, add a fonts section here, # in this "flutter" section. Each entry in this list should have a @@ -58,5 +88,5 @@ flutter: # - asset: fonts/TrajanPro_Bold.ttf # weight: 700 # - # For details regarding fonts from package dependencies, - # see https://flutter.io/custom-fonts/#from-packages + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/example/test/widget_test.dart b/example/test/widget_test.dart index 572b5af..092d222 100644 --- a/example/test/widget_test.dart +++ b/example/test/widget_test.dart @@ -1,27 +1,30 @@ // This is a basic Flutter widget test. -// To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter -// provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to -// find child widgets in the widget tree, read text, and verify that the values of widget properties -// are correct. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. -/* import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:get_version_example/main.dart'; +import 'package:example/main.dart'; void main() { - testWidgets('Verify Platform version', (WidgetTester tester) async { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(new MyApp()); + await tester.pumpWidget(const MyApp()); - // Verify that platform version is retrieved. - expect( - find.byWidgetPredicate( - (Widget widget) => - widget is Text && widget.data.startsWith('Running on:'), - ), - findsOneWidget); + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); }); } -*/ diff --git a/example/web/icons/Icon-maskable-192.png b/example/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/example/web/icons/Icon-maskable-512.png b/example/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/example/web/index.html b/example/web/index.html index 0fb7ea6..45cf2ca 100644 --- a/example/web/index.html +++ b/example/web/index.html @@ -1,33 +1,59 @@ + + + - + - + - + example - + + + + + - - diff --git a/example/web/manifest.json b/example/web/manifest.json index c638001..096edf8 100644 --- a/example/web/manifest.json +++ b/example/web/manifest.json @@ -2,7 +2,7 @@ "name": "example", "short_name": "example", "start_url": ".", - "display": "minimal-ui", + "display": "standalone", "background_color": "#0175C2", "theme_color": "#0175C2", "description": "A new Flutter project.", @@ -18,6 +18,18 @@ "src": "icons/Icon-512.png", "sizes": "512x512", "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" } ] } diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..723b74b --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,617 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807E294A63A400263BE5 /* Frameworks */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1430; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 8S68X7XUCK; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.getVersion; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AE0B7B92F70575B8D7E0D07E /* Pods-RunnerTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.getVersion.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 89B67EB44CE7B6631473024E /* Pods-RunnerTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.getVersion.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 640959BDD8F10B91D80A66BE /* Pods-RunnerTests.profile.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.getVersion.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 8S68X7XUCK; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.getVersion; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = 8S68X7XUCK; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.getVersion; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..87131a0 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..797d452e458972bab9d994556c8305db4c827017 GIT binary patch literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed2d933e1120817fe9182483a228007b18ab6ae GIT binary patch literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd7b0099ca80c806f8fe495613e8d6c69460d76 GIT binary patch literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fe730945a01f64a61e2235dbe3f45b08f7729182 GIT binary patch literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..502f463a9bc882b461c96aadf492d1729e49e725 GIT binary patch literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ec303439225b78712f49115768196d8d76f6790 GIT binary patch literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f5fea27c705180eb716271f41b582e76dcbd90 GIT binary patch literal 1674 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0467bf12aa4d28f374bb26596605a46dcbb3e7c8 GIT binary patch literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..3506b2d --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Get Version + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + get_version + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.yaml b/pubspec.yaml index 1018d88..3a98631 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,14 +1,13 @@ name: get_version description: Get the Version Name, Version Code, Platform and OS Version, and App ID on iOS and Android. -version: 0.2.2 +version: 0.3.0 author: Rody Davis homepage: https://github.com/fluttercommunity/get_version maintainer: Rody Davis (@rodydavis) environment: - sdk: ">=2.12.0 <3.0.0" - flutter: ^1.10.0 + sdk: ">=3.0.2 <4.0.0" dependencies: flutter: diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..fa31de4 --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:get_version/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..f2de1ab --- /dev/null +++ b/web/index.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + get_version + + + + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..fcac0b8 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "get_version", + "short_name": "get_version", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +}