chore(workflows,fastlane): configure macOS App Store distribution for desktop app (lanes, workflow, screenshots) (#1911)
113
.github/workflows/macos-distribute.yaml
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
name: macOS Build & Distribute (TestFlight / App Store)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
distribution:
|
||||
description: Where to distribute this build
|
||||
type: choice
|
||||
required: true
|
||||
options: [testflight, appstore]
|
||||
default: testflight
|
||||
|
||||
jobs:
|
||||
build_and_ship:
|
||||
name: Build & Ship to → ${{ inputs.distribution }}
|
||||
runs-on: macos-latest
|
||||
|
||||
env:
|
||||
KEYCHAIN_NAME: signing-${{ github.run_id }}.keychain-db
|
||||
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
|
||||
APP_IDENTIFIER: org.mifospay
|
||||
APPSTORE_KEY_ID: ${{ secrets.APPSTORE_KEY_ID }}
|
||||
APPSTORE_ISSUER_ID: ${{ secrets.APPSTORE_ISSUER_ID }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: ☕ Set up Java 21 (Temurin)
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: "21"
|
||||
|
||||
- name: Set up Ruby & bundle
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
bundler-cache: true
|
||||
|
||||
- name: Install Fastlane dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
gem install bundler
|
||||
bundler install --jobs 4 --retry 3
|
||||
|
||||
- name: Create & unlock temporary keychain
|
||||
run: |
|
||||
security create-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"
|
||||
security set-keychain-settings -lut 21600 "${KEYCHAIN_NAME}"
|
||||
security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"
|
||||
security list-keychains -d user -s "${KEYCHAIN_NAME}" $(security list-keychains -d user | sed 's/[ "]//g')
|
||||
|
||||
- name: Import Mac App Distribution certificate
|
||||
env:
|
||||
MAC_APP_DISTRIBUTION_CERTIFICATE_B64: ${{ secrets.MAC_APP_DISTRIBUTION_CERTIFICATE_B64 }}
|
||||
CERTIFICATES_PASSWORD: ${{ secrets.CERTIFICATES_PASSWORD }}
|
||||
run: |
|
||||
CERT="${RUNNER_TEMP}/mac_app_distribution.p12"
|
||||
printf '%s' "$MAC_APP_DISTRIBUTION_CERTIFICATE_B64" | base64 -D > "$CERT"
|
||||
security import "$CERT" -P "$CERTIFICATES_PASSWORD" -A -t cert -f pkcs12 -k "${KEYCHAIN_NAME}"
|
||||
security set-key-partition-list -S apple-tool:,apple: -k "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"
|
||||
echo "APP_CERTIFICATE_PATH=$CERT" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Import Mac Installer Distribution certificate
|
||||
env:
|
||||
MAC_INSTALLER_DISTRIBUTION_CERTIFICATE_B64: ${{ secrets.MAC_INSTALLER_DISTRIBUTION_CERTIFICATE_B64 }}
|
||||
CERTIFICATES_PASSWORD: ${{ secrets.CERTIFICATES_PASSWORD }}
|
||||
run: |
|
||||
CERT="${RUNNER_TEMP}/mac_installer_distribution.p12"
|
||||
printf '%s' "$MAC_INSTALLER_DISTRIBUTION_CERTIFICATE_B64" | base64 -D > "$CERT"
|
||||
security import "$CERT" -P "$CERTIFICATES_PASSWORD" -A -t cert -f pkcs12 -k "${KEYCHAIN_NAME}"
|
||||
security set-key-partition-list -S apple-tool:,apple: -k "${KEYCHAIN_PASSWORD}" "${KEYCHAIN_NAME}"
|
||||
echo "INSTALLER_CERTIFICATE_PATH=$CERT" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Write Embedded provisioning profile
|
||||
env:
|
||||
MAC_EMBEDDED_PROVISION_B64: ${{ secrets.MAC_EMBEDDED_PROVISION_B64 }}
|
||||
run: |
|
||||
mkdir -p cmp-desktop
|
||||
echo "$MAC_EMBEDDED_PROVISION_B64" > cmp-desktop/embedded.provisionprofile.b64
|
||||
base64 -d -i cmp-desktop/embedded.provisionprofile.b64 > cmp-desktop/embedded.provisionprofile
|
||||
|
||||
- name: Write Runtime provisioning profile
|
||||
env:
|
||||
MAC_RUNTIME_PROVISION_B64: ${{ secrets.MAC_RUNTIME_PROVISION_B64 }}
|
||||
run: |
|
||||
echo "$MAC_RUNTIME_PROVISION_B64" > cmp-desktop/runtime.provisionprofile.b64
|
||||
base64 -d -i cmp-desktop/runtime.provisionprofile.b64 > cmp-desktop/runtime.provisionprofile
|
||||
|
||||
- name: Write App Store Connect API key (.p8)
|
||||
env:
|
||||
APPSTORE_CONNECT_API_KEY_B64: ${{ secrets.APPSTORE_AUTH_KEY }}
|
||||
run: |
|
||||
mkdir -p secrets
|
||||
echo "$APPSTORE_CONNECT_API_KEY_B64" | base64 --decode > secrets/Auth_key.p8
|
||||
|
||||
- name: Upload to TestFlight
|
||||
if: ${{ inputs.distribution == 'testflight' }}
|
||||
run: |
|
||||
bundle exec fastlane mac desktop_testflight \
|
||||
app_identifier:"$APP_IDENTIFIER" \
|
||||
appstore_key_id:"$APPSTORE_KEY_ID" \
|
||||
appstore_issuer_id:"$APPSTORE_ISSUER_ID" \
|
||||
key_file_path:secrets/Auth_key.p8
|
||||
|
||||
- name: Submit to App Store (Production)
|
||||
if: ${{ inputs.distribution == 'appstore' }}
|
||||
run: |
|
||||
bundle exec fastlane mac desktop_release \
|
||||
app_identifier:"$APP_IDENTIFIER" \
|
||||
appstore_key_id:"$APPSTORE_KEY_ID" \
|
||||
appstore_issuer_id:"$APPSTORE_ISSUER_ID" \
|
||||
key_file_path:secrets/Auth_key.p8
|
||||
1
.github/workflows/pr-check.yml
vendored
@ -91,3 +91,4 @@ jobs:
|
||||
build_ios: true
|
||||
use_cocoapods: true
|
||||
shared_module: ':cmp-shared'
|
||||
java-version: '21'
|
||||
|
||||
2
.gitignore
vendored
@ -76,3 +76,5 @@ secrets/
|
||||
|
||||
# Sync Log File
|
||||
*.log
|
||||
|
||||
*.provisionprofile
|
||||
|
||||
@ -9,8 +9,8 @@ group = "org.mifospay.buildlogic"
|
||||
// Configure the build-logic plugins to target JDK 19
|
||||
// This matches the JDK used to build the project, and is not related to what is running on device.
|
||||
java {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
||||
@ -28,8 +28,8 @@ internal fun Project.configureKotlinAndroid(
|
||||
compileOptions {
|
||||
// Up to Java 11 APIs are available through desugaring
|
||||
// https://developer.android.com/studio/write/java11-minimal-support-table
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
}
|
||||
@ -48,8 +48,8 @@ internal fun Project.configureKotlinJvm() {
|
||||
extensions.configure<JavaPluginExtension> {
|
||||
// Up to Java 11 APIs are available through desugaring
|
||||
// https://developer.android.com/studio/write/java11-minimal-support-table
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
}
|
||||
|
||||
configureKotlin()
|
||||
@ -63,7 +63,7 @@ private fun Project.configureKotlin() {
|
||||
tasks.withType<KotlinCompile>().configureEach {
|
||||
compilerOptions {
|
||||
// Set JVM target to 17
|
||||
jvmTarget = JvmTarget.JVM_17
|
||||
jvmTarget = JvmTarget.JVM_21
|
||||
// Treat all Kotlin warnings as errors (disabled by default)
|
||||
// Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties
|
||||
val warningsAsErrors: String? by project
|
||||
|
||||
@ -313,23 +313,23 @@
|
||||
| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (*)
|
||||
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
|
||||
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0
|
||||
| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
|
||||
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0 (c)
|
||||
| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0 (c)
|
||||
| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1
|
||||
| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1
|
||||
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (c)
|
||||
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.1 (c)
|
||||
| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1 (c)
|
||||
| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | | | | +--- androidx.savedstate:savedstate-compose:1.3.1 (c)
|
||||
| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.3.1 (c)
|
||||
| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.21 (c)
|
||||
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (c)
|
||||
| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.9.2 (c)
|
||||
| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.9.2 (c)
|
||||
@ -879,7 +879,7 @@
|
||||
| | +--- androidx.lifecycle:lifecycle-viewmodel:2.9.2 (*)
|
||||
| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2 (*)
|
||||
| | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | +--- androidx.lifecycle:lifecycle-common:2.9.2 (c)
|
||||
| | +--- androidx.lifecycle:lifecycle-livedata:2.9.2 (c)
|
||||
| | +--- androidx.lifecycle:lifecycle-livedata-core:2.9.2 (c)
|
||||
@ -943,11 +943,11 @@
|
||||
| | | | | +--- org.jetbrains.compose.annotation-internal:annotation:1.8.2 (*)
|
||||
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.10.2 (*)
|
||||
| | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | | +--- org.jetbrains.compose.annotation-internal:annotation:1.8.2 (*)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.10.2 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | +--- androidx.appcompat:appcompat:1.7.1
|
||||
| | | +--- androidx.activity:activity:1.8.0 -> 1.10.1 (*)
|
||||
@ -1222,7 +1222,7 @@
|
||||
| | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 -> 1.4.1 (*)
|
||||
| | | | | +--- androidx.savedstate:savedstate:1.3.0 -> 1.3.1 (*)
|
||||
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | | | +--- androidx.navigation:navigation-compose:2.9.2 (c)
|
||||
| | | | | +--- androidx.navigation:navigation-fragment:2.9.2 (c)
|
||||
| | | | | +--- androidx.navigation:navigation-fragment-ktx:2.9.2 (c)
|
||||
@ -1242,7 +1242,7 @@
|
||||
| | | | | +--- androidx.navigation:navigation-common:2.9.2 (*)
|
||||
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | | | +--- androidx.navigation:navigation-common:2.9.2 (c)
|
||||
| | | | | +--- androidx.navigation:navigation-compose:2.9.2 (c)
|
||||
| | | | | +--- androidx.navigation:navigation-fragment:2.9.2 (c)
|
||||
@ -1269,7 +1269,7 @@
|
||||
| | | | | \--- androidx.collection:collection:1.1.0 -> 1.5.0 (*)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | | +--- androidx.navigation:navigation-common:2.9.2 (c)
|
||||
| | | | +--- androidx.navigation:navigation-compose:2.9.2 (c)
|
||||
| | | | +--- androidx.navigation:navigation-fragment-ktx:2.9.2 (c)
|
||||
@ -1343,9 +1343,9 @@
|
||||
| | | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (*)
|
||||
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 -> 1.8.1 (*)
|
||||
| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 -> 1.8.1 (*)
|
||||
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | | +--- io.ktor:ktor-http-cio:3.1.2
|
||||
| | | | | | \--- io.ktor:ktor-http-cio-jvm:3.1.2
|
||||
@ -1424,11 +1424,11 @@
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0 -> 1.10.2 (*)
|
||||
| | | +--- org.jetbrains.compose.runtime:runtime:1.8.2 (*)
|
||||
| | | +--- org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0 (*)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1 (*)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
|
||||
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.1.21 (*)
|
||||
@ -1449,21 +1449,21 @@
|
||||
| | | | \--- com.russhwolf:multiplatform-settings-serialization-android:1.3.0
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | +--- com.russhwolf:multiplatform-settings:1.3.0 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | +--- com.russhwolf:multiplatform-settings-coroutines:1.3.0
|
||||
| | | | \--- com.russhwolf:multiplatform-settings-coroutines-android:1.3.0
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | +--- com.russhwolf:multiplatform-settings:1.3.0 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 -> 1.10.2 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0 -> 1.10.2 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 (*)
|
||||
| | | +--- project :core:model
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | +--- io.insert-koin:koin-bom:4.1.0 (*)
|
||||
| | | | +--- io.insert-koin:koin-core:4.1.0 (*)
|
||||
| | | | +--- io.insert-koin:koin-annotations:2.1.0 (*)
|
||||
| | | | +--- project :core:common (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | | | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20 (*)
|
||||
| | | \--- project :core:common (*)
|
||||
| | +--- project :core:model (*)
|
||||
@ -1508,16 +1508,16 @@
|
||||
| | | | | | +--- org.slf4j:slf4j-api:2.0.16
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1 -> 1.10.2 (*)
|
||||
| | | | | | +--- io.ktor:ktor-serialization:3.1.2 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 -> 1.8.1 (*)
|
||||
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
|
||||
| | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 (*)
|
||||
| | | | | | \--- org.jetbrains.kotlinx:kotlinx-io-core:0.4.0 -> 0.7.0 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 -> 1.8.1 (*)
|
||||
| | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0 -> 1.8.1
|
||||
| | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 (*)
|
||||
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | | | | | \--- org.jetbrains.kotlinx:kotlinx-io-core:0.6.0 -> 0.7.0 (*)
|
||||
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | | +--- io.ktor:ktor-client-auth:3.1.2
|
||||
| | | | | \--- io.ktor:ktor-client-auth-jvm:3.1.2
|
||||
@ -1547,7 +1547,7 @@
|
||||
| | | +--- io.insert-koin:koin-annotations:2.1.0 (*)
|
||||
| | | +--- project :core:model (*)
|
||||
| | | +--- project :core:datastore (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | | +--- io.ktor:ktor-client-json:3.1.2
|
||||
| | | | \--- io.ktor:ktor-client-json-jvm:3.1.2
|
||||
| | | | +--- org.slf4j:slf4j-api:2.0.16
|
||||
@ -1559,7 +1559,7 @@
|
||||
| | | | +--- org.slf4j:slf4j-api:2.0.16
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1 -> 1.10.2 (*)
|
||||
| | | | +--- io.ktor:ktor-client-core:3.1.2 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 -> 1.8.1 (*)
|
||||
| | | | +--- io.ktor:ktor-client-json:3.1.2 (*)
|
||||
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | | \--- com.squareup.okio:okio:3.15.0 (*)
|
||||
@ -1575,7 +1575,7 @@
|
||||
| | | +--- io.insert-koin:koin-core:4.1.0 (*)
|
||||
| | | +--- io.insert-koin:koin-annotations:2.1.0 (*)
|
||||
| | | \--- org.jetbrains.compose.runtime:runtime:1.8.2 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.runtime:runtime:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.components:components-resources:1.8.2 (*)
|
||||
| | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20 (*)
|
||||
@ -1935,7 +1935,7 @@
|
||||
| | | | | \--- androidx.savedstate:savedstate-ktx:1.3.1 (c)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | | +--- androidx.navigation:navigation-common:2.9.2 (c)
|
||||
| | | | +--- androidx.navigation:navigation-fragment-ktx:2.9.2 (c)
|
||||
| | | | +--- androidx.navigation:navigation-runtime:2.9.2 (c)
|
||||
@ -1956,7 +1956,7 @@
|
||||
| | | | +--- org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1 (*)
|
||||
| | | | +--- org.jetbrains.androidx.savedstate:savedstate:1.3.1 (*)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | +--- org.jetbrains.androidx.navigation:navigation-runtime:2.9.0-beta03
|
||||
| | | | +--- androidx.annotation:annotation:1.9.1 (*)
|
||||
| | | | +--- androidx.collection:collection:1.5.0-beta01 -> 1.5.0 (*)
|
||||
@ -1968,7 +1968,7 @@
|
||||
| | | | +--- org.jetbrains.androidx.navigation:navigation-common:2.9.0-beta03 (*)
|
||||
| | | | +--- org.jetbrains.androidx.savedstate:savedstate:1.3.1 (*)
|
||||
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | | +--- org.jetbrains.androidx.savedstate:savedstate:1.3.1 (*)
|
||||
| | | +--- org.jetbrains.androidx.savedstate:savedstate-compose:1.3.1
|
||||
| | | | +--- androidx.savedstate:savedstate-compose:1.3.0 -> 1.3.1 (*)
|
||||
@ -1980,7 +1980,7 @@
|
||||
| | | +--- org.jetbrains.compose.runtime:runtime:1.8.2 (*)
|
||||
| | | +--- org.jetbrains.compose.runtime:runtime-saveable:1.8.2 (*)
|
||||
| | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
|
||||
| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.1 (*)
|
||||
| | +--- io.github.vinceglb:filekit-core:0.10.0-beta04
|
||||
| | | \--- io.github.vinceglb:filekit-core-android:0.10.0-beta04
|
||||
| | | +--- androidx.documentfile:documentfile:1.1.0 (*)
|
||||
@ -2020,7 +2020,7 @@
|
||||
| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.24 -> 2.1.21 (*)
|
||||
| +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| +--- project :core:domain
|
||||
| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | +--- io.insert-koin:koin-bom:4.1.0 (*)
|
||||
@ -2118,7 +2118,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- project :core:domain (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
@ -2156,7 +2156,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2165,7 +2165,7 @@
|
||||
| | +--- org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2 (*)
|
||||
| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
|
||||
| | +--- org.jetbrains.kotlin:kotlin-reflect:2.1.20 -> 2.1.21 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1 (*)
|
||||
| | +--- com.russhwolf:multiplatform-settings-no-arg:1.3.0 (*)
|
||||
| | +--- com.russhwolf:multiplatform-settings-serialization:1.3.0 (*)
|
||||
| | +--- com.russhwolf:multiplatform-settings-coroutines:1.3.0 (*)
|
||||
@ -2197,7 +2197,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2230,7 +2230,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2262,7 +2262,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2294,7 +2294,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2326,7 +2326,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2362,7 +2362,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2394,7 +2394,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2426,7 +2426,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2458,7 +2458,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2491,7 +2491,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2523,7 +2523,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2559,7 +2559,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2591,7 +2591,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2632,7 +2632,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2665,7 +2665,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2697,7 +2697,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2777,7 +2777,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2810,7 +2810,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2941,7 +2941,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -2974,7 +2974,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
@ -3006,7 +3006,7 @@
|
||||
| | +--- org.jetbrains.androidx.core:core-bundle:1.0.1 (*)
|
||||
| | +--- org.jetbrains.androidx.navigation:navigation-compose:2.9.0-beta03 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3 -> 1.8.0 (*)
|
||||
| | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1 (*)
|
||||
| | +--- org.jetbrains.compose.ui:ui:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.foundation:foundation:1.8.2 (*)
|
||||
| | +--- org.jetbrains.compose.material3:material3:1.8.2 (*)
|
||||
|
||||
@ -434,13 +434,13 @@ org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.7.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.7.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.7.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.7.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.1
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.1
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.1
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.1
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1
|
||||
org.jetbrains:annotations:23.0.0
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.slf4j:slf4j-api:2.0.16
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package: name='org.mifospay' versionCode='1' versionName='2025.8.2-beta.0.3' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
package: name='org.mifospay' versionCode='1' versionName='2025.8.2-beta.0.6' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
minSdkVersion:'26'
|
||||
targetSdkVersion:'34'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
|
||||
*/
|
||||
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
||||
import org.gradle.internal.os.OperatingSystem
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.kotlinMultiplatform)
|
||||
@ -19,7 +20,7 @@ plugins {
|
||||
kotlin {
|
||||
jvm("desktop")
|
||||
|
||||
jvmToolchain(17)
|
||||
jvmToolchain(21)
|
||||
|
||||
sourceSets {
|
||||
val desktopMain by getting {
|
||||
@ -48,6 +49,10 @@ val appPackageVersion: String = libs.versions.packageVersion.get()
|
||||
compose.desktop {
|
||||
application {
|
||||
mainClass = "MainKt"
|
||||
val buildNumber: String = (project.findProperty("buildNumber") as String?) ?: "1"
|
||||
val isAppStoreRelease: Boolean =
|
||||
(project.findProperty("macOsAppStoreRelease") as String?)?.toBoolean() ?: false
|
||||
|
||||
nativeDistributions {
|
||||
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Exe, TargetFormat.Deb)
|
||||
packageName = appPackageName
|
||||
@ -57,16 +62,41 @@ compose.desktop {
|
||||
vendor = "Mifos Initiative"
|
||||
licenseFile.set(project.file("../LICENSE"))
|
||||
includeAllModules = true
|
||||
outputBaseDir.set(project.layout.buildDirectory.dir("release"))
|
||||
|
||||
macOS {
|
||||
bundleID = appPackageNameSpace
|
||||
dockName = appPackageName
|
||||
iconFile.set(project.file("icons/ic_launcher.icns"))
|
||||
notarization {
|
||||
val providers = project.providers
|
||||
appleID.set(providers.environmentVariable("NOTARIZATION_APPLE_ID"))
|
||||
password.set(providers.environmentVariable("NOTARIZATION_PASSWORD"))
|
||||
teamID.set(providers.environmentVariable("NOTARIZATION_TEAM_ID"))
|
||||
minimumSystemVersion = "12.0"
|
||||
appStore = isAppStoreRelease
|
||||
|
||||
infoPlist {
|
||||
packageBuildVersion = buildNumber
|
||||
extraKeysRawXml = """
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
if (isAppStoreRelease) {
|
||||
signing {
|
||||
sign.set(true)
|
||||
identity.set("The Mifos Initiative")
|
||||
}
|
||||
|
||||
provisioningProfile.set(project.file("embedded.provisionprofile"))
|
||||
runtimeProvisioningProfile.set(project.file("runtime.provisionprofile"))
|
||||
|
||||
entitlementsFile.set(project.file("entitlements.plist"))
|
||||
runtimeEntitlementsFile.set(project.file("runtime-entitlements.plist"))
|
||||
} else {
|
||||
notarization {
|
||||
val providers = project.providers
|
||||
appleID.set(providers.environmentVariable("NOTARIZATION_APPLE_ID"))
|
||||
password.set(providers.environmentVariable("NOTARIZATION_PASSWORD"))
|
||||
teamID.set(providers.environmentVariable("NOTARIZATION_TEAM_ID"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -84,9 +114,50 @@ compose.desktop {
|
||||
}
|
||||
}
|
||||
buildTypes.release.proguard {
|
||||
configurationFiles.from(file("compose-desktop.pro"))
|
||||
obfuscate.set(true)
|
||||
optimize.set(true)
|
||||
isEnabled = false
|
||||
// configurationFiles.from(file("compose-desktop.pro"))
|
||||
// obfuscate.set(true)
|
||||
// optimize.set(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the `com.apple.quarantine` extended attribute from the built `.app`.
|
||||
*
|
||||
* Why:
|
||||
* macOS Gatekeeper marks files that originated from the Internet with the
|
||||
* `com.apple.quarantine` xattr. During a Compose Desktop / jpackage build the
|
||||
* JBR/JRE, native libs, and other resources are copied into the `.app`. If any
|
||||
* of those files are quarantined, Appstore will not allow it..
|
||||
*
|
||||
* What this does:
|
||||
* Runs `xattr -dr com.apple.quarantine <App.app>` **recursively** on the
|
||||
* distributable after it has been assembled but before signing/packaging.
|
||||
* We depend on `createReleaseDistributable` so the `.app` exists, and we guard
|
||||
* execution to only run on macOS hosts.
|
||||
*/
|
||||
val unquarantineApp = tasks.register<Exec>("unquarantineMacApp") {
|
||||
group = "macOS"
|
||||
description = "Remove com.apple.quarantine from the built .app before signing"
|
||||
onlyIf { OperatingSystem.current().isMacOsX }
|
||||
|
||||
// Ensure the .app bundle exists first
|
||||
dependsOn("createReleaseDistributable")
|
||||
|
||||
// build/release/main-release/app/<YourApp>.app
|
||||
val appName = "$appPackageName.app"
|
||||
val appPath = layout.buildDirectory
|
||||
.dir("release/main-release/app/$appName")
|
||||
.map { it.asFile.absolutePath }
|
||||
|
||||
commandLine("xattr", "-dr", "com.apple.quarantine", appPath.get())
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure un-quarantining always happens before we create the signed PKG.
|
||||
*/
|
||||
tasks.matching { it.name == "packageReleasePkg" }.configureEach {
|
||||
dependsOn(unquarantineApp)
|
||||
}
|
||||
|
||||
|
||||
25
cmp-desktop/entitlements.plist
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
<key>com.apple.application-identifier</key>
|
||||
<string>L432S2FZP5.org.mifospay</string>
|
||||
<key>com.apple.developer.team-identifier</key>
|
||||
<string>L432S2FZP5</string>
|
||||
<!-- Add additional entitlements here, for example for network or hardware access. -->
|
||||
</dict>
|
||||
</plist>
|
||||
20
cmp-desktop/runtime-entitlements.plist
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.debugger</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@ -19,7 +19,7 @@ fun main() {
|
||||
application {
|
||||
initKoin()
|
||||
// Initialize FileKit
|
||||
FileKit.init(appId = "org.mifospay.desktop")
|
||||
FileKit.init(appId = "org.mifospay")
|
||||
val windowState = rememberWindowState()
|
||||
Window(
|
||||
onCloseRequest = ::exitApplication,
|
||||
|
||||
@ -93,8 +93,8 @@ android {
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_21
|
||||
targetCompatibility = JavaVersion.VERSION_21
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -30,7 +30,9 @@ module FastlaneConfig
|
||||
key_filepath: "./secrets/Auth_key.p8",
|
||||
version_number: "1.0.0",
|
||||
metadata_path: "./fastlane/metadata/ios",
|
||||
app_rating_config_path: "./fastlane/age_rating.json"
|
||||
app_rating_config_path: "./fastlane/age_rating.json",
|
||||
screenshots_ios_path: "./fastlane/screenshots_ios",
|
||||
screenshots_macos_path: "./fastlane/screenshots_macos",
|
||||
}
|
||||
end
|
||||
end
|
||||
@ -590,3 +590,132 @@ platform :ios do
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
platform :mac do
|
||||
#############################
|
||||
# Shared Private Lane Helpers
|
||||
#############################
|
||||
|
||||
private_lane :setup_ci_if_needed do
|
||||
if ENV['CI']
|
||||
setup_ci
|
||||
else
|
||||
UI.message("🖥️ Running locally, skipping CI-specific setup.")
|
||||
end
|
||||
end
|
||||
|
||||
private_lane :load_api_key_macos do |options|
|
||||
ios_config = FastlaneConfig::IosConfig::BUILD_CONFIG
|
||||
|
||||
app_store_connect_api_key(
|
||||
key_id: options[:appstore_key_id] || ios_config[:key_id],
|
||||
issuer_id: options[:appstore_issuer_id] || ios_config[:issuer_id],
|
||||
key_filepath: options[:key_filepath] || ios_config[:key_filepath],
|
||||
duration: 1200
|
||||
)
|
||||
end
|
||||
|
||||
private_lane :next_macos_build_number do |options|
|
||||
ios_config = FastlaneConfig::IosConfig::BUILD_CONFIG
|
||||
|
||||
latest = latest_testflight_build_number(
|
||||
app_identifier: options[:app_identifier] || ios_config[:app_identifier],
|
||||
api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY],
|
||||
platform: "osx",
|
||||
version: ios_config[:version_number]
|
||||
)
|
||||
(latest.to_i + 1).to_s
|
||||
end
|
||||
|
||||
# Resolve the most-recent generated .pkg path
|
||||
private_lane :find_pkg_path do
|
||||
project_dir = File.expand_path('..', Dir.pwd)
|
||||
Dir[File.join(project_dir, 'cmp-desktop', 'build', 'release', '**', 'pkg', '*.pkg')]
|
||||
.max_by { |p| File.mtime(p) } || UI.user_error!('PKG not found!')
|
||||
end
|
||||
|
||||
###################
|
||||
# Public lanes
|
||||
###################
|
||||
|
||||
desc "Build & upload macOS (.pkg) to TestFlight"
|
||||
lane :desktop_testflight do |options|
|
||||
setup_ci_if_needed
|
||||
load_api_key_macos(options)
|
||||
|
||||
new_build_number = next_macos_build_number(options)
|
||||
|
||||
gradle(
|
||||
tasks: ["packageReleasePkg"],
|
||||
properties: {
|
||||
"buildNumber" => new_build_number,
|
||||
"macOsAppStoreRelease" => true
|
||||
}
|
||||
)
|
||||
|
||||
pkg_path = find_pkg_path
|
||||
UI.message("Found PKG at: #{pkg_path}")
|
||||
|
||||
pilot(
|
||||
api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY],
|
||||
pkg: pkg_path,
|
||||
app_platform: 'osx',
|
||||
skip_waiting_for_build_processing: true,
|
||||
)
|
||||
end
|
||||
|
||||
desc "Build & submit macOS app to App Store (non-beta)"
|
||||
lane :desktop_release do |options|
|
||||
ios_config = FastlaneConfig::IosConfig::BUILD_CONFIG
|
||||
setup_ci_if_needed
|
||||
load_api_key_macos(options)
|
||||
|
||||
new_build_number = next_macos_build_number(options)
|
||||
|
||||
gradle(
|
||||
tasks: ["packageReleasePkg"],
|
||||
properties: {
|
||||
"buildNumber" => new_build_number,
|
||||
"macOsAppStoreRelease" => true
|
||||
}
|
||||
)
|
||||
|
||||
# Locate the produced PKG (adjust pattern if you rename)
|
||||
pkg_path = find_pkg_path
|
||||
UI.message("Found PKG at: #{pkg_path}")
|
||||
|
||||
deliver(
|
||||
platform: 'osx',
|
||||
pkg: pkg_path,
|
||||
screenshots_path: ios_config[:screenshots_macos_path],
|
||||
metadata_path: options[:metadata_path] || ios_config[:metadata_path],
|
||||
submit_for_review: true, # Set to true if you want to auto-submit for review
|
||||
automatic_release: true, # Set to true if you want to auto-release once it approved
|
||||
api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY],
|
||||
skip_app_version_update: false,
|
||||
force: true, # Skips HTML report verification
|
||||
precheck_include_in_app_purchases: false,
|
||||
overwrite_screenshots: true,
|
||||
reject_if_possible: true,
|
||||
app_rating_config_path: ios_config[:app_rating_config_path],
|
||||
submission_information: {
|
||||
add_id_info_uses_idfa: false,
|
||||
add_id_info_limits_tracking: false,
|
||||
add_id_info_serves_ads: false,
|
||||
add_id_info_tracks_action: false,
|
||||
add_id_info_tracks_install: false,
|
||||
content_rights_has_rights: true,
|
||||
content_rights_contains_third_party_content: false,
|
||||
export_compliance_platform: 'osx',
|
||||
export_compliance_compliance_required: false,
|
||||
export_compliance_encryption_updated: false,
|
||||
export_compliance_app_type: nil,
|
||||
export_compliance_uses_encryption: false,
|
||||
export_compliance_is_exempt: true,
|
||||
export_compliance_contains_third_party_cryptography: false,
|
||||
export_compliance_contains_proprietary_cryptography: false,
|
||||
export_compliance_available_on_french_store: true
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
Before Width: | Height: | Size: 734 KiB After Width: | Height: | Size: 734 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 873 KiB After Width: | Height: | Size: 873 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 727 KiB After Width: | Height: | Size: 727 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 523 KiB After Width: | Height: | Size: 523 KiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 482 KiB After Width: | Height: | Size: 482 KiB |
|
Before Width: | Height: | Size: 1023 KiB After Width: | Height: | Size: 1023 KiB |
BIN
fastlane/screenshots_macos/en-US/0_APP_DESKTOP_0.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
fastlane/screenshots_macos/en-US/1_APP_DESKTOP_1.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
fastlane/screenshots_macos/en-US/2_APP_DESKTOP_2.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
fastlane/screenshots_macos/en-US/3_APP_DESKTOP_3.png
Normal file
|
After Width: | Height: | Size: 105 KiB |
BIN
fastlane/screenshots_macos/en-US/4_APP_DESKTOP_4.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
@ -87,7 +87,7 @@ kotlinInject = "0.7.2"
|
||||
kotlinxCoroutines = "1.9.0"
|
||||
kotlinxDatetime = "0.6.1"
|
||||
kotlinxImmutable = "0.3.8"
|
||||
kotlinxSerializationJson = "1.7.3"
|
||||
kotlinxSerializationJson = "1.8.1"
|
||||
ksp = "2.1.20-2.0.1"
|
||||
|
||||
# Ktor & Ktorfit
|
||||
@ -129,8 +129,8 @@ material3adaptive = "1.1.2"
|
||||
room = "2.7.2"
|
||||
|
||||
# Desktop Version
|
||||
packageName = "MifosWallet"
|
||||
packageNamespace = "org.mifospay.desktop"
|
||||
packageName = "Mifos Pay"
|
||||
packageNamespace = "org.mifospay"
|
||||
packageVersion = "1.0.0"
|
||||
|
||||
[libraries]
|
||||
|
||||