今晚月色真美

前言

安卓打包相对来说还是比较简单,因为以前是iOS开发,所以iOS打包配置是很熟悉,不过配置方法还是要多使用才能记牢靠,这里做个笔记,方便以后查阅。

配置App图标

想配置APP的图片,你需要找到下面的目录:

项目根目录/android/app/src/main/res/

进入之后你会看到很多mipmap-为前缀命名的文件夹,后边的是像素密度,可以看出图标的分辨率。

  • mdpi (中) ~160dpi
  • hdpi (高) ~240dip
  • xhdpi (超高) ~320dip
  • xxhdpi (超超高) ~480dip
  • xxxhdpi (超超超高) ~640dip

将对应像素密度的图片放入对应的文件夹中,图片记得用png格式,记得名字要统一,才能一次性进行配置。

AndroidManifest.xml文件

这个文件主要用来配置APP的名称、图标和系统权限,所在的目录在:

项目根目录/android/app/src/main/AndroidManifest.xml

1
2
android:label="flutter_app"   //配置APP的名称,支持中文
android:icon="@mipmap/ic_launcher" //APP图标的文件名称

App签名

创建keystore

如果您有现有 keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个:

1
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

其中:

  1. keystore 参数后的值:key.jks, 表示一会儿要生成的那个 签名文件 的名称;请先保存好这个名称,因为后面发布项目期间会用到它。

  2. alias 参数后面的值:key,后续发布项目期间也会用到,因此也需要保存好这个参数值;注意:这个参数的值可以根据自己的需要进行自定制。

  3. 当运行这个命令的时候,需要输入一系列的参数,和相关的口令的密码,一定要保存好相关的密码,后期会用到。

  4. 当生成了签名之后,这个签名,默认保存到了自己的用户目录下 xxx\Users\xxx\key.jks

  5. 将自己的签名证书 copy 到 android/app 目录(或其他目录)下。

注意:保持 keystore 文件的私密性; 不要将它加入到公共源代码控制中(最好的方式,是将 keystore 文件添加到 .gitignore 忽略文件)。

注意: keytool 可能不在你的系统路径中。它是 Java JDK 的一部分,它是作为 Android Studio 的一部分安装的。有关具体路径,请百度。

引用应用程序中的 keystore

有了这个key.jks文件后,可以到项目目录下的android文件夹下,创建一个名为key.properties的文件,并打开粘贴下面的代码:

1
2
3
4
storePassword=<password from previous step>    //输入上一步创建KEY时输入的 密钥库 密码
keyPassword=<password from previous step> //输入上一步创建KEY时输入的 密钥 密码
keyAlias=key
storeFile=<E:/key.jks> //key.jks的存放路径

最后是这样的:

1
2
3
4
storePassword=123123
keyPassword=123123
keyAlias=key
storeFile=D:/key.jks

在 gradle 中配置签名

key生成好后,需要在build.gradle文件中进行配置。这个过程其实很简单,就是粘贴复制一些东西,你是不需要知道这些文件的具体用处的。

  1. 进入项目目录的/android/app/build.gradle文件,在android{这一行前面,加入如下代码:
1
2
3
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

把如下代码进行替换:

1
2
3
4
5
buildTypes {
release {
signingConfig signingConfigs.debug
}
}

替换成的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}

打包

直接在终端中输入:

1
flutter build apk

大功告成。

参考文章

https://jspang.com/detailed?id=44#toc324
https://www.jianshu.com/p/d66795e283fd

排坑

此处有个坑,虽说打包成功了也可以安装到手机上,但是软件默认还是请求不到网络数据,原因是缺少权限,还需设置,在android/src/main/AndroidManifest.xml中添加:

1
2
3
4
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

sss

 评论

本站总字数统计:27k

感谢您的浏览, 本站总访问量为 次 。
载入天数...载入时分秒...