Flutter发布安卓包

206 阅读2分钟

网上文章很多,但是对于小白来说各种术语太多,有点蒙。找了个热心的前辈,给我解决了问题

第一步:签名

方法一

cd project/android/app
keytool -genkey -v -keystore parking.jks -keyalg RSA -keysize 2048 -validity 10000 -alias parking

方法二

1.得到版本号和路径

/usr/libexec/java_home -V

2.进入这个路径

cd 

3.执行此命令生成

keytool -genkey -v -keystore parking.jks -keyalg RSA -keysize 2048 -validity 10000 -alias parking

//执行上面的命令可能会报错,因为没有权限,我换个路径解决了
-keystore /Users/cqct/Documents/tmp/parking.jks

4.查看存储时要注意路径

keytool -v -list -keystore parking.jks -alias parking -keypass 111111 -storepass 111111

keytool -v -list -keystore maas.jks -alias maas -keypass 345678 -storepass 345678 //这样会报错

keytool -v -list -keystore /Users/fly/Documents/project/flutter/maas/android/app/maas.jks  -alias maas -keypass 345678 -storepass 345678 //注意这里的路径

5.导出

keytool -export -rfc -alias parking -file upload_certificate.pem -keystore parking.jks

6.过度到p12

keytool -importkeystore -srckeystore /xxxx/maas.jks -destkeystore /xxxxx/maas.jks -deststoretype pkcs12 //

7.生成p12

参考:keytool -importkeystore -srckeystore D:\key.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore key.p12

实际:keytool -importkeystore -srckeystore /Users/fly/Documents/project/flutter/maas/android/app/maas.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore key.p12

8.p12 转 keystore

keytool -v -importkeystore -srckeystore /Users/fly/key.p12  -srcstoretype PKCS12 -destkeystore key.keystore -deststoretype JKS

签名结束 直接把签名文件放到 flutter_parking/android/app/。

第二步:配置

1.flutter_parking/android/app/build.gradle

signingConfigs {
    release {
        keyAlias 'parking'
        keyPassword '111111'
        storeFile file('./parking.jks')
        storePassword '111111'
    }

    debug {
        keyAlias 'parking'
        keyPassword '111111'
        storeFile file('./parking.jks')
        storePassword '111111'
    }
}
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.release
        //混淆
        minifyEnabled false
        useProguard true
        //Zipalign优化
        zipAlignEnabled true
        // 移除无用的resource文件
        shrinkResources false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        ndk {
            //设置只支持armeabi-v7a 平台,与签名无关,可以自己配置
            abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a'
        }
    }
    debug {
        signingConfig signingConfigs.debug
    }
}

2.1>修改app显示的名字 /flutter_parking/android/app/src/main/AndroidManifest.xml

<application
     android:label="应用名字">

.2>修改app的logo--/flutter_parking/android/app/src/main/res/

3.打包 工具终端运行 flutter build apk

4.显示包的位置 工具终端运行 open build/app/outputs/flutter-apk/

第三步 获取 SHA1

keytool -list -v -keystore flutter_parking/android/app/parking.jks