flutter项目的打包和发布 主要是Android

flutter 的打包和发布

Android的打包和发布
1.1 填写应用相关的信息
1.2 应用的签名
1.3 打包应用程序
  • apk
  • aab

发布到应用商城里面 Google 小米啊 你可以把这个东西发布到对应的商城里面

Android 基本信息填写

虽然这个东西很麻烦 但是它只需要做一次就可以了
  • 应用的appid
  • 应用的名称
  • 应用的Icon
  • 应用的Launcher

版本号 flutter在哪里配置版本信息的呢

我们可以在这里配置版本信息

在这里插入图片描述

如果我们第一次配置版本信息的时候我们会很疑惑 什么意思呢

为什么要这样写呢

为什么 你写个 1.0.0 版本就可以了 你写个1.0.0 + 1是什么意思呢

这个是什么意思呢 在Android中版本分成两个版本

  • versionCode: 内部管理的版本号
  • versionName: 用户显示的版本号

这个是内部管理的版本

比如我们现在开发的一个应用举一个例子

我们已经开发好了一个版本 我们现在已经打包完了 但是构建完以后 我们发现我们构建的版本是有问题的

这个时候我们会把这个1.0.0+1 改成1.0.0+2 这样我们就可以运行了

所以这个后面的版本就是一个内部版本的意思

ios里面 应用的版本 分为version和build
  • version
  • build 如果我们改了一版本 然后我们构建这个项目 但是如果我们直接构建我们是构建不成功的 我们需要将这个东西改一下我们才能将他构建成功

所以这里是这样的作用

越前面的版本就是越大的版本

网络请求

我们最后打包出来的这个应用程序我们 是不能进行网络请求的

我们最后打包出来的这个 应用程序 最后是不能直接发送网络请求的 no不能发送

我们默认在release是不能发送网络请求的

我怎么给大家证明这个东西呢

我们来到这个Mainifest文件

在这里插入图片描述

因为我们需要去配置它的权限

这个里面它有一个东西

在这里插入图片描述

你看这里如果这里有一个network我们就可以访问网络请求了

    <uses-permission android:name="android.permission.INTERNET"/>

如果我们配置 了我们就可以访问网络了

这样看我们好像是对他进行了配置的啊 但是其实是没有的 因为我们 需要在mian文件里面对这个东西进行配置

但是我希望它能够访问网络甚至希望访问它的位置

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.catefavor">
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</manifest>

这里我们就把这个权限复制过去

在这里插入图片描述

配置完这个信息 我们就可以访问网络和位置信息了

应用签名

以前我们这个东西是不需要这个东西的

android系统在安装apk的时候 首先会检验apk的签名的 如果发现其那名不存在 或者校验签名失败 会拒绝安装

所以我们 要对应用程序签名

我们需要生成一个签名文件

我们可以在window系统上执行这个命名

  • 注意这个地方有一个路径 这个路径就是保存的 key文件
keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key

如果是在macOS或者在Linux上面

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

在这里插入图片描述

我就给它执行这样一个命令 然后它会让你输入这个口令

我这里 就用jsptest

这个就是生成的文件

在这里插入图片描述

然后它会让你写协议一些信息

这些信息一般是让你填公司的信息

在这里插入图片描述

说明我们这里生成的文件就已经有了

这里 如果我们要用的话就要依赖这个文件

我们要创建一个 /android/properties 来对它做一个引用 它包含了密匙库的位置

我们在andriod创建一个文件

然后这个文件填写的信息就是固定的

storePassword=<上一步骤中的密码>
keyPassword=<上一步骤中的密码>
keyAlias=key
storeFile=<密钥库的位置,e.g. /Users/<用户名>/key.jks>

在这里插入图片描述

在这里插入图片描述

当然这个文件不建议提交到代码仓库里面

所以我们最好对.gitigonre来做一个忽略

然后我们来找到这个代码

在这里插入图片描述

找到这个文件

在这里插入图片描述

然后在上面 复制这段代码

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
	keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

这段代码的作用就是读取这个 key.properties

同时我们还需要改一个东西

在这里插入图片描述

你会发现这个东西默认是 debug

我们这里要 把这段代码给它删除掉

    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 keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
          storePassword keystoreProperties['storePassword']
      }
  }
  buildTypes {
      release {
          signingConfig signingConfigs.release
      }
  }

这个时候我们就 能对这个东西进行自动签名

我们的android支持两种打包模式

我们用户在安装的时候几乎都是使用的apk

还有一种就是AAB (官方推荐)

Android App Bundle

aab这个会动态生成用户设备需要的 apk文件

比如我们配置启动图 我们需要配置很多个 图 但是最后用的就只有适合设备的 图片

其实我们只需要使用对应的 一张 所以其实其他的启动图是没有必要使用的

如果我们使用aab就会根据用户的设置 来对应安装对应的设备

这样我们就可以根据这个设置信息来安装对应的程序来达到节省 设备空间的目的

如果是aab文件 他就是执行一个flutter build appbundle的命令

他就是这么一个东西

我们执行 flutter build apk 就会生成对应的apk文件

You are building a fat APK that includes binaries for android-arm, android-arm64, android-x64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
    To generate an app bundle, run:
        flutter build appbundle --target-platform android-arm,android-arm64,android-x64
        Learn more on: https://developer.android.com/guide/app-bundle
    To split the APKs per ABI, run:
        flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
        Learn more on:  https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
Running Gradle task 'assembleRelease'...
Calling mockable JAR artifact transform to create file: C:\Users\Lenovo\.gradle\caches\transforms-2\files-2.1\970f20739b21694cc052d0a5bed5f9a0\android.jar with input C:\Users\Lenovo\AppData\Local\Android\sd
k\platforms\android-28\android.jar
Removed unused resources: Binary resource data reduced from 4433KB to 4424KB: Removed 0%
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                     277.0s (!)
√ Built build\app\outputs\apk\release\app-release.apk (21.5MB).

这样就是打包成功了

这样我们就有这个 apk 我们就可以发布了

android的发布平台就很多了

我们构建的所有 包都是在build里面

在build里面有一个app

这个里面有一个 apk

在这里插入图片描述

这个东西就是release

倒是我们就把这个文件发给产品经理

同样我们也打包一下这个aab文件

如果你要到Google去发布的话 是需要付钱的

对我来说也是没有什么用的

IOS我没有mac所以就不写了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值