Flutter 打包 APK 和 IPA(Windows 易记版)

前言

平时用 Windows 开发 Flutter,打包其实不用想得太复杂,直接记成两步就行:

第一步:改包名和应用名称

第二步:构建

其中:

  • Android 可以在本地直接构建 APK
  • iOS 需要通过 Codemagic 云端构建 IPA

这篇文章就按 易记、易上手 的方式来整理,适合刚接触 Flutter 打包的同学快速入门。


目录

一、第一步:改包名和应用名称

二、第二步:构建 Android APK

三、第二步:通过 Codemagic 构建 iOS IPA

四、iOS 应用名称和 IPA 文件名的区别

五、总结


一、第一步:改包名和应用名称

Flutter 默认包名一般是:

com.example.项目名

比如:

com.example.flutter_test_project

正式项目里,一般都要改成自己的包名,比如:

com.quvanai.demo

这一步直接记 4 件事:

  • 搜索旧包名
  • 替换成新包名
  • 修改对应目录
  • 修改应用名称

1.1 先搜索,再替换

先在项目里全局搜索默认包名:

com.example.flutter_test_project

然后统一替换成你自己的包名,比如:

com.quvanai.demo

通常会搜到 Android 和 iOS 相关内容,直接统一替换即可。


1.2 再改目录

包名替换完之后,还要把对应目录一起改掉。

比如原来的目录可能是:

android/app/src/main/kotlin/com/example/flutter_test_project/

如果你的新包名是:

com.quvanai.demo

那么目录就要改成:

android/app/src/main/kotlin/com/quvanai/demo/

也就是说,原来包名对应的目录层级,也要改成新包名对应的目录层级。

注意

很多人只替换了包名,
但是没有改目录,最后就会编译报错。


1.3 Android 改应用名称

包名改好后,还要把应用显示名称改掉。
不然安装到手机上后,桌面显示的可能还是默认项目名。

比如默认显示的是:

flutter_test_project

你可以把它改成自己的正式名称,比如:

奇妙拉比

修改位置

打开文件:

android/app/src/main/AndroidManifest.xml

找到这一行:

android:label="flutter_test_project"

把引号里的内容改成你想显示的应用名称,比如:

android:label="奇妙拉比"

改完后,应用安装到 Android 手机桌面上,显示的名字就是你设置的这个名称。


1.4 iOS 改应用名称

iOS 这边也要改,不然安装到 iPhone 上后,显示的可能还是默认名称。

修改位置

打开文件:

ios/Runner/Info.plist

重点看这两个字段:

<key>CFBundleDisplayName</key>
<string>奇妙拉比</string>

<key>CFBundleName</key>
<string>qimiaolabi</string>

这两个字段的区别

CFBundleDisplayName

这是 给用户看的名字
也就是 iPhone 桌面图标下面显示的应用名称。

CFBundleName

这是 应用内部名称
它更偏构建和包信息层面。


推荐写法

如果你想让 iPhone 桌面显示中文名,同时尽量避免 Codemagic 产物命名混乱,建议这样写:

<key>CFBundleDisplayName</key>
<string>奇妙拉比</string>
<key>CFBundleName</key>
<string>qimiaolabi</string>

为什么这样写

因为实际使用时:

  • CFBundleDisplayName 用中文,桌面显示正常
  • CFBundleName 用英文或拼音更稳
  • 尤其在 Codemagic 构建 IPA 时,更不容易出现奇怪的文件名问题

1.5 第一步小结

这一步其实就做四件事:

① 搜索旧包名

② 替换成新包名

③ 修改目录

④ 改应用名称

易记一句话

先替换包名,再修改目录,最后改应用名称。


二、第二步:构建 Android APK

Android 这一步最简单。


2.1 打开终端

在 Flutter 项目根目录打开终端。


2.2 执行打包命令

直接运行:

flutter build apk --release

2.3 等待构建完成

构建完成后,APK 文件一般会生成在:

build/app/outputs/flutter-apk/app-release.apk

2.4 找到 APK 并安装测试

找到这个 app-release.apk 文件后,
就可以发到 Android 手机上安装测试了。


