美文网首页
flutter 打包apk

flutter 打包apk

作者: stamSuper | 来源:发表于2021-03-12 17:46 被阅读0次

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

    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 image

    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

    <pre style="margin: 0px; padding: 0px; overflow: auto; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">storePassword = exanple 这是你创建签名写的密码
    keyPassword = exanple 这是你创建签名写的密码
    keyAlias = key 口令里面的alias key 对应
    storeFile = G:/andro/example/android/app/keys/test1.keystore 绝对路径</pre>

    **5、配置混淆 **

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

    proguard-rules.pro

    [ 复制代码

    ](javascript:void(0); "复制代码")

    复制代码

    <pre style="margin: 0px; padding: 0px; overflow: auto; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">#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.
    * { *; }</pre>

    复制代码 [ 复制代码

    ](javascript:void(0); "复制代码")

    6、修改builg配置build.gradle

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

    build.gradle

    [ 复制代码

    ](javascript:void(0); "复制代码")

    复制代码

    <pre style="margin: 0px; padding: 0px; overflow: auto; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">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'
        }
    }
    

    }</pre>

    复制代码 [ 复制代码

    ](javascript:void(0); "复制代码")

    7、打包

    进入项目目录

    flutter build apk

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

    image

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

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

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

    参考资料: https://www.cnblogs.com/zxh1919/p/12577921.html

    相关文章

      网友评论

          本文标题:flutter 打包apk

          本文链接:https://www.haomeiwen.com/subject/ppbzqltx.html