zoukankan      html  css  js  c++  java
  • flutter Android打包

    以下内容均是在mac版本电脑上的操作

    1、生成签名

    //根目录执行以下命令
    keytool -genkey -v -keystore ~/sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign
    //输出
    输入密钥库口令:  
    再次输入新口令: 
    您的名字与姓氏是什么?
      [Unknown]:  chen
    您的组织单位名称是什么?
      [Unknown]:  gwfx
    您的组织名称是什么?
      [Unknown]:  no
    您所在的城市或区域名称是什么?
      [Unknown]:  深圳
    您所在的省/市/自治区名称是什么?
      [Unknown]:  广东省
    该单位的双字母国家/地区代码是什么?
      [Unknown]:  CN
    CN=chen, OU=gwfx, O=no, L=深圳, ST=广东省, C=CN是否正确?
      [否]:  y
    
    正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
    	 CN=chen, OU=gwfx, O=no, L=深圳, ST=广东省, C=CN
    [正在存储/Users/admin/sign.jks]
    
    执行命令
    keytool -list -v -keystore sign.jks -alias sign -storepass 123456 -keypass 123456
    打印如下:
    别名: sign
    创建日期: 2019年10月23日
    条目类型: PrivateKeyEntry
    证书链长度: 1
    证书[1]:
    所有者: CN=chen, OU=gwfx, O=no, L=深圳, ST=广东, C=CN
    发布者: CN=chen, OU=gwfx, O=no, L=深圳, ST=广东, C=CN
    序列号: 8e8d3fe
    生效时间: Wed Oct 23 10:47:00 CST 2019, 失效时间: Sun Mar 10 10:47:00 CST 2047
    证书指纹:
    	 SHA1: 2F:CB:5F:42:6D:7D:6F:29:D0:7D:3F:5B:7D:D2:F1:91:2F:D0:83:31
    	 SHA256: D6:5A:49:16:A2:05:CE:83:F5:7B:30:7D:3F:BB:15:CD:ED:06:11:3F:D9:ED:08:87:CB:FB:BD:DD:F4:FD:B9:64
    签名算法名称: SHA256withRSA
    主体公共密钥算法: 2048 位 RSA 密钥
    版本: 3
    
    扩展: 
    
    #1: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    0000: D1 08 DA 31 2A 7D 1D B0   FE B8 D0 70 A9 DA 84 18  ...1*......p....
    0010: 07 00 28 17                                        ..(.
    ]
    ]
    

    keytool相关命令

    //查看签名信息
    keytool -v -list -keystore sign.jks
    //修改别名
    keytool -changealias -keystore sign.jks -alias sign -destalias key0
    
    

    2、将签名文件拖拽到flutter项目中 我这里放在 android文件夹目录

    3、填写签名信息

    进入android/app/build.gradle文件,找到android {}开头开头的位置添加如下内容

    android {
            signingConfigs {
        
            key0Config {
                keyAlias 'key0'
                keyPassword '123456'
                storeFile file("../sign.jks")
                storePassword '123456'
                v2SigningEnabled false
            }
        }
        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.debug
                signingConfig signingConfigs.key0Config
            }
        }
    }
    

    4、修改包名为指定包名 位置:android/app/build.gradle 修改defaultConfig中applicationId的值

    applicationId "com.xxx.xxx"
    

    5、打包

    flutter build apk
    

    其他

    申请网络权限

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

    设置splash图片launch_background.xml

        <item android:drawable="@mipmap/splash" />
    

    设置ic_launcher AndroidManifest.xml

        android:icon="@mipmap/ic_launcher">
    
  • 相关阅读:
    try_files $uri $uri/ /index.php?$query_string;
    关于declare(strict_types=1)的有效范围
    SVN客户端安装与使用
    Java日志框架中真的需要判断log.isDebugEnabled()吗?
    Spring4自动装配(default-autowire)
    java的@PostConstruct注解
    Google Guava之--cache
    Java类加载机制与Tomcat类加载器架构
    搞懂JVM类加载机制
    Java 类加载机制
  • 原文地址:https://www.cnblogs.com/qqcc1388/p/11726041.html
Copyright © 2011-2022 走看看