2.5 Android 易记版

Android 构建其实就两步:

① 执行命令

flutter build apk --release

② 找到生成文件

build/app/outputs/flutter-apk/app-release.apk

易记一句话

运行打包命令,去输出目录拿 APK。


三、第二步:通过 Codemagic 构建 iOS IPA

Windows 下不能像 Android 一样本地直接打 IPA,
所以 iOS 这一步交给 Codemagic 来构建。


3.1 先把代码推到仓库

先把你已经改好包名和应用名称的 Flutter 项目,提交到 Git 仓库。

因为 Codemagic 是从代码仓库拉取项目来构建的。


3.2 在 Codemagic 里连接项目

登录 Codemagic,选择你的 Git 仓库,然后创建项目构建流程。

简单理解就是:

  • 让 Codemagic 读取你的 Flutter 项目
  • 让 Codemagic 帮你完成 iOS 云端构建

在这里插入图片描述

3.3 配置 iOS 签名

这一步最关键。

你需要在 Codemagic 里配置好:

  • 证书
  • 描述文件
  • Bundle ID

这里一定要注意:

Bundle ID 要和你的项目包名保持一致。

比如你的项目包名是:

com.quvanai.demo

那 iOS 这边对应的 Bundle ID 也最好保持一致。

不然很容易在构建时出现签名不匹配的问题。


在这里插入图片描述
选择Build 模块Mode->release
在这里插入图片描述
选择Distribution
在这里插入图片描述

在这里插入图片描述

3.4 开始构建

签名配置好之后,直接在 Codemagic 里发起 iOS 构建。

构建完成后,就会生成 .ipa 文件。


3.5 下载 IPA

等构建成功后,直接在 Codemagic 的构建产物里下载 IPA 即可。


3.6 iOS 易记版

iOS 用 Codemagic,其实就记 4 步:

① 推代码到仓库

② Codemagic 连接项目

③ 配置证书和描述文件

④ 云端构建,下载 IPA

易记一句话

Windows 改项目,Codemagic 打 IPA。


四、iOS 应用名称和 IPA 文件名的区别

这个地方特别容易混淆,单独说一下。


4.1 手机桌面显示名

手机安装后,桌面上显示的名称,主要看:

CFBundleDisplayName

比如:

<key>CFBundleDisplayName</key>
<string>奇妙拉比</string>

那么 iPhone 桌面显示的就是:

奇妙拉比

4.2 IPA 文件名

Codemagic 构建出来的 .ipa 文件名,不一定完全等于桌面显示名。

很多时候你会发现:

  • 手机桌面名称已经正确
  • 但是 IPA 产物名仍然还是旧名字,甚至默认工程名

比如:

flutter_test_project.ipa

所以这里一定要分清楚:

应用显示名称 ≠ IPA 文件名称


4.3 推荐做法

最稳的写法是:

<key>CFBundleDisplayName</key>
<string>奇妙拉比</string>
<key>CFBundleName</key>
<string>qimiaolabi</string>

这样通常更容易得到:

  • 手机桌面显示:奇妙拉比
  • 构建产物名称:更接近 qimiaolabi.ipa

五、总结

整个 Flutter 打包流程,直接记成两步就够了。

第一步:改包名和应用名称

  • 搜索旧包名
  • 替换成新包名
  • 修改对应目录
  • 修改应用名称

Android 应用名称

改这里:

android/app/src/main/AndroidManifest.xml

改这一项:

android:label="你的应用名"

iOS 应用名称

改这里:

ios/Runner/Info.plist

推荐这样写:

<key>CFBundleDisplayName</key>
<string>奇妙拉比</string>
<key>CFBundleName</key>
<string>qimiaolabi</string>

第二步:构建

Android

本地执行:

flutter build apk --release

然后去这里拿 APK:

build/app/outputs/flutter-apk/app-release.apk

iOS

通过 Codemagic:

  • 推代码
  • 连接项目
  • 配签名
  • 构建 IPA
  • 下载产物

最后一句话总结

先改包名和应用名称,再开始构建。
安卓本地打,苹果云端打。


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