完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例
开发背景
我们以vs-code开发flutter项目来打包apk为例,介绍安卓apk打包流程设置图标、包名、签名、APP名等完整流程。接上一篇我们已经初步写了一个注册页面代码。
实战开始
首先确保安装必需的工具:
- Flutter SDK
- Android Studio(用于Android SDK和AVD)
- Visual Studio Code
整体我们分为以下步骤:
- 设置包名
- 设置签名
- 设置APP名(应用名字)
- 设置LOGO
- 打包apk
详细步骤
1. 设置包名
修改android/app/build.gradle文件,在defaultConfig部分设置applicationId:
gradle
defaultConfig {
applicationId "com.youyacao.freefirend"
namespace "com.youyacao.freefirend"
// 其他配置...
}
2. 设置签名
在android目录下创建key.properties文件:
properties
storePassword=your_store_password
keyPassword=your_key_password
keyAlias=your_key_alias
storeFile=path/to/your/keystore
修改android/app/build.gradle文件,添加签名配置:
gradle
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file("key.properties")
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
小技巧:如果你同时需要开发iOS应用,可以使用Appuploader工具来简化iOS证书和描述文件的管理,它支持一键生成证书和描述文件,大大简化了iOS上架流程。
3. 设置应用名字
修改android/app/src/main/res/values/strings.xml文件:
xml
<resources>
<string name="app_name">FF社交</string>
</resources>
4. 设置图标
准备好应用图标,将其放置在以下目录中:
- android/app/src/main/res/mipmap-hdpi/
- android/app/src/main/res/mipmap-mdpi/
- android/app/src/main/res/mipmap-xhdpi/
- android/app/src/main/res/mipmap-xxhdpi/
- android/app/src/main/res/mipmap-xxxhdpi/
图标文件名必须为ic_launcher.png。
5. 打包apk
执行以下命令进行打包:
bash
flutter build apk --release
构建完成后,可以在build/app/outputs/flutter-apk/目录下找到生成的APK文件。
常见问题解决:
-
如果提示"No Android SDK found",需要安装Android SDK并设置ANDROID_HOME环境变量。
-
如果提示"Some Android licenses not accepted",执行:
bash
flutter doctor --android-licenses
- 如果遇到命名空间问题,确保在build.gradle中设置namespace而非在AndroidManifest.xml中设置package。
总结
通过以上步骤,我们完成了Flutter应用的打包流程。对于iOS开发者,可以考虑使用Appuploader这样的工具来简化证书管理流程,它支持自动生成证书、描述文件,并提供一键上传功能,特别适合需要同时维护Android和iOS应用的开发者。