Day 32 打包- android

当我们开发阶段完成後,

会需要把专案内容汇整成出来上架,或是给其他人测试,

以 android 来说,可汇出 apk 档 或是 aab 档

假如只是想测试 apk 档就够了,

但是要上架在 2021/8 google 就要求上架的格式必须是 aab 档

今天先来说说 Android 打包的步骤吧!

keystore

首先,我们必须先生成 keystore

使用 keytool

keytool -genkey -v -keystore keyname.keystore -alias aliasname-alias -keyalg RSA -keysize 2048 -validity 10000

指令:

  • genkey : 生成密钥
  • v: verbose output
  • keystore: 设定 keystore 名称
  • alias : 设定 alias 名称
  • keyalg: 如何加密
  • keysize: 密钥长度
  • validity: 有效时间

先移至专案底下,输入上面的指令

https://ithelp.ithome.com.tw/upload/images/20211018/20112878l40rEtoeF7.png

接下来如图上所示,会设定密码以及相关资讯,

最後记得输入 yes

这样密钥就产生了!

建好密钥之後,把密钥移至 android/app 资料夹下,

设定 gradle.properties

开启 android/gradle.properties , 并贴上下面几行

MYAPP_RELEASE_STORE_FILE=keystore name
MYAPP_RELEASE_KEY_ALIAS=alias name
MYAPP_RELEASE_STORE_PASSWORD=password
MYAPP_RELEASE_KEY_PASSWORD=password

前面名称可自行定义,但是内容要一样,

设定 build.gradle

开启 android/app/build.gradle,移至 android 底下

android{
  ....
}

设定 signingConfigs

找到 signingConfigs , 贴上下面几行

signingConfigs {
  debug {
      storeFile file('debug.keystore')
      storePassword 'android'
      keyAlias 'androiddebugkey'
      keyPassword 'android'
  }
  release {
      if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
          storeFile file(MYAPP_RELEASE_STORE_FILE)
          storePassword MYAPP_RELEASE_STORE_PASSWORD
          keyAlias MYAPP_RELEASE_KEY_ALIAS
          keyPassword MYAPP_RELEASE_KEY_PASSWORD
      }
  }
}

设定 lintOptions

lintOptions {
  checkReleaseBuilds false
  abortOnError false
}

打包

建立 apk

移至 android 资料夹 , 输入以下指令,

./gradlew assembleRelease

顺利的话,会看到 BUILD SUCCESSFUL

之後可以到 android/app/build/outputs/apk/release/ 找到 app-release.apk

建立 aab

移至 android 资料夹 , 输入以下指令,

./gradlew bundleRelease

顺利的话,会看到 BUILD SUCCESSFUL

之後可以到 android/app/build/outputs/bundle/release/ 找到 app-release.aab


<<:  [从0到1] C#小乳牛 练成基础程序逻辑 - 迷途小乳牛 归队路线图

>>:  用 Python 畅玩 Line bot - 14:Flex Message(一)

Day 03 : ML in Production 的挑战

在 Day2 提到什麽是用於生产的机械学习 ML in Production ,今天来谈用於生产的机...

30天程序语言研究

今天是30天程序语言研究的第五天,研究的语言一样是python,今天主要学习的是if判断句 网址:h...

JS 01 - 序幕揭晓

大家好! 欢迎搭乘 JavaScript 观光巴士。 起程前,我们先用一个小测验作为旅程的序幕吧! ...

第15天 - PHP 简易登入(2)_PHP的部分

接续昨天的部分,今天PHP的原理大致上就是 你填入的 帐号 && 密码 是否有(同时...

Day 4 Matrix capsules with EM routing

前言 接续着昨天讲到的EM routing,今天来将EM routing做进一步的解释 EM rou...