From 69d1de76d50b0df3a73e1667d0a2ba89809d3ad1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 1 Aug 2019 11:48:43 +0300 Subject: [PATCH 1/7] Updated on 2026-08-14 --- app/build.gradle | 9 +++++++++ app/src/main/AndroidManifest.xml | 4 ++++ app/src/main/java/com/tangem/App.kt | 5 ++++- build.gradle | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 9caa3ca724..142141a21b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' +apply plugin: 'io.fabric' static def generateVersionName() { def gitCommitsCount = "git rev-list HEAD --count".execute().text.trim() @@ -9,12 +10,16 @@ static def generateVersionName() { return gitCommitsCount.toInteger() + 831// + "\\n" + gitCurrentBranch } +Properties properties = new Properties() +properties.load(project.rootProject.file('local.properties').newDataInputStream()) + android { compileSdkVersion 28 defaultConfig { minSdkVersion 21 targetSdkVersion 28 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + manifestPlaceholders = [fabric_api_key: properties.getProperty('fabric_api_key')] } androidExtensions { experimental = true @@ -65,6 +70,7 @@ android { repositories { maven { url "https://jitpack.io" } + maven { url 'https://maven.fabric.io/public' } } configurations { all*.exclude group: 'com.google.guava', module: 'listenablefuture' @@ -119,6 +125,9 @@ dependencies { // implementation 'com.github.stellar:java-stellar-sdk:0.4.1' implementation 'net.i2p.crypto:eddsa:0.3.0' + implementation('com.crashlytics.sdk.android:crashlytics:2.9.9') { transitive = true } + implementation('io.fabric.sdk.android:fabric:1.4.0@aar') { transitive = true } + implementation files('libs/ripple-core-0.0.1.jar') //4 dependencies for ripple-core TODO: move to module? implementation 'net.i2p.crypto:eddsa:0.3.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index da617682cb..3cbb1da8db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,6 +30,10 @@ android:theme="@style/AppTheme" tools:ignore="GoogleAppIndexingWarning"> + + diff --git a/app/src/main/java/com/tangem/App.kt b/app/src/main/java/com/tangem/App.kt index 64d16a74e3..ad15a42e6a 100644 --- a/app/src/main/java/com/tangem/App.kt +++ b/app/src/main/java/com/tangem/App.kt @@ -2,16 +2,18 @@ package com.tangem import android.app.Application import androidx.appcompat.app.AppCompatDelegate +import com.crashlytics.android.Crashlytics import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import com.tangem.data.local.PendingTransactionsStorage import com.tangem.card_android.android.data.Firmwares import com.tangem.card_android.android.data.PINStorage import com.tangem.card_common.data.Issuer import com.tangem.data.dp.PrefsManager +import com.tangem.data.local.PendingTransactionsStorage import com.tangem.di.* import com.tangem.server_android.data.LocalStorage import com.tangem.wallet.BuildConfig +import io.fabric.sdk.android.Fabric import java.io.InputStreamReader import java.nio.charset.StandardCharsets @@ -58,6 +60,7 @@ class App : Application() { pendingTransactionsStorage = PendingTransactionsStorage(applicationContext) if (BuildConfig.DEBUG) { + Fabric.with(this, Crashlytics()) com.tangem.card_common.util.Log.setLogger( object : com.tangem.card_common.util.LoggerInterface { override fun i(logTag: String, message: String) { diff --git a/build.gradle b/build.gradle index 58b21916a3..868717e1b8 100644 --- a/build.gradle +++ b/build.gradle @@ -3,11 +3,13 @@ buildscript { repositories { google() jcenter() + maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:3.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' + classpath 'io.fabric.tools:gradle:1.27.1' } } From 09422ddd1ab5177f28cde24aa893063b94c0b5f6 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 1 Aug 2019 17:26:06 +0300 Subject: [PATCH 2/7] Updated on 2026-08-14 --- fastlane/Fastfile | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index bf598fdf5b..ce4bebe017 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -24,12 +24,18 @@ platform :android do build_type: "Debug") end - desc "Build a release APK" - lane :release do + desc "Build a signed release APK" + lane :release do |options| gradle( task: "clean assemble", flavor: "tangemAccess", - build_type: "Release") + build_type: "Release", + properties: { + "android.injected.signing.store.file" => options[:keystore], + "android.injected.signing.store.password" => options[:store_password], + "android.injected.signing.key.alias" => options[:key_alias], + "android.injected.signing.key.password" => options[:key_password], + }) end desc "Build a debug APK" @@ -40,22 +46,15 @@ platform :android do end desc "Submit a new Beta Build to Crashlytics Beta" - lane :beta do - gradle(task: "clean assemble", - flavor: "tangemAccess", - build_type: "Debug") - crashlytics - - # sh "your_script.sh" - # You can also use other beta testing services here + lane :beta do |options| + crashlytics( + api_token: options[:api_token], + build_secret: options[:build_secret], + apk_path: options[:apk_path]) end desc "Deploy a new version to the Google Play" lane :deploy do - gradle( - task: "clean assemble", - flavor: "tangemAccess", - build_type: "Release") upload_to_play_store end end From fc2820c9bccf14cdfdcdd530539d071dc834c7e8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 2 Aug 2019 14:42:09 +0300 Subject: [PATCH 3/7] Updated on 2026-08-14 --- fastlane/Fastfile | 18 ++++++++++++++++++ fastlane/README.md | 7 ++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index ce4bebe017..a523c2401f 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -38,6 +38,24 @@ platform :android do }) end + desc "Build debug and release APKs" + lane :build do |options| + gradle( + task: "clean assemble", + flavor: "tangemAccess", + build_type: "Debug") + gradle( + task: "assemble", + flavor: "tangemAccess", + build_type: "Release", + properties: { + "android.injected.signing.store.file" => options[:keystore], + "android.injected.signing.store.password" => options[:store_password], + "android.injected.signing.key.alias" => options[:key_alias], + "android.injected.signing.key.password" => options[:key_password], + }) + end + desc "Build a debug APK" lane :debug do gradle(task: "clean assemble", diff --git a/fastlane/README.md b/fastlane/README.md index 61b4a5d99a..e452016d75 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -25,7 +25,12 @@ Runs all the tests ``` fastlane android release ``` -Build a release APK +Build a signed release APK +### android build +``` +fastlane android build +``` +Build debug and release APKs ### android debug ``` fastlane android debug From adcabd2ac2567e90427672d3a61d9176bdaf6bd7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 5 Aug 2019 13:12:52 +0300 Subject: [PATCH 4/7] Updated on 2026-08-14 --- app/build.gradle | 8 ++++++++ app/src/debug/res/values/strings.xml | 1 + app/src/debug_beta/AndroidManifest.xml | 19 +++++++++++++++++++ app/src/debug_beta/res/values/strings.xml | 6 ++++++ app/src/main/java/com/tangem/App.kt | 2 +- card-android/build.gradle | 4 ++++ fastlane/Fastfile | 6 ++++-- server-android/build.gradle | 4 ++++ 8 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 app/src/debug_beta/AndroidManifest.xml create mode 100644 app/src/debug_beta/res/values/strings.xml diff --git a/app/build.gradle b/app/build.gradle index 142141a21b..34923e0ccb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,12 +30,20 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.debug + buildConfigField 'boolean', 'CRASHLYTICS', 'Boolean.parseBoolean("false")' } debug { debuggable true minifyEnabled false applicationIdSuffix ".debug" signingConfig signingConfigs.debug + buildConfigField 'boolean', 'CRASHLYTICS', 'Boolean.parseBoolean("false")' + } + debug_beta { + initWith debug + versionNameSuffix "-beta" + applicationIdSuffix ".debug_beta" + buildConfigField 'boolean', 'CRASHLYTICS', 'Boolean.parseBoolean("true")' } } flavorDimensions "" diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml index 9ef8838437..1c13a1dbc0 100644 --- a/app/src/debug/res/values/strings.xml +++ b/app/src/debug/res/values/strings.xml @@ -2,5 +2,6 @@ DEBUG + com.tangem.debug.data.LogFileProvider \ No newline at end of file diff --git a/app/src/debug_beta/AndroidManifest.xml b/app/src/debug_beta/AndroidManifest.xml new file mode 100644 index 0000000000..8cf74b318f --- /dev/null +++ b/app/src/debug_beta/AndroidManifest.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/debug_beta/res/values/strings.xml b/app/src/debug_beta/res/values/strings.xml new file mode 100644 index 0000000000..dd8d1b1737 --- /dev/null +++ b/app/src/debug_beta/res/values/strings.xml @@ -0,0 +1,6 @@ + + + + TangemBeta + + \ No newline at end of file diff --git a/app/src/main/java/com/tangem/App.kt b/app/src/main/java/com/tangem/App.kt index ad15a42e6a..84e791d4ae 100644 --- a/app/src/main/java/com/tangem/App.kt +++ b/app/src/main/java/com/tangem/App.kt @@ -60,7 +60,6 @@ class App : Application() { pendingTransactionsStorage = PendingTransactionsStorage(applicationContext) if (BuildConfig.DEBUG) { - Fabric.with(this, Crashlytics()) com.tangem.card_common.util.Log.setLogger( object : com.tangem.card_common.util.LoggerInterface { override fun i(logTag: String, message: String) { @@ -76,6 +75,7 @@ class App : Application() { } } ) + if (BuildConfig.CRASHLYTICS) Fabric.with(this, Crashlytics()) } } diff --git a/card-android/build.gradle b/card-android/build.gradle index 956d0c88fe..1dc0028332 100644 --- a/card-android/build.gradle +++ b/card-android/build.gradle @@ -20,6 +20,10 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + debug_beta { + initWith debug + versionNameSuffix "-beta" + } } buildToolsVersion '28.0.3' diff --git a/fastlane/Fastfile b/fastlane/Fastfile index a523c2401f..1c50dd2892 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -40,10 +40,12 @@ platform :android do desc "Build debug and release APKs" lane :build do |options| + gradle( task: "clean assemble", flavor: "tangemAccess", - build_type: "Debug") + build_type: "Debug_beta") + gradle( task: "assemble", flavor: "tangemAccess", @@ -60,7 +62,7 @@ platform :android do lane :debug do gradle(task: "clean assemble", flavor: "tangemAccess", - build_type: "Debug") + build_type: "Debug_beta") end desc "Submit a new Beta Build to Crashlytics Beta" diff --git a/server-android/build.gradle b/server-android/build.gradle index 7aaa4af308..c6e7c5bfed 100644 --- a/server-android/build.gradle +++ b/server-android/build.gradle @@ -20,6 +20,10 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + debug_beta { + initWith debug + versionNameSuffix "-beta" + } } productFlavors { } From 1cdb5114c884697779f8832487b4d86dd8467ff0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 23 Aug 2019 13:02:56 +0300 Subject: [PATCH 5/7] Updated on 2026-08-14 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index cba81ab1dc..923cda84c1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -49,7 +49,7 @@ android { flavorDimensions "" productFlavors { tangemAccess { - versionCode 114 + versionCode 115 versionName "0.908.1." + generateVersionName() applicationId "com.tangem.wallet" signingConfig signingConfigs.debug From 59e0d8f0a41ececc952b0c19ddc60170e8d0d49b Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 26 Aug 2019 14:05:15 +0300 Subject: [PATCH 6/7] Updated on 2026-08-14 --- fastlane/Fastfile | 68 +++++++++++++++++++--------------------------- fastlane/README.md | 10 ------- 2 files changed, 28 insertions(+), 50 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 1c50dd2892..56dd357aba 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -16,65 +16,53 @@ default_platform(:android) platform :android do + desc "Runs all the tests" lane :test do gradle( - task: "test", - flavor: "tangemAccess", - build_type: "Debug") + task: "test", + flavor: "tangemAccess", + build_type: "DebugUnitTest") end desc "Build a signed release APK" lane :release do |options| - gradle( - task: "clean assemble", - flavor: "tangemAccess", - build_type: "Release", - properties: { - "android.injected.signing.store.file" => options[:keystore], - "android.injected.signing.store.password" => options[:store_password], - "android.injected.signing.key.alias" => options[:key_alias], - "android.injected.signing.key.password" => options[:key_password], - }) + gradle( + task: "clean assemble", + flavor: "tangemAccess", + build_type: "Release", + properties: { + "android.injected.signing.store.file" => options[:keystore], + "android.injected.signing.store.password" => options[:store_password], + "android.injected.signing.key.alias" => options[:key_alias], + "android.injected.signing.key.password" => options[:key_password], + }) end - desc "Build debug and release APKs" - lane :build do |options| - - gradle( - task: "clean assemble", - flavor: "tangemAccess", - build_type: "Debug_beta") - - gradle( - task: "assemble", - flavor: "tangemAccess", - build_type: "Release", + desc "Build debug and release APKs" + lane :build do |options| + gradle( + task: "clean assemble", + flavor: "tangemAccess", + build_type: "Debug_beta") + gradle( + task: "assemble", + flavor: "tangemAccess", + build_type: "Release", properties: { "android.injected.signing.store.file" => options[:keystore], "android.injected.signing.store.password" => options[:store_password], "android.injected.signing.key.alias" => options[:key_alias], "android.injected.signing.key.password" => options[:key_password], }) - end - - desc "Build a debug APK" - lane :debug do - gradle(task: "clean assemble", - flavor: "tangemAccess", - build_type: "Debug_beta") - end + end desc "Submit a new Beta Build to Crashlytics Beta" lane :beta do |options| crashlytics( - api_token: options[:api_token], - build_secret: options[:build_secret], - apk_path: options[:apk_path]) + api_token: options[:api_token], + build_secret: options[:build_secret], + apk_path: options[:apk_path]) end - desc "Deploy a new version to the Google Play" - lane :deploy do - upload_to_play_store - end end diff --git a/fastlane/README.md b/fastlane/README.md index e452016d75..7c3f972135 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -31,21 +31,11 @@ Build a signed release APK fastlane android build ``` Build debug and release APKs -### android debug -``` -fastlane android debug -``` -Build a debug APK ### android beta ``` fastlane android beta ``` Submit a new Beta Build to Crashlytics Beta -### android deploy -``` -fastlane android deploy -``` -Deploy a new version to the Google Play ---- From c5f95a54f5df864b5f9c4e97f582ce448234d2d6 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 26 Aug 2019 16:57:32 +0300 Subject: [PATCH 7/7] Updated on 2026-08-14 --- app/build.gradle | 4 +++- app/src/debug_beta/AndroidManifest.xml | 4 ++++ app/src/main/AndroidManifest.xml | 4 ---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 923cda84c1..4d7051be33 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,7 +19,6 @@ android { minSdkVersion 21 targetSdkVersion 28 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - manifestPlaceholders = [fabric_api_key: properties.getProperty('fabric_api_key')] } androidExtensions { experimental = true @@ -31,6 +30,7 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.debug buildConfigField 'boolean', 'CRASHLYTICS', 'Boolean.parseBoolean("false")' + ext.enableCrashlytics = false } debug { debuggable true @@ -38,12 +38,14 @@ android { applicationIdSuffix ".debug" signingConfig signingConfigs.debug buildConfigField 'boolean', 'CRASHLYTICS', 'Boolean.parseBoolean("false")' + ext.enableCrashlytics = false } debug_beta { initWith debug versionNameSuffix "-beta" applicationIdSuffix ".debug_beta" buildConfigField 'boolean', 'CRASHLYTICS', 'Boolean.parseBoolean("true")' + manifestPlaceholders = [fabric_api_key: properties.getProperty('fabric_api_key')] } } flavorDimensions "" diff --git a/app/src/debug_beta/AndroidManifest.xml b/app/src/debug_beta/AndroidManifest.xml index 8cf74b318f..9f07ca1097 100644 --- a/app/src/debug_beta/AndroidManifest.xml +++ b/app/src/debug_beta/AndroidManifest.xml @@ -7,6 +7,10 @@ + + - -