android studio flutter打包,踩坑,填坑详细过程。

2020-06-25    分类:前端    标签:Flutter    阅读:511


笔者第一次学flutter,踩坑不少,填坑也不少,不得不说官网在打包的这块留太多坑了。以下是笔者做好flutter项目中遇到的一些问题。

一、SDK篇

1、修改flutter.gradle 和 resolve_dependencies.gradle

路径:flutter/packages/flutter_tools/gradle/flutter.gradle
          flutter/packages/flutter_tools/gradle/resolve_dependencies.gradle

1.1、flutter.gradle文件修改buildscript部分

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
		maven { url 'https://maven.aliyun.com/repository/jcenter' }
		maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
    }
}

1.2、flutter.gradle文件修改 google() 和 jcenter() 还有 https://storage.googleapis.com/download.flutter.io

repositories {
    //google()
    //jcenter()
	maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/jcenter' }
    //maven {
      //  url "https://storage.googleapis.com/download.flutter.io"
    //}
	maven {url 'http://download.flutter.io'}
}

二、项目APP签名篇

2.1、进入java jdk安装目录下的bin文件夹,运行cmd命令

image.png

2.2、创建 keystore

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

image.png

2.3、在gradle中配置签名(这里和官方的不一样,官方的有坑,一直读取加载不到签名文件和密码)

官方打包所在坑位置:

image.png

通过编辑<app dir>/android/app/build.gradle文件为您的应用配置签名

替换:

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
    }
}

为:

signingConfigs {
    release {
        keyAlias 'key'
        keyPassword '123456'
        storeFile file("D:/ProgramFile/flutter_word/key.jks")
        storePassword '123456'
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

2.4、修改项目域名(考虑国内到墙问题)

2.4.1、修改项目目录下文件:/android/build.gradle文件中的 google() 和 jcenter()

image.png

buildscript:

buildscript {
    repositories {
//        google()
//        jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
    }
}

allprojects :

allprojects {
    repositories {
//        google()
//        jcenter()
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
    }
}

3、开启混淆

默认情况下 flutter 不会开启 Android 的混淆。

如果使用了第三方 Java 或 Android 库,也许你想减小 apk 文件的大小或者防止代码被逆向破解。


3.1、配置混淆

创建 /android/app/proguard-rules.pro 文件,并添加以下规则:

#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

上述配置只混淆了 Flutter 引擎库,任何其他库(比如 Firebase)需要添加与之对应的规则。


3.2、开启混淆/压缩

打开 /android/app/build.gradle 文件,定位到 buildTypes 块。

在 release  配置中将 minifyEnabled  和 useProguard  设为 true,再将混淆文件指向上一步创建的文件。

android {
		...
	buildTypes {
		release {
			signingConfig signingConfigs.release
			minifyEnabled true
            useProguard true
		}
	}
}

3.3、以上改好之后执行 flutter clean 清下缓存

flutter clean

四、构建一个发布版(release)APK

本节介绍如何构建发布版(release)APK。如果您完成了前一节中的签名步骤,则会对APK进行签名。

使用命令行:

cd 项目目录 (为您的工程目录).

运行flutter build apk (flutter build 默认会包含 --release选项).

flutter build apk

打包好的发布APK位于项目目录下/build/app/outputs/apk/release/app-release.apk。

以下即为打包成功式例:

image.png

来看文件夹下文件:

image.png

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元 618年中云钜惠大促,精选云产品1折起,助力新基建,618年中大促云服务器88元

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/fdetail/347.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
头像

简忆博客
仕而优则学,学而优则仕。

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×