美文网首页
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