• flutter 打包apk


    打包的具体操作,可以参照官网,只是官网没有那么细

    1、修改AndroidManifest.xml

    2、构建配置  可以跳过

    3、构建签名

    4、创建 key.properties

    5、配置混淆

    6、修改builg配置build.gradle

    7、打包

    --------------------------------------------------分割线--------------------------------------------------------------------

    1、修改AndroidManifest.xml

    路径:<app dir> /android/app/src/main/AndroidManifest.xml

    3、构建签名

    使用keytool, 可以直接在Android Studio 的terminal里面操作

    口令:keytool -genkey -v -keystore G:/keys/test.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias key

    区分开来的字段需要注意,存储路径 和   别名, 路径里面的文件自己创建。

    输入口令之后,开始填写一些信息,名字,公司....到了  【否】 这里写y,继续,没有报错的话签名就构建ok了,notepad++打开一坨乱码,我还在怀疑能用不呢。

    4、创建 key.properties

     路径:<app dir>/android/key.properties   文件手动创建

    主要用来引入刚刚的签名文件

    key.properties

    storePassword = exanple   这是你创建签名写的密码
    keyPassword = exanple   这是你创建签名写的密码
    keyAlias = key    口令里面的alias key  对应
    storeFile = G:/andro/example/android/app/keys/test1.keystore    绝对路径

    5、配置混淆 

    路径<app dir> /android/app/proguard-rules.pro  手动创建

    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.**  { *; }
    复制代码

    6、修改builg配置build.gradle

    路径:<app dir>/android/app/build.gradle

    build.gradle

    复制代码
    def keystorePropertiesFile = rootProject.file("key.properties") // 引入
    def keystoreProperties = new Properties()
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    android {
        compileSdkVersion 28
    
        lintOptions {
            disable 'InvalidPackage'
        }
    
        defaultConfig {
            // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
            applicationId "myapp.flutter_kiminitodoke"
            minSdkVersion 16
            targetSdkVersion 28
            versionCode flutterVersionCode.toInteger()
            versionName flutterVersionName
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        signingConfigs {
            release {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
    
        buildTypes {
            release {
               signingConfig signingConfigs.release  // debug
                minifyEnabled true
                useProguard true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    复制代码

    7、打包

    进入项目目录

    flutter build apk

    打包好的发布APK位于<app dir>/build/app/outputs/apk/app-release.apk。

    至此就ok了,过程中我也遇到了些问题。

    特别注意,打包后不能上网,要在android/app/src/main/AndroidManifest.xml     </manifest>里加上以下代码

    <uses-permission android:name="android.permission.INTERNET"/>   

  • 相关阅读:
    零基础入门学习python--第一章
    mount: no medium found on /dev/sr0 找不到介质
    linux中shell变量$#,$@,$0,$1,$2的含义解释
    ospf多区域实例配置
    Linux查看cpu信息
    ethtool查看网卡以及修改网卡配置
    circusctl命令在ubuntu 上执行,卡住的现象处理。
    ubuntu 16.04.1 LTS zabbix-agent安装
    ubuntu 16.04.1 LTS 初始化
    Ubuntu开机启动的方式
  • 原文地址:https://www.cnblogs.com/zxh1919/p/12577921.html
Copyright © 2020-2023  润新知