Flutter入门(3)—打包项目[Android]

打包build

1、创建app签名

如果您有现有keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个:keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

🌟注意:` keytool是java jdk的一部分,也没有设置全局变量,所以路径是不对,它是作为Android Studio一部分安装的,找到对应路径,

设置私人密码123456

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

✳️注意:还是报路径不存在

文件名中间有空格的,需要加个\  转义一下

根据提示填写密钥信息,会保存在~/key.jks这个文件下

2、引用应用程序中的keystore

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

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

Eg:

storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=/Users/fuguoyu/key.jks
3、在gradle中配置签名

1)<app dir>/android/app/build.gradle文件,在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
    }
}

现在,应用的release版本将自动进行签名。

<----------👆打包配置[android]就完成了👆-------->

打包生成apk

直接在终端输入

flutter build apk
安装真的没有问题么?咋没有网络请求?

今天flutter build apk打包了一个release.apk包,在真机上安装后网络数据都不显示,但是在模拟器上没问题,一切都正常!那这会是什么问题呢?问题所在,安卓开发中flutter应用没有网络权限

在这个文件里,android\app\src\profile\AndroidManifest.xml,manifest 里添加这段代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
....
  <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>

重新打包,虚拟机安装。还是没有数据。。。然后继续找,结果发现~~~

在路径android/src/main/AndroidManifest.xml,这里也有一个AndroidManifest.xml文件!跟之前的只不过是文件夹位置不同而已,同样在manifest标签下加入相同配置就行了,不要放到application里.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
....
  <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>

<----------👆打包apk就完成了👆-------->
赶快拿起手机体验吧!!!

原创不易,自由转载,保留出处!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值