Flutter如何打包APK

我在用Flutter开发一个Android应用,现在需要打包成APK发布,但不太清楚具体步骤。请问如何用Flutter命令打包APK?是否需要配置签名文件?打包后的APK默认存放在哪个目录下?如果遇到打包失败的情况,一般有哪些常见原因和解决方法?

2 回复

使用Flutter打包APK,执行以下步骤:

  1. 运行 flutter build apk
  2. 生成的APK位于 build/app/outputs/apk/release/app-release.apk
  3. 如需支持不同架构,可添加 --split-per-abi 参数。

更多关于Flutter如何打包APK的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中打包APK的步骤如下:

  1. 检查配置

    • 确保 android/app/src/main/AndroidManifest.xml 中的包名和应用信息正确。
    • android/app/build.gradle 中设置 versionCodeversionName
  2. 生成签名密钥(如果尚未创建)

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

    ~/key.jks 替换为你的密钥存储路径,并记住密码。

  3. 配置签名

    • android 目录下创建 key.properties 文件,内容如下:
      storePassword=你的存储密码
      keyPassword=你的密钥密码
      keyAlias=key
      storeFile=key.jks的路径(例如../key.jks)
      
    • android/app/build.gradle 中添加签名配置(在 android { ... } 块内):
      def keystoreProperties = new Properties()
      def keystorePropertiesFile = rootProject.file('key.properties')
      if (keystorePropertiesFile.exists()) {
          keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
      }
      android {
          signingConfigs {
              release {
                  keyAlias keystoreProperties['keyAlias']
                  keyPassword keystoreProperties['keyPassword']
                  storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
                  storePassword keystoreProperties['storePassword']
              }
          }
          buildTypes {
              release {
                  signingConfig signingConfigs.release
              }
          }
      }
      
  4. 构建APK

    • 运行以下命令生成发布版APK:
      flutter build apk --release
      
    • 构建完成后,APK文件位于 build/app/outputs/flutter-apk/app-release.apk
  5. 可选:构建App Bundle(用于Google Play):

    flutter build appbundle
    

确保Flutter SDK和依赖项已更新(flutter pub get)。如果遇到问题,检查错误日志并验证配置。

回到顶部