diff --git a/.github/workflows/flutter_release_android.yml b/.github/workflows/flutter_release_android.yml index 00dd166..2a85690 100644 --- a/.github/workflows/flutter_release_android.yml +++ b/.github/workflows/flutter_release_android.yml @@ -6,25 +6,25 @@ on: jobs: setupAndTestAndroid: - name: Build and release Google play to beta channel - if: ${{ !contains (github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_android' ) }} + name: Build and release to Testfairy and maybe Google play beta channel + if: ${{ !contains (github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_android' ) || endsWith( github.event.release.tag_name, '_android_betaonly' ) }} runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'adopt' # 'temurin' is apparently the new version of this but only adopt is listed as installed on github runners so need to test changing later - java-version: '11' + distribution: 'temurin' + java-version: '17' cache: 'gradle' check-latest: false - name: Load Flutter config - uses: kuhnroyal/flutter-fvm-config-action@v1 + uses: kuhnroyal/flutter-fvm-config-action@v2 - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -37,7 +37,7 @@ jobs: run: flutter --version - name: Cache pub dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ env.PUB_CACHE }} key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }} @@ -91,14 +91,20 @@ jobs: cd android bundle exec fastlane beta_stage - - name: Build Android App Bundle - env: - KEEVAULT_ANDROID_PLAY_KEYSTORE_PASSWORD: ${{ secrets.KEEVAULT_ANDROID_PLAY_KEYSTORE_PASSWORD }} - run: flutter build appbundle --dart-define KEEVAULT_STAGE=prod --dart-define KEEVAULT_CHANNEL=play --dart-define IAP_GOOGLE_PLAY=yes - - - name: Release to Google Play (beta) - env: - KEEVAULT_ANDROID_PLAY_API_KEY_JSON: ${{ secrets.KEEVAULT_ANDROID_PLAY_API_KEY_JSON }} - run: | - cd android - bundle exec fastlane beta + - name: CI sanity test + if: ${{ !endsWith( github.event.release.tag_name, '_android_betaonly' ) }} + run: echo "insane" + + # - name: Build Android App Bundle + # if: ${{ !endsWith( github.event.release.tag_name, '_android_betaonly' ) }} + # env: + # KEEVAULT_ANDROID_PLAY_KEYSTORE_PASSWORD: ${{ secrets.KEEVAULT_ANDROID_PLAY_KEYSTORE_PASSWORD }} + # run: flutter build appbundle --dart-define KEEVAULT_STAGE=prod --dart-define KEEVAULT_CHANNEL=play --dart-define IAP_GOOGLE_PLAY=yes + + # - name: Release to Google Play (beta) + # if: ${{ !endsWith( github.event.release.tag_name, '_android_betaonly' ) }} + # env: + # KEEVAULT_ANDROID_PLAY_API_KEY_JSON: ${{ secrets.KEEVAULT_ANDROID_PLAY_API_KEY_JSON }} + # run: | + # cd android + # bundle exec fastlane beta diff --git a/.github/workflows/flutter_release_ios.yml b/.github/workflows/flutter_release_ios.yml index 0fea4be..726c303 100644 --- a/.github/workflows/flutter_release_ios.yml +++ b/.github/workflows/flutter_release_ios.yml @@ -6,18 +6,18 @@ on: jobs: DeployIosBetaAdhoc: name: Build and release beta adhoc - if: ${{ !contains ( github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_ios' ) }} + if: ${{ !contains ( github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_ios' ) || endsWith( github.event.release.tag_name, '_ios_betaonly' ) }} # NB: ${{ syntax }} is required despite GitHub docs to the contrary. Appears that ! operator can't be used otherwise. - runs-on: macos-13 + runs-on: macos-14 permissions: write-all steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Load Flutter config - uses: kuhnroyal/flutter-fvm-config-action@v1 + uses: kuhnroyal/flutter-fvm-config-action@v2 - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -30,7 +30,7 @@ jobs: run: flutter --version - name: Cache pub dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ env.PUB_CACHE }} key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }} @@ -48,7 +48,7 @@ jobs: - name: Choose xcode version uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '15.0' + xcode-version: '15.2' - name: Build iOS Flutter App run: flutter build ios --config-only --release --no-codesign --dart-define KEEVAULT_STAGE=beta --dart-define KEEVAULT_NAME_SUFFIX='(b)' --dart-define KEEVAULT_ID_SUFFIX=.beta @@ -56,8 +56,8 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.0' - bundler: 2.4.19 + ruby-version: '3.3' + bundler: 2.5.6 bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Release beta stage app to beta delivery platform @@ -83,15 +83,15 @@ jobs: name: Build and release prod testflight if: ${{ !contains ( github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_ios' ) }} - runs-on: macos-13 + runs-on: macos-14 permissions: write-all steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Load Flutter config - uses: kuhnroyal/flutter-fvm-config-action@v1 + uses: kuhnroyal/flutter-fvm-config-action@v2 - name: Setup Flutter uses: subosito/flutter-action@v2 @@ -104,7 +104,7 @@ jobs: run: flutter --version - name: Cache pub dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ env.PUB_CACHE }} key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }} @@ -122,7 +122,7 @@ jobs: - name: Choose xcode version uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '15.0' + xcode-version: '15.2' - name: Build iOS Flutter App run: flutter build ios --config-only --release --no-codesign --dart-define KEEVAULT_STAGE=prod --dart-define KEEVAULT_NAME_SUFFIX= --dart-define KEEVAULT_ID_SUFFIX= --dart-define IAP_APPLE_APP_STORE=yes @@ -130,8 +130,8 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.0' - bundler: 2.4.19 + ruby-version: '3.3' + bundler: 2.5.6 bundler-cache: true # runs 'bundle install' and caches installed gems automatically - name: Release prod stage app to appstore testflight diff --git a/android/Gemfile.lock b/android/Gemfile.lock index 9eede3c..12e7df9 100644 --- a/android/Gemfile.lock +++ b/android/Gemfile.lock @@ -1,29 +1,32 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.6) + CFPropertyList (3.0.7) + base64 + nkf rexml - addressable (2.8.4) + addressable (2.8.6) public_suffix (>= 2.0.2, < 6.0) artifactory (3.0.15) atomos (0.1.3) - aws-eventstream (1.2.0) - aws-partitions (1.784.0) - aws-sdk-core (3.177.0) - aws-eventstream (~> 1, >= 1.0.2) + aws-eventstream (1.3.0) + aws-partitions (1.894.0) + aws-sdk-core (3.191.3) + aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.5) + aws-sigv4 (~> 1.8) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.70.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-kms (1.77.0) + aws-sdk-core (~> 3, >= 3.191.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.128.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-s3 (1.143.0) + aws-sdk-core (~> 3, >= 3.191.0) aws-sdk-kms (~> 1) - aws-sigv4 (~> 1.6) - aws-sigv4 (1.6.0) + aws-sigv4 (~> 1.8) + aws-sigv4 (1.8.0) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) + base64 (0.2.0) claide (1.1.0) colored (1.2) colored2 (3.1.2) @@ -32,11 +35,10 @@ GEM declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) + domain_name (0.6.20240107) dotenv (2.8.1) emoji_regex (3.2.3) - excon (0.100.0) + excon (0.109.0) faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -65,8 +67,8 @@ GEM faraday-retry (1.0.3) faraday_middleware (1.2.0) faraday (~> 1.0) - fastimage (2.2.7) - fastlane (2.213.0) + fastimage (2.3.0) + fastlane (2.219.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) artifactory (~> 3.0) @@ -85,20 +87,22 @@ GEM gh_inspector (>= 1.1.2, < 2.0.0) google-apis-androidpublisher_v3 (~> 0.3) google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-env (>= 1.6.0, < 2.0.0) google-cloud-storage (~> 1.31) highline (~> 2.0) + http-cookie (~> 1.0.5) json (< 3.0.0) jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) multipart-post (>= 2.0.0, < 3.0.0) naturally (~> 2.2) - optparse (~> 0.1.1) + optparse (>= 0.1.1) plist (>= 3.1.0, < 4.0.0) rubyzip (>= 2.0.0, < 3.0.0) security (= 0.1.3) simctl (~> 1.6.3) terminal-notifier (>= 2.0.0, < 3.0.0) - terminal-table (>= 1.4.5, < 2.0.0) + terminal-table (~> 3) tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) @@ -107,9 +111,9 @@ GEM xcpretty-travis-formatter (>= 0.0.3) fastlane-plugin-flutter_version (1.1.15) gh_inspector (1.1.3) - google-apis-androidpublisher_v3 (0.45.0) + google-apis-androidpublisher_v3 (0.54.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-core (0.11.0) + google-apis-core (0.11.3) addressable (~> 2.5, >= 2.5.1) googleauth (>= 0.16.2, < 2.a) httpclient (>= 2.8.1, < 3.a) @@ -117,31 +121,29 @@ GEM representable (~> 3.0) retriable (>= 2.0, < 4.a) rexml - webrick google-apis-iamcredentials_v1 (0.17.0) google-apis-core (>= 0.11.0, < 2.a) google-apis-playcustomapp_v1 (0.13.0) google-apis-core (>= 0.11.0, < 2.a) - google-apis-storage_v1 (0.19.0) - google-apis-core (>= 0.9.0, < 2.a) - google-cloud-core (1.6.0) - google-cloud-env (~> 1.0) + google-apis-storage_v1 (0.31.0) + google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.6.1) + google-cloud-env (>= 1.0, < 3.a) google-cloud-errors (~> 1.0) google-cloud-env (1.6.0) faraday (>= 0.17.3, < 3.0) google-cloud-errors (1.3.1) - google-cloud-storage (1.44.0) + google-cloud-storage (1.47.0) addressable (~> 2.8) digest-crc (~> 0.4) google-apis-iamcredentials_v1 (~> 0.1) - google-apis-storage_v1 (~> 0.19.0) + google-apis-storage_v1 (~> 0.31.0) google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - googleauth (1.6.0) + googleauth (1.8.1) faraday (>= 0.17.3, < 3.a) jwt (>= 1.4, < 3.0) - memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) signet (>= 0.16, < 2.a) @@ -150,31 +152,32 @@ GEM domain_name (~> 0.5) httpclient (2.8.3) jmespath (1.6.2) - json (2.6.3) - jwt (2.7.1) - memoist (0.16.2) + json (2.7.1) + jwt (2.8.0) + base64 mini_magick (4.12.0) - mini_mime (1.1.2) + mini_mime (1.1.5) multi_json (1.15.0) - multipart-post (2.3.0) + multipart-post (2.4.0) nanaimo (0.3.0) naturally (2.2.1) - optparse (0.1.1) + nkf (0.2.0) + optparse (0.4.0) os (1.1.4) - plist (3.7.0) - public_suffix (5.0.1) - rake (13.0.6) + plist (3.7.1) + public_suffix (5.0.4) + rake (13.1.0) representable (3.2.0) declarative (< 0.1.0) trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.5) + rexml (3.2.6) rouge (2.0.7) ruby2_keywords (0.0.5) rubyzip (2.3.2) security (0.1.3) - signet (0.17.0) + signet (0.19.0) addressable (~> 2.8) faraday (>= 0.17.5, < 3.a) jwt (>= 1.5, < 3.0) @@ -183,21 +186,17 @@ GEM CFPropertyList naturally terminal-notifier (2.0.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) trailblazer-option (0.1.2) tty-cursor (0.7.1) - tty-screen (0.8.1) + tty-screen (0.8.2) tty-spinner (0.9.3) tty-cursor (~> 0.7) uber (0.1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (1.8.0) - webrick (1.8.1) + unicode-display_width (2.5.0) word_wrap (1.0.0) - xcodeproj (1.22.0) + xcodeproj (1.24.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -217,4 +216,4 @@ DEPENDENCIES fastlane-plugin-flutter_version BUNDLED WITH - 2.3.7 + 2.5.6 diff --git a/lib/cubit/vault_cubit.dart b/lib/cubit/vault_cubit.dart index 5e9d899..fd95a74 100644 --- a/lib/cubit/vault_cubit.dart +++ b/lib/cubit/vault_cubit.dart @@ -678,6 +678,10 @@ class VaultCubit extends Cubit { return; } } else { + if (s is VaultImported || s is VaultImportingCredentialsRequired) { + l.d('refresh called during an import. Will not refresh now.'); + return; + } throw Exception('Vault not loaded when refresh called'); } } diff --git a/pubspec.yaml b/pubspec.yaml index 904a665..61a5052 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.2.0+54 +version: 2.2.1+55 environment: sdk: '>=3.0.0 <4.0.0'