AndroidStudio中Flutter打包APK

- 日理万妓 2023-06-01 05:54 122阅读 0赞

1、生成签名文件

在打包之前我们需要一个签名文件,证明文件的唯一性。

  1. keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign

F:\APP\sign.jks为签名问价存放目录,sign 为密钥名。

后面都有用,请牢记。

在控制台输入上方指令后,会依次让你输入密钥库口令、姓氏、组织机构等等,下方是我的截图:

1090399-20190811224348821-800386176.png

查看证书SHA1:

  1. keytool -list -v -keystore F:\APP\sign.jks -alias sign -storepass 123456 -keypass 123456

其中 sign、storepass、keypass 分别为: 别名、密钥库密码、 sign文件密码

2、Android Studio 配置

2.1、导入sign.jks

在Flutter工程中/android/app/key/sign.jks创建该目录。
要在app目录下创建key文件夹,然后把sign.jks拖进来。

如图所示:

1090399-20190811224443807-92450709.png

2.2、创建key.properites

在Flutter工程中/android/key.properites创建该文件。
里面内容如下:

  1. storePassword=123456
  2. keyPassword=123456
  3. keyAlias=sign
  4. storeFile=key/sign.jks
2.3、配置/android/app/build.gradle文件

需要修改 app 包下的 build.gradle 文件,增加如下配置:

  1. android {
  2. signingConfigs {
  3. release {
  4. keyAlias 'sign'
  5. keyPassword 'android'
  6. storeFile file('key/sign.jks')
  7. storePassword 'android'
  8. }
  9. }
  10. buildTypes {
  11. release {
  12. signingConfig signingConfigs.release
  13. }
  14. }
  15. }

完整的代码:

  1. def localProperties = new Properties()
  2. def localPropertiesFile = rootProject.file('local.properties')
  3. if (localPropertiesFile.exists()) {
  4. localPropertiesFile.withReader('UTF-8') { reader ->
  5. localProperties.load(reader)
  6. }
  7. }
  8. def flutterRoot = localProperties.getProperty('flutter.sdk')
  9. if (flutterRoot == null) {
  10. throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
  11. }
  12. def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
  13. if (flutterVersionCode == null) {
  14. flutterVersionCode = '1'
  15. }
  16. def flutterVersionName = localProperties.getProperty('flutter.versionName')
  17. if (flutterVersionName == null) {
  18. flutterVersionName = '1.0'
  19. }
  20. apply plugin: 'com.android.application'
  21. apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
  22. android {
  23. compileSdkVersion 28
  24. lintOptions {
  25. disable 'InvalidPackage'
  26. }
  27. defaultConfig {
  28. applicationId "sscai.club.flutter_shop"
  29. minSdkVersion 16
  30. targetSdkVersion 28
  31. versionCode flutterVersionCode.toInteger()
  32. versionName flutterVersionName
  33. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  34. }
  35. /*针对打包新加的*/
  36. signingConfigs {
  37. release {
  38. keyAlias 'sign'
  39. keyPassword '123456'
  40. storeFile file('key/sign.jks')
  41. storePassword '123456'
  42. }
  43. }
  44. /*针对打包新加的*/
  45. buildTypes {
  46. release {
  47. signingConfig signingConfigs.release
  48. }
  49. }
  50. }
  51. flutter {
  52. source '../..'
  53. }
  54. dependencies {
  55. testImplementation 'junit:junit:4.12'
  56. androidTestImplementation 'com.android.support.test:runner:1.0.2'
  57. androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
  58. }

项目目录:

1090399-20190811224636840-2130532406.png

3、打包APK

在当前项目目录的终端中执行:flutter build apk

或者直接在 Android Studio 的 Terinal 执行命令:

1090399-20190811224710020-1430482840.png

生成的目录:当前项目\build\app\outputs\apk\release\xx.apk

转载于:https://www.cnblogs.com/crazycode2/p/11299266.html

发表评论

表情:
评论列表 (有 0 条评论,122人围观)

还没有评论,来说两句吧...

相关阅读

    相关 打包Apk

       开发Android应用,我们总是免不了需要打包Apk,不管你使用的Ide是Android Sutido还是Eclipse,打包都比较简单。我们都知道Eclipse的签名文

    相关 apk打包过程

    在编写android的时候,写好java代码后,eclipse直接帮我们生成了可安装的apk,但有时需要自动化的去生成个性化apk的时候,我们就需要编写脚本或代码来自动生成一个