zoukankan      html  css  js  c++  java
  • Flutter 打包发布

    创建一个密钥库

    打开Flutter的开发文档,进入配置 key store 的页面,请注意以下红线,是很容易忽略的地方

     

     

    找到Java源文件

    $ /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    

    错误信息

     $ /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
    
    错误: 找不到或无法加载主类 keytool

     修改后,

    $ /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore /upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

    又报错了:keytool 错误: java.io.FileNotFoundException: /upload-keystore.jks (Read-only file system)

    将文件生成个到其他目录,例如 Mac路径:~/platform,  windows 路径:D:/platform

    $ /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore /upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -keystore ~/platform/android/keytool/android.key

    生成成功:

    从应用程序引用密钥库

    创建一个名为的文件[project]/android/key.properties ,其中包含对密钥库的引用:

    storePassword=<password from previous step> //密钥库密码
    keyPassword=<password from previous step> //密钥密码
    keyAlias=upload // 密钥标示名
    storeFile=<location of the key store file, such as /Users/<user name>/upload-keystore.jks> //密钥库存放的路径
    

      

    请注意红色部分,千万不要忽略,因为我已经被坑的很惨很惨了,

    以下是我代码的部分,你可以按照你的填写

    storePassword=1234567890 // 查看下图
    keyPassword=1234567890 //查看下图
    keyAlias=mykey // 查看下图
    storeFile=/Users/<yourname>/android.key
    

      

    配置Gradle登录

    通过编辑[project]/android/app/build.gradle文件,将gradle配置为在发布模式下构建应用程序时使用上载密钥

    1. 在该android块之前,从属性文件中添加密钥库信息: 

       def keystoreProperties = new Properties()
       def keystorePropertiesFile = rootProject.file('key.properties')
       if (keystorePropertiesFile.exists()) {
           keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
       }
    
       android {
             ...
       }
    

    key.properties文件加载keystoreProperties对象中。

    2. 更换buildTypes块:

       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
           }
       }
    

    使用签名配置信息:

       signingConfigs {
           release {
               keyAlias keystoreProperties['keyAlias']
               keyPassword keystoreProperties['keyPassword']
               storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
               storePassword keystoreProperties['storePassword']
           }
       }
       buildTypes {
           release {
               signingConfig signingConfigs.release
           }
       }
    

    您的应用的发布版本现在将自动签名。

     注意: 您可能需要flutter clean在更改gradle文件后运行。这样可以防止缓存的版本影响签名过程。

    生成APK

    直接在终端中输入:

    flutter build apk
    

    这时候就打包成功了  

  • 相关阅读:
    TestNG 入门教程
    Angularjs中文版本开发指南发布
    你是码农 还是优秀程序员?
    java牛人给新人的几点建议
    有一种毒药叫励志书
    牛人眼中如何精通spring?
    驯服你的Windows Server 2003
    windows 7 里面的iis在哪里
    神器 cmder
    亚信UED前端流程自动化构建工具
  • 原文地址:https://www.cnblogs.com/gqx-html/p/14759889.html
Copyright © 2011-2022 走看看