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我们就可以访问网络请求了

    

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

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

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

        

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

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

应用签名

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

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=keystoreFile=<密钥库的位置,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-splitRunning 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\sdk\platforms\android-28\android.jarRemoved 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所以就不写了

更多相关文章

  1. Ubuntu14.04 Android(安卓)源码编译
  2. 个人总结--Android(安卓)应用开发中国大学生挑战赛
  3. 2.Eclipse版本android 65535解决方案(原理等同android studio现
  4. Android中关于JNI 的学习(零)简单的例子,简单地入门
  5. 为何 Android(安卓)4手机不能当 U 盘了
  6. 我的第一个Android升级版本
  7. Android(安卓)面试题(有详细答案)
  8. Android(安卓)JAR组件安装打包教程
  9. Android项目实践系列(二) - 深度定制Logger

随机推荐

  1. Android 3D 旋转的三角形(三)
  2. Android解压中文乱码
  3. android studio 读取短信
  4. android:软件的安装和卸载源代码
  5. React Native与Android之间的通信
  6. android 6.0权限全面详细分析和解决方案
  7. Android获取SD卡视频音频文件
  8. 改变 Android EditText 的边框
  9. Android Sqlite数据库中判断某个表是否存
  10. 8.1 8321平台修改WIFI_ONLY总结