Flutter 打包 安卓 APK

本文详细介绍如何使用Flutter中文网的教程完成应用的签名配置,包括安装JavaJDK、生成密钥库、配置签名信息及在Gradle中设置签名,确保应用能够顺利发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flutter中文网上的教程地址[ https://flutterchina.club/android-release/ ]

首先电脑里安装Java JDK,因为keytool命令是Java JDK中的一部分。

app签名

在终端输入:

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

会出现一下信息,进行填写:(密钥库口令 下面会用到)

输入密钥库口令:  abc123999
再次输入新口令: abc123999
您的名字与姓氏是什么?
  [Unknown]:  wang
您的组织单位名称是什么?
  [Unknown]:  没单位
您的组织名称是什么?
  [Unknown]:  公司
您所在的城市或区域名称是什么?
  [Unknown]:  香港
您所在的省//自治区名称是什么?
  [Unknown]:  香港
该单位的双字母国家/地区代码是什么?
  [Unknown]:  ZG
CN=wang, OU=没单位, O=公司, L=香港, ST=香港, C=ZG是否正确?
  []:  y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRS) (有效期为 10,000 天):
         CN=wang, OU=没单位, O=公司, L=深圳, ST=广东省, C=ZG
输入 <key> 的密钥口令
        (如果和密钥库口令相同, 按回车):  
[正在存储/Users/ntdev1/key.jks]

这时会产生一个key.jks文件,按照上面的提示找到这个文件,并且把它复制到 <app dir>/android 下面。

创建key.properties

创建一个名为 <app dir>/android/key.properties 的文件,其中包含对密钥库的引用:

storePassword=abc123999
keyPassword=abc123999
#这个值取决于你在终端输入的第一个命令,结尾的那个单词
keyAlias=key
storeFile=./../key.jks
在gradle中配置签名

通过编辑 <app dir>/android/app/build.gradle 文件为您的应用配置签名。

1.替换

android {

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {

2.替换

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 file(keystoreProperties['storeFile'])
     storePassword keystoreProperties['storePassword']
 }
}
buildTypes {
 release {
     signingConfig signingConfigs.release
 }
}
开启混淆

这个我没加。

添加允许请求网络

要分别修改两个文件:

  1. 编辑 <app dir>/android/app/src/profile/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yn.ktwo">
    
    <!-- 开始 -->
    <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" />
    <!-- 结束 -->
    
</manifest>
  1. 编辑 <app dir>/android/app/src/main/AndroidManifest.xml
	...
	</application>

	<!-- 开始(不要放在 application 里) -->
    <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" />
    <!-- 结束 -->
    
</manifest>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值