zoukankan      html  css  js  c++  java
  • 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了,过程中我也遇到了些问题。

    1、签名路径问题,没有写绝对路径。

    2、打包完成后闪退:就是程序的问题,然后我调试的时候也是闪退,后来是我手残改了这里,然后颜色都不对了,也是扯淡。

    然后节本没有其他问题了。

     

  • 相关阅读:
    Android源码4.4.4_r1下载和编译
    [转]【腾讯Bugly干货分享】Android Linker 与 SO 加壳技术
    Android C语言_init函数和constructor属性及.init/.init_array节探索
    阅读android源码了解 android 加载so的流程
    div嵌套内层div的margin-top转移给外层div的解决办法
    实现在一个页面内,点击导航栏的不同链接,跳转到不同的页面
    当导航栏滚动到浏览器顶部时,固定导航栏
    如何在ios手机端的Safari浏览器 中“查看网页源代码”
    带有可点击区域的图像映射:HTML <map> 标签
    网页中如何使用一些特殊字体
  • 原文地址:https://www.cnblogs.com/shuangzikun/p/taotao_flutter_build.html
Copyright © 2011-2022 走看看