Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fvmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"flutter": "3.32.5"
"flutter": "3.38.7"
}
4 changes: 2 additions & 2 deletions .github/workflows/flutter_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
BuildAndTestIos:
name: Build ios prod

runs-on: macos-15
runs-on: macos-26
permissions: write-all

steps:
Expand Down Expand Up @@ -113,7 +113,7 @@ jobs:
- name: Choose xcode version
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '16.4'
xcode-version: '26.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
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/flutter_release_ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
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-15
runs-on: macos-26
permissions: write-all

steps:
Expand Down Expand Up @@ -48,7 +48,7 @@ jobs:
- name: Choose xcode version
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '16.4'
xcode-version: '26.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
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
name: Build and release prod testflight
if: ${{ !contains ( github.event.release.tag_name, '_' ) || endsWith( github.event.release.tag_name, '_ios' ) }}

runs-on: macos-15
runs-on: macos-26
permissions: write-all

steps:
Expand Down Expand Up @@ -122,7 +122,7 @@ jobs:
- name: Choose xcode version
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '16.4'
xcode-version: '26.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
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,7 @@ ios/Runner.ipa
.fvm/

# Remove after Flutter 3.29 bug is fixed
android/app/.cxx/
#android/app/.cxx/

ios/build/ios/XCBuildData/
android/app/local.properties
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"*.dll",
"**/*.dll"
],
"dart.flutterSdkPath": ".fvm/versions/3.32.5",
"dart.flutterSdkPath": ".fvm/versions/3.38.7",
"search.exclude": {
"**/.fvm": true
},
Expand Down
9 changes: 6 additions & 3 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "com.android.application"
id 'org.jetbrains.kotlin.android' version '2.1.20'
id 'org.jetbrains.kotlin.android' version '2.3.0'
id "dev.flutter.flutter-gradle-plugin"
}

Expand Down Expand Up @@ -82,7 +82,7 @@ kotlin {
}

android {
compileSdk 35
compileSdk 36

compileOptions {
sourceCompatibility = 17
Expand Down Expand Up @@ -115,14 +115,17 @@ android {
applicationId "com.keevault.keevault"
applicationIdSuffix idSuffix
minSdkVersion 29
targetSdk 35
targetSdk 36
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
resValue "string", "app_name", "Kee Vault" + nameSuffix
resValue "string", "flutter_autofill_service_label", "Kee Vault" + nameSuffix
ndk.debugSymbolLevel = symbolLevel
testInstrumentationRunner "pl.leancode.patrol.PatrolJUnitRunner"
testInstrumentationRunnerArguments clearPackageData: "true"

// Required for flutter_inapp_purchase: Select Google Play platform
missingDimensionStrategy 'platform', 'play'
}

testOptions {
Expand Down
8 changes: 7 additions & 1 deletion android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,10 @@
-dontwarn dalvik.system.VMStack
-dontwarn java.lang.**
-dontwarn javax.naming.**
-dontwarn sun.reflect.Reflection
-dontwarn sun.reflect.Reflection

-dontwarn ch.qos.logback.classic.Level
-dontwarn ch.qos.logback.classic.Logger
-dontwarn ch.qos.logback.classic.LoggerContext
-dontwarn ch.qos.logback.classic.spi.ILoggingEvent
-dontwarn ch.qos.logback.classic.spi.LoggingEvent
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ rootProject.buildDir = '../build'
subprojects {
afterEvaluate {
android {
compileSdkVersion 35
compileSdkVersion 36
}
}

Expand Down
4 changes: 4 additions & 0 deletions android/fastlane/metadata/android/en-GB/changelogs/59.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* New autocomplete feature on the Username field - select from previously used usernames to speed up the creation of new entries with common usernames such as your primary email address.
* Improved AutoFill behaviour in some apps and websites.
* Updated Flutter and other dependencies.
* Improved performance on newer Android devices (by supporting 16K Android memory page size).
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Thu Jun 19 12:25:55 BST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
4 changes: 2 additions & 2 deletions android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ pluginManagement {

plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version '8.10.0' apply false
id "org.jetbrains.kotlin.android" version "2.1.20" apply false
id "com.android.application" version '8.13.2' apply false
id "org.jetbrains.kotlin.android" version "2.3.0" apply false
}

include ":app"
75 changes: 34 additions & 41 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,41 +3,40 @@ PODS:
- Flutter
- barcode_scan2 (0.0.1):
- Flutter
- MTBBarcodeScanner
- SwiftProtobuf
- SwiftProtobuf (~> 1.33)
- biometric_storage (0.0.1):
- Flutter
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.4):
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.4)
- DKImagePickerController/PhotoGallery (4.3.4):
- DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.4)
- DKPhotoGallery (0.0.17):
- DKPhotoGallery/Core (= 0.0.17)
- DKPhotoGallery/Model (= 0.0.17)
- DKPhotoGallery/Preview (= 0.0.17)
- DKPhotoGallery/Resource (= 0.0.17)
- DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.17):
- DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.17):
- DKPhotoGallery/Model (0.0.19):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.17):
- DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.17):
- DKPhotoGallery/Resource (0.0.19):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
Expand All @@ -48,31 +47,29 @@ PODS:
- Flutter
- flutter_inapp_purchase (0.0.1):
- Flutter
- openiap (= 1.3.0)
- flutter_native_splash (2.4.3):
- Flutter
- MTBBarcodeScanner (5.0.11)
- openiap (1.3.0)
- package_info_plus (0.4.5):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.3.0):
- Flutter
- rate_my_app (2.2.0):
- Flutter
- FlutterMacOS
- SDWebImage (5.16.0):
- SDWebImage/Core (= 5.16.0)
- SDWebImage/Core (5.16.0)
- SDWebImage (5.21.5):
- SDWebImage/Core (= 5.21.5)
- SDWebImage/Core (5.21.5)
- sensitive_clipboard (0.0.1):
- Flutter
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- SwiftProtobuf (1.22.0)
- SwiftyGif (5.4.4)
- SwiftProtobuf (1.33.3)
- SwiftyGif (5.4.5)
- url_launcher_ios (0.0.1):
- Flutter

Expand All @@ -87,7 +84,6 @@ DEPENDENCIES:
- flutter_inapp_purchase (from `.symlinks/plugins/flutter_inapp_purchase/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- rate_my_app (from `.symlinks/plugins/rate_my_app/darwin`)
- sensitive_clipboard (from `.symlinks/plugins/sensitive_clipboard/ios`)
Expand All @@ -99,7 +95,7 @@ SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- MTBBarcodeScanner
- openiap
- SDWebImage
- SwiftProtobuf
- SwiftyGif
Expand All @@ -125,8 +121,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_native_splash/ios"
package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
rate_my_app:
Expand All @@ -142,29 +136,28 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
argon2_ffi: 995b9260d81aa17f5d2a8a497f2d2763ba4c45f3
barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0
barcode_scan2: 050b7b327e85954c8918715d42e83c5a35c3ed89
biometric_storage: 1400f1382af3a4cc2bf05340e13c3d8de873ceb9
device_info_plus: bf2e3232933866d73fe290f2942f2156cdd10342
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: b159e0c068aef54932bb15dc9fd1571818edaf49
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_file_dialog: 4c014a45b105709a27391e266c277d7e588e9299
flutter_inapp_purchase: 5c6a1ac3f11b11d0c8c0321c0c41c1f05805e4c8
flutter_inapp_purchase: f71036b9e28b3865d3313ea6e4fd01052623b43a
flutter_native_splash: df59bb2e1421aa0282cb2e95618af4dcb0c56c29
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
openiap: b8ae35279df4060abf7dc2fed33e325022eecdf5
package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
rate_my_app: cd3e1c44d12f387482698ffaf6ea9bd669a69b94
SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6
SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986
share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
SwiftProtobuf: 40bd808372cb8706108f22d28f8ab4a6b9bc6989
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
shared_preferences_foundation: 5086985c1d43c5ba4d5e69a4e8083a389e2909e6
SwiftProtobuf: e1b437c8e31a4c5577b643249a0bb62ed4f02153
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
url_launcher_ios: bb13df5870e8c4234ca12609d04010a21be43dfa

PODFILE CHECKSUM: 0658f7bb36458779f6da1691e33f9d925242f612

COCOAPODS: 1.15.2
COCOAPODS: 1.16.2
2 changes: 1 addition & 1 deletion lib/config/environment_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class EnvironmentConfig {
static const iapAppleAppStore = bool.hasEnvironment('IAP_APPLE_APP_STORE');
static const iapGooglePlay = bool.hasEnvironment('IAP_GOOGLE_PLAY');

static get webUrl {
static String get webUrl {
switch (stage) {
case 'dev':
return 'https://app-dev.kee.pm';
Expand Down
2 changes: 1 addition & 1 deletion lib/credentials/expiring_cached_credential_hash_map.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class ExpiringCachedCredentialHashMap {

Map<String, dynamic> toJson() => _map.map((u, c) => MapEntry(u, c.toJson()));

update(String user, ExpiringCachedCredentials? creds) {
void update(String user, ExpiringCachedCredentials? creds) {
if (creds == null) {
_map.remove(user);
} else {
Expand Down
Loading