diff --git a/.DS_Store b/.DS_Store index 7170dc9a92..7c5d996ae9 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/mobile/.gitignore b/mobile/.gitignore index ff455aeb61..18ca645104 100644 --- a/mobile/.gitignore +++ b/mobile/.gitignore @@ -46,3 +46,6 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +# Fastlane +ios/fastlane/report.xml \ No newline at end of file diff --git a/mobile/android/Gemfile b/mobile/android/Gemfile new file mode 100644 index 0000000000..7a118b49be --- /dev/null +++ b/mobile/android/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem "fastlane" diff --git a/mobile/android/Gemfile.lock b/mobile/android/Gemfile.lock new file mode 100644 index 0000000000..6c707c4a3b --- /dev/null +++ b/mobile/android/Gemfile.lock @@ -0,0 +1,218 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.5) + rexml + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + artifactory (3.0.15) + atomos (0.1.3) + aws-eventstream (1.2.0) + aws-partitions (1.566.0) + aws-sdk-core (3.130.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.525.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-kms (1.55.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.113.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sigv4 (1.4.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + claide (1.1.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + declarative (0.0.20) + digest-crc (0.6.4) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.7.6) + emoji_regex (3.2.3) + excon (0.92.0) + faraday (1.10.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) + multipart-post (>= 1.2, < 3) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + fastimage (2.2.6) + fastlane (2.204.3) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (~> 2.0.0) + naturally (~> 2.2) + 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) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.3.0) + xcpretty-travis-formatter (>= 0.0.3) + gh_inspector (1.1.3) + google-apis-androidpublisher_v3 (0.16.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-core (0.4.2) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + webrick + google-apis-iamcredentials_v1 (0.10.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-playcustomapp_v1 (0.7.0) + google-apis-core (>= 0.4, < 2.a) + google-apis-storage_v1 (0.11.0) + google-apis-core (>= 0.4, < 2.a) + google-cloud-core (1.6.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.5.0) + faraday (>= 0.17.3, < 2.0) + google-cloud-errors (1.2.0) + google-cloud-storage (1.36.1) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.1) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.1.2) + 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) + highline (2.0.3) + http-cookie (1.0.4) + domain_name (~> 0.5) + httpclient (2.8.3) + jmespath (1.6.1) + json (2.6.1) + jwt (2.3.0) + memoist (0.16.2) + mini_magick (4.11.0) + mini_mime (1.1.2) + multi_json (1.15.0) + multipart-post (2.0.0) + nanaimo (0.3.0) + naturally (2.2.1) + optparse (0.1.1) + os (1.1.4) + plist (3.6.0) + public_suffix (4.0.6) + rake (13.0.6) + representable (3.1.1) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.5) + rouge (2.0.7) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + security (0.1.3) + signet (0.16.1) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.0) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.8) + CFPropertyList + naturally + terminal-notifier (2.0.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.1) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.1) + unicode-display_width (1.8.0) + webrick (1.7.0) + word_wrap (1.0.0) + xcodeproj (1.21.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + xcpretty (0.3.0) + rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + +PLATFORMS + x86_64-darwin-21 + +DEPENDENCIES + fastlane + +BUNDLED WITH + 2.3.7 diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle index bc71cad4df..f2faf08058 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -25,6 +25,13 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + + android { compileSdkVersion flutter.compileSdkVersion @@ -43,18 +50,27 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.immich_mobile" + applicationId "app.alextran.immich" minSdkVersion 20 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName } + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } + 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 + signingConfig signingConfigs.release } } } diff --git a/mobile/android/app/src/debug/AndroidManifest.xml b/mobile/android/app/src/debug/AndroidManifest.xml index 610629c0c1..e33c470b4d 100644 --- a/mobile/android/app/src/debug/AndroidManifest.xml +++ b/mobile/android/app/src/debug/AndroidManifest.xml @@ -1,7 +1,6 @@ - - - - + + \ No newline at end of file diff --git a/mobile/android/app/src/main/AndroidManifest.xml b/mobile/android/app/src/main/AndroidManifest.xml index d2ad64de82..f9fd6c9379 100644 --- a/mobile/android/app/src/main/AndroidManifest.xml +++ b/mobile/android/app/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ - + - - + + \ No newline at end of file diff --git a/mobile/android/fastlane/Appfile b/mobile/android/fastlane/Appfile new file mode 100644 index 0000000000..64a2c5d2b7 --- /dev/null +++ b/mobile/android/fastlane/Appfile @@ -0,0 +1,2 @@ +json_key_file("/Users/alex/Documents/immich-fastlane-googleplaystore-key.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +package_name("app.alextran.immich") # e.g. com.krausefx.app diff --git a/mobile/android/fastlane/Fastfile b/mobile/android/fastlane/Fastfile new file mode 100644 index 0000000000..3549ff5366 --- /dev/null +++ b/mobile/android/fastlane/Fastfile @@ -0,0 +1,25 @@ +# This file contains the fastlane.tools configuration +# You can find the documentation at https://docs.fastlane.tools +# +# For a list of all available actions, check out +# +# https://docs.fastlane.tools/actions +# +# For a list of all available plugins, check out +# +# https://docs.fastlane.tools/plugins/available-plugins +# + +# Uncomment the line if you want fastlane to automatically update itself +# update_fastlane + +default_platform(:android) + +platform :android do + + desc "Update AAB to PlayStore" + lane :beta do + upload_to_play_store(track: 'beta', aab: '../build/app/outputs/bundle/release/app-release.aab') + end + +end diff --git a/mobile/android/fastlane/README.md b/mobile/android/fastlane/README.md new file mode 100644 index 0000000000..e3a324951c --- /dev/null +++ b/mobile/android/fastlane/README.md @@ -0,0 +1,32 @@ +fastlane documentation +---- + +# Installation + +Make sure you have the latest version of the Xcode command line tools installed: + +```sh +xcode-select --install +``` + +For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane) + +# Available Actions + +## Android + +### android beta + +```sh +[bundle exec] fastlane android beta +``` + +Update AAB to PlayStore + +---- + +This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. + +More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools). + +The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/mobile/android/fastlane/report.xml b/mobile/android/fastlane/report.xml new file mode 100644 index 0000000000..42ae3df8f8 --- /dev/null +++ b/mobile/android/fastlane/report.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/metadata/en-US/full_description.txt b/mobile/android/metadata/en-US/full_description.txt new file mode 100644 index 0000000000..1b9cf3fdd9 --- /dev/null +++ b/mobile/android/metadata/en-US/full_description.txt @@ -0,0 +1,3 @@ +This is a client app for Immich Server and you will need to run/manage the server on your own in order to use the app. + +Github URL: https://github.com/alextran1502/immich \ No newline at end of file diff --git a/mobile/android/metadata/en-US/images/featureGraphic.png b/mobile/android/metadata/en-US/images/featureGraphic.png new file mode 100644 index 0000000000..0a90e98649 Binary files /dev/null and b/mobile/android/metadata/en-US/images/featureGraphic.png differ diff --git a/mobile/android/metadata/en-US/images/icon.png b/mobile/android/metadata/en-US/images/icon.png new file mode 100644 index 0000000000..d383769607 Binary files /dev/null and b/mobile/android/metadata/en-US/images/icon.png differ diff --git a/mobile/android/metadata/en-US/images/phoneScreenshots/1_en-US.png b/mobile/android/metadata/en-US/images/phoneScreenshots/1_en-US.png new file mode 100644 index 0000000000..e7bddc3ee8 Binary files /dev/null and b/mobile/android/metadata/en-US/images/phoneScreenshots/1_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/phoneScreenshots/2_en-US.png b/mobile/android/metadata/en-US/images/phoneScreenshots/2_en-US.png new file mode 100644 index 0000000000..33724630e4 Binary files /dev/null and b/mobile/android/metadata/en-US/images/phoneScreenshots/2_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/phoneScreenshots/3_en-US.png b/mobile/android/metadata/en-US/images/phoneScreenshots/3_en-US.png new file mode 100644 index 0000000000..d5ac2595a2 Binary files /dev/null and b/mobile/android/metadata/en-US/images/phoneScreenshots/3_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/phoneScreenshots/4_en-US.png b/mobile/android/metadata/en-US/images/phoneScreenshots/4_en-US.png new file mode 100644 index 0000000000..b313b8da51 Binary files /dev/null and b/mobile/android/metadata/en-US/images/phoneScreenshots/4_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/phoneScreenshots/5_en-US.png b/mobile/android/metadata/en-US/images/phoneScreenshots/5_en-US.png new file mode 100644 index 0000000000..81f620959d Binary files /dev/null and b/mobile/android/metadata/en-US/images/phoneScreenshots/5_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/sevenInchScreenshots/1_en-US.png b/mobile/android/metadata/en-US/images/sevenInchScreenshots/1_en-US.png new file mode 100644 index 0000000000..8fccc132f9 Binary files /dev/null and b/mobile/android/metadata/en-US/images/sevenInchScreenshots/1_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/sevenInchScreenshots/2_en-US.png b/mobile/android/metadata/en-US/images/sevenInchScreenshots/2_en-US.png new file mode 100644 index 0000000000..59a212210a Binary files /dev/null and b/mobile/android/metadata/en-US/images/sevenInchScreenshots/2_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/sevenInchScreenshots/3_en-US.png b/mobile/android/metadata/en-US/images/sevenInchScreenshots/3_en-US.png new file mode 100644 index 0000000000..3e2779138e Binary files /dev/null and b/mobile/android/metadata/en-US/images/sevenInchScreenshots/3_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/sevenInchScreenshots/4_en-US.png b/mobile/android/metadata/en-US/images/sevenInchScreenshots/4_en-US.png new file mode 100644 index 0000000000..2a8b712c57 Binary files /dev/null and b/mobile/android/metadata/en-US/images/sevenInchScreenshots/4_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/sevenInchScreenshots/5_en-US.png b/mobile/android/metadata/en-US/images/sevenInchScreenshots/5_en-US.png new file mode 100644 index 0000000000..90e7f144be Binary files /dev/null and b/mobile/android/metadata/en-US/images/sevenInchScreenshots/5_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/tenInchScreenshots/1_en-US.png b/mobile/android/metadata/en-US/images/tenInchScreenshots/1_en-US.png new file mode 100644 index 0000000000..8fccc132f9 Binary files /dev/null and b/mobile/android/metadata/en-US/images/tenInchScreenshots/1_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/tenInchScreenshots/2_en-US.png b/mobile/android/metadata/en-US/images/tenInchScreenshots/2_en-US.png new file mode 100644 index 0000000000..59a212210a Binary files /dev/null and b/mobile/android/metadata/en-US/images/tenInchScreenshots/2_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/tenInchScreenshots/3_en-US.png b/mobile/android/metadata/en-US/images/tenInchScreenshots/3_en-US.png new file mode 100644 index 0000000000..3e2779138e Binary files /dev/null and b/mobile/android/metadata/en-US/images/tenInchScreenshots/3_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/tenInchScreenshots/4_en-US.png b/mobile/android/metadata/en-US/images/tenInchScreenshots/4_en-US.png new file mode 100644 index 0000000000..2a8b712c57 Binary files /dev/null and b/mobile/android/metadata/en-US/images/tenInchScreenshots/4_en-US.png differ diff --git a/mobile/android/metadata/en-US/images/tenInchScreenshots/5_en-US.png b/mobile/android/metadata/en-US/images/tenInchScreenshots/5_en-US.png new file mode 100644 index 0000000000..90e7f144be Binary files /dev/null and b/mobile/android/metadata/en-US/images/tenInchScreenshots/5_en-US.png differ diff --git a/mobile/android/metadata/en-US/short_description.txt b/mobile/android/metadata/en-US/short_description.txt new file mode 100644 index 0000000000..2be649d485 --- /dev/null +++ b/mobile/android/metadata/en-US/short_description.txt @@ -0,0 +1 @@ +Self-hosted photo and video backup solution directly from your mobile phone. \ No newline at end of file diff --git a/mobile/android/metadata/en-US/title.txt b/mobile/android/metadata/en-US/title.txt new file mode 100644 index 0000000000..84babea089 --- /dev/null +++ b/mobile/android/metadata/en-US/title.txt @@ -0,0 +1 @@ +Immich \ No newline at end of file diff --git a/mobile/android/metadata/en-US/video.txt b/mobile/android/metadata/en-US/video.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mobile/ios/fastlane/report.xml b/mobile/ios/fastlane/report.xml index a8fe3f2bcb..c409767698 100644 --- a/mobile/ios/fastlane/report.xml +++ b/mobile/ios/fastlane/report.xml @@ -5,14 +5,17 @@ - + - + - + + + + diff --git a/mobile/lib/shared/services/device_info.service.dart b/mobile/lib/shared/services/device_info.service.dart index 26810ca357..124daacf5b 100644 --- a/mobile/lib/shared/services/device_info.service.dart +++ b/mobile/lib/shared/services/device_info.service.dart @@ -1,11 +1,9 @@ -import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter_udid/flutter_udid.dart'; import 'dart:io' show Platform; class DeviceInfoService { Future> getDeviceInfo() async { // Get device info - DeviceInfoPlugin deviceInfo = DeviceInfoPlugin(); String deviceId = await FlutterUdid.consistentUdid; String deviceType = ""; diff --git a/mobile/makefile b/mobile/makefile index 2b2b7be44d..1feef8156a 100644 --- a/mobile/makefile +++ b/mobile/makefile @@ -5,4 +5,7 @@ watch: flutter packages pub run build_runner watch --delete-conflicting-outputs create_app_icon: - flutter pub run flutter_launcher_icons:main \ No newline at end of file + flutter pub run flutter_launcher_icons:main + +build_release_android: + flutter build appbundle \ No newline at end of file diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 6d94db35a1..5b40d36995 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -232,48 +232,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.1" - device_info_plus: - dependency: "direct main" - description: - name: device_info_plus - url: "https://pub.dartlang.org" - source: hosted - version: "3.2.1" - device_info_plus_linux: - dependency: transitive - description: - name: device_info_plus_linux - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.1" - device_info_plus_macos: - dependency: transitive - description: - name: device_info_plus_macos - url: "https://pub.dartlang.org" - source: hosted - version: "2.2.1" - device_info_plus_platform_interface: - dependency: transitive - description: - name: device_info_plus_platform_interface - url: "https://pub.dartlang.org" - source: hosted - version: "2.3.0+1" - device_info_plus_web: - dependency: transitive - description: - name: device_info_plus_web - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.0" - device_info_plus_windows: - dependency: transitive - description: - name: device_info_plus_windows - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.1" dio: dependency: "direct main" description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index b2e6a744c4..c56efdfe4c 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -2,7 +2,7 @@ name: immich_mobile description: A new Flutter project. publish_to: "none" -version: 1.1.0+1 +version: 1.2.0+2 environment: sdk: ">=2.15.1 <3.0.0" @@ -17,7 +17,6 @@ dependencies: hive: hive_flutter: dio: ^4.0.4 - device_info_plus: ^3.2.1 cached_network_image: ^3.2.0 google_fonts: ^2.2.0 percent_indicator: ^3.4.0