When signing my flutter app i cannot build the app *edited*

902

Solution 1

It appears as if I had named the keyAlias wrong, it works now that I have changed it. Thank you so much for all the help.

Solution 2

Flutter made a guide on how to sign an app which worked for me. You should give it a try.

Share:
902
Ted Boman
Author by

Ted Boman

Updated on December 15, 2022

Comments

  • Ted Boman
    Ted Boman over 1 year

    So i want to publish my flutter app to the play store. I signed the app but after that the app won't build. When i try to build my app through the appbundle it returns this:

    C:\Users\tbsvst18tedbom\AndroidStudioProjects\tab_truth_true\tab>flutter build appbundle
    Initializing gradle...                                              1,1s
    Resolving dependencies...                                           5,6s
    Running Gradle task 'bundleRelease'...
    Running Gradle task 'bundleRelease'... Done                        11,9s
    Gradle task bundleRelease failed with exit code 1
    
    

    When i try to build the app through fat APK i get a longer error but still a mystery:¨

    C:\Users\tbsvst18tedbom\AndroidStudioProjects\tab_truth_true\tab>flutter build apk
    You are building a fat APK that includes binaries for android-arm, android-arm64.
    If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
        To generate an app bundle, run:
            flutter build appbundle --target-platform android-arm,android-arm64
            Learn more on: https://developer.android.com/guide/app-bundle
        To split the APKs per ABI, run:
            flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
            Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
    Initializing gradle...                                              1,4s
    Resolving dependencies...                                          23,0s
    Note: C:\Users\tbsvst18tedbom\Desktop\Appen\Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\firebase_admob-0.9.0+9\android\src\main\java\io\flutter\plugins\firebaseadmob\AdRequestBuil
    derFactory.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Note: C:\Users\tbsvst18tedbom\Desktop\Appen\Flutter\flutter\.pub-cache\hosted\pub.dartlang.org\url_launcher-5.2.5\android\src\main\java\io\flutter\plugins\urllauncher\WebViewActivity.jav
    a uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Running Gradle task 'assembleRelease'...
    
    Running Gradle task 'assembleRelease'... Done                     133,5s (!)
    Gradle task assembleRelease failed with exit code 1
    
    

    I'll add the app-level build.gradle file if that helps.

    def localProperties = new Properties()
    def localPropertiesFile = rootProject.file('local.properties')
    if (localPropertiesFile.exists()) {
        localPropertiesFile.withReader('UTF-8') { reader ->
            localProperties.load(reader)
        }
    }
    
    def flutterRoot = localProperties.getProperty('flutter.sdk')
    if (flutterRoot == null) {
        throw new FileNotFoundException()("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    }
    
    def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
    if (flutterVersionCode == null) {
        flutterVersionCode = '1'
    }
    
    def flutterVersionName = localProperties.getProperty('flutter.versionName')
    if (flutterVersionName == null) {
        flutterVersionName = '1.0'
    }
    
    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
    
    android {
        signingConfigs {
            release {
                storeFile file('C:\\Users\\tbsvst18tedbom\\Desktop\\Appen\\KeyStore\\TABKEY.jks')
                storePassword '***'
                keyAlias = 'TABTRUTH1'
                keyPassword '***'
            }
        }
        compileSdkVersion 29
    
        sourceSets {
            main.java.srcDirs += 'src/main/kotlin'
        }
    
        lintOptions {
            disable 'InvalidPackage'
        }
    
        defaultConfig {
            applicationId "com.tab.tab"
            minSdkVersion 21
            targetSdkVersion 29
            versionCode = flutterVersionCode.toInteger()
            versionName flutterVersionName
            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
            signingConfig signingConfigs.release
        }
    
        buildTypes {
            release {
                multiDexEnabled true
                minifyEnabled false
                signingConfig signingConfigs.release
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.pro'
            }
        }
    }
    
        flutter {
            source '../..'
        }
    
        dependencies {
            implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.60"
            testImplementation 'junit:junit:4.13-rc-1'
            androidTestImplementation 'androidx.test:runner:1.3.0-alpha02'
            androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha02'
            implementation 'com.google.firebase:firebase-ads:18.3.0'
            implementation 'com.google.firebase:firebase-appindexing:19.0.0'
            implementation 'com.google.android.gms:play-services-ads:18.3.0'
        }
    
    apply plugin: 'com.google.gms.google-services'  // Google Play services Gradle plugin
    
    

    I hope that anyone can help me with this weird error message. I have no idea what so ever of what the problem may be since the app built fine just before I signed it.

    If you need any files just say the word and I'll edit the question.

    Thank you so much!

    EDIT1 As requested, this is the pubspec.yaml file

    name: tab
    description: TAB2
    
    # The following defines the version and build number for your application.
    # A version number is three numbers separated by dots, like 1.2.43
    # followed by an optional build number separated by a +.
    # Both the version and the builder number may be overridden in flutter
    # build by specifying --build-name and --build-number, respectively.
    # In Android, build-name is used as versionName while build-number used as versionCode.
    # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
    # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
    # Read more about iOS versioning at
    # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
    version: 1.0.0+1
    
    environment:
      sdk: ">=2.1.0 <3.0.0"
    
    dependencies:
      flutter:
        sdk: flutter
    
      # The following adds the Cupertino Icons font to your application.
      # Use with the CupertinoIcons class for iOS style icons.
      cupertino_icons: ^0.1.2
      url_launcher: ^5.0.0
      firebase_admob: ^0.9.0+9
      firebase_core: ^0.4.2
      firebase_analytics: ^5.0.6
    
    
    dev_dependencies:
      flutter_launcher_icons: "^0.7.3"
    
      flutter_test:
        sdk: flutter
    
    flutter_launcher_icons: "^0.7.3"
    
    flutter_icons:
      android: true
      ios: true
      image_path: "Images/Logo_utan_text.png"
    
    # For information on the generic Dart part of this file, see the
    # following page: https://dart.dev/tools/pub/pubspec
    
    # The following section is specific to Flutter.
    flutter:
    
      # The following line ensures that the Material Icons font is
      # included with your application, so that you can use the icons in
      # the material Icons class.
      uses-material-design: true
    
      # To add assets to your application, add an assets section, like this:
      assets:
        - Images/logotype.png
        - Images/Logo_utan_text.png
    
      # An image asset can refer to one or more resolution-specific "variants", see
      # https://flutter.dev/assets-and-images/#resolution-aware.
    
      # For details regarding adding assets from package dependencies, see
      # https://flutter.dev/assets-and-images/#from-packages
    
      # To add custom fonts to your application, add a fonts section here,
      # in this "flutter" section. Each entry in this list should have a
      # "family" key with the font family name, and a "fonts" key with a
      # list giving the asset and other descriptors for the font. For
      # example:
      # fonts:
      #   - family: Schyler
      #     fonts:
      #       - asset: fonts/Schyler-Regular.ttf
      #       - asset: fonts/Schyler-Italic.ttf
      #         style: italic
      #   - family: Trajan Pro
      #     fonts:
      #       - asset: fonts/TrajanPro.ttf
      #       - asset: fonts/TrajanPro_Bold.ttf
      #         weight: 700
      #
      # For details regarding fonts from package dependencies,
      # see https://flutter.dev/custom-fonts/#from-packages
    
    

    After further investigation, I found the build it created. The folder is there with all info but there is no APK. I belive that the apk fails to be signed so therefore it does not get created? Correct me if im wrong.

    Thank you!

    EDIT3 When I run gradle sync i get this gradle issue

    INFO: API 'variantOutput.getProcessResources()' is obsolete and has been replaced with 'variantOutput.getProcessResourcesProvider()'.
    It will be removed at the end of 2019.
    For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
    To determine what is calling variantOutput.getProcessResources(), use -Pandroid.debug.obsoleteApi=true on the command line to display more information.
    Affected Modules: app
    
    

    Does anyone know what to do to fix this?

    • griffins
      griffins over 4 years
      add your pubspec.yaml
    • i6x86
      i6x86 over 4 years
      I don’t use windows so I’m not sure, but why you use two backslashes to indicate the path? I think the problem is with the signing section so this one might be the reason.
    • Ted Boman
      Ted Boman over 4 years
      @Ggriffo I have updated my question with the pubspec.yaml file. I also changed the path indication to forwardslashes but with no luck at solving the issue.
    • griffins
      griffins over 4 years
      after going through your pub file some dep require some configs eg pub.dev/packages/firebase_admob
    • Ted Boman
      Ted Boman over 4 years
      I looked through the link and my pubspec but i'm not sure what i need to do. As far as I can see, nothing is wrong?
    • Ted Boman
      Ted Boman over 4 years
      @Ggriffo the thing is, the build works when i don't sign the app. As soon as i try to sign it, it fails.
  • Ted Boman
    Ted Boman over 4 years
    I have tried this method but it also returns this error.