欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

快速指南:Flutter应用的Android与iOS打包与发布的步骤

最编程 2024-02-20 09:02:38
...

前言:

         Flutter 作为跨平台的开发语言,随着 Flutter 3.0 版本的发布,Flutter 开发框架终于可以支持六大平台,实现了其跨平台稳定运行的愿景。本人在项目中使用 Flutter 进行 Android 和 iOS 的开发,项目开发完成后需要将 Android 应用程序发布到 Google Play Store 以及将 iOS 应用程序发布到 App Store 和 TestFlight。Flutter 开发虽然支持多平台,但是在发布应用程序的过程中需要注意的地方也不少,接下来我简单总结一下如何在 Flutter Android/iOS 打包发布流程,有需要的话可以参考。

第一部分:Android篇

Android app打包发布流程:

1. 检查 Android 清单文件
2. 检查 Android gradle 配置
3. 添加启动图标
4. App 签名
5. 开启混淆
6. 构建 release 版的 apk
7. 构建 release 版的 aab
8. 将 aab 发布到 Google Play Store

实现的步骤:

1. 检查 Android 清单文件。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myfirstapp">
   <!-- 编辑application的标签 -->
    <application
        android:icon="@mipmap/ic_launcher"
        android:label="myfirstapp">
        <activity
            android:name=".MainActivity">
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>   
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
</manifest>

2. 检查 Android gradle 配置

defaultConfig {
        applicationId "com.example.myfirstapp" //应用程序包名
        minSdkVersion flutter.minSdkVersion  //最低 Android sdk 版本
        targetSdkVersion flutter.targetSdkVersion  //目标 Android sdk 版本
        versionCode flutterVersionCode.toInteger()  //版本号
        versionName flutterVersionName  //版本名
}

3. 添加启动图标

(1)默认启动图标:创建新 Flutter 项目自带启动图标。
(2)自定义启动图标 : 在 mipmap 文件夹替换自定义的图标,在清单文件中编辑 application 的 icon 标签,引用自定义图标。

4. App 签名

4.1 生成签名文件

//创建 jks 文件命令
keytool -genkey -v -keystore /Users/wupeilin/SigningKey/myfirstapp_key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mykey

4.2 创建 key.properites

keyAlias={keyAlias}
storePassword={storePassword}
keyPassword={keyPassword} 
storeFile={storeFile} //替换成自己的jks文件存放的路径

4.3 配置 app 下的 build.gradle 文件

signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
        }
}

5. 开启混淆

5.1 创建 proguard-rules.pro 文件

5.2 添加混淆规则

#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

5.3app下的 build.gradle 开启混淆

buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
}

6. 构建 release 版的 apk

运行 flutter 打包命令创建 release 版本

flutter build apk

7. 构建 release 版的 aab

flutter build appbundle

8.  aab 发布到 Google Play Store 

8.1 准备 Google Play Console

  注册 Google Play 开发者账号:

(1)创建账号密码
(2)注册过程中必须要填写手机号(建议使用公司的邮箱或手机)
(3)资料审核
(4)注册完成

  确保有一个有效的 Google Play 开发者账户,并登录到 Google Play Console。

8.2 创建新应用

在 Google Play Console 中创建一个新的应用,填写应用相关信息,包括应用名称、描述、图标等。

8.3 发布管理

在应用的“发布管理”部分,选择“开放式测试”或“内部测试”,根据我们的需求选择不同的发布方式。内部测试将只向特定用户组开放,而开放测试则会对所有愿意参与测试的用户开放。

(1)设定发布的国家或地区

(2)设置测试用户数量,开放式测试的用户人数可以设置为不限人数,内部测试最多可设置100人

      

 

8.4 上传 aab 文件

在选择发布方式后,将被要求上传 aab 文件。点击“创建发布”按钮,按照提示上传 aab 文件

 

8.5 填写发布信息

根据要求,填写版本号、更新说明等发布信息。确保提供准确的版本号,避免与之前版本混淆。

8.6 启动发布
完成填写发布信息后,点击“启动发布”按钮。此时,我们的应用程序将进入发布流程,由 Google Play Console 进行一系列的审核和处理。

8.7 等待审核

Google Play  Console 会对应用程序进行审核,确保其符合规范和要求。审核时间长短因情况而异,可能需要几小时或几天。具体时间取决于应用程序的复杂性和当前审核队列的情况。我们可以在 Google Play Console 的“发布管理” > “发布状态”中查看审核状态。

8.8 应用发布

一旦通过审核,它将会立即发布到设定的国家或地区。用户可以在 Google Play Store 商店上搜索和下载我们的 Flutter Android 应用程序。

第二部分:iOS篇

iOS app 打包发布流程:

1. 检查 Info.plist 文件
2. 检查 Runner.xcworkspace 文件
3. 配置 iOS 签名证书
4. 添加启动图标
5. 构建 release 版的 app
5. 配置 iOS 签名证书
6. iOS 应用程序归档
7. 上传 iOS 应用程序到 App Store Connect
8. 在 TestFlight 上发布 app
9. 将 app 发布到 App Store

实现的步骤:

1. 检查 Info.plist 文件
在 Flutter 项目的 ios 根目录中,打开 Info.plist 文件,设置应用的 Bundle Identifier、版本号、Build 号等信息。

2. 检查 Runner.xcworkspace 文件
在 Flutter 项目的 ios 下的 Runner 目录中,打开 Runner.xcworkspace 文件,如果有缺少的依赖项,可能需要手动解决它们,确保所有依赖项都正确配置并可以编译通过。

3. 配置 iOS 签名证书

(1)Identity 设置:
         Display Name: 在主屏幕和其他地方显示的应用程序的名称。
         Bundle Identifier: 在 App Store Connect 上注册的 App ID。
         Version: 发布的面向用户的版本号。
         Build: 为用于跟踪 
App Store Connect 上的此版本的唯一版本号,每次上传都需要一个唯一的 build 号。

        

(2)Signing & Capabilities 设置:
         Automatically manage signing: Xcode 是否应该自动管理应用,默认设置为 true。
         Team: 选择与 Apple Developer 帐户关联的团队。
         Provisioning Profile: 点击下拉列表,点击 Download Profile,选择之前创建的 Provisioning Profile 文件。
         Signing Certificate:  选择 Provisioning Profile 文件时,自动填入。

        

(3)Build Settings 设置:Code Signing Identity: 选择相应的证书。

        

4. 添加启动图标

(1) 默认启动图标:当创建新的 Flutter 应用程序时,会创建一个启动图标。
(2)自定义启动图标:在 Xcode 项目导航器中,在 Runner 文件夹中选择 Assets.xcassets 更换启动图标。

5. 构建 release 版的 app

运行 flutter 打包命令创建 release 版本

 flutter build ios -- release

6. iOS 应用程序归档:
打开 Xcode 项目,选择 Product > Archive 来进行归档,Xcode 将构建 iOS 应用程序并将其打包成一个归档文件。

7. 上传 iOS 应用程序到 App Store Connect
验证通过后,点击“Distribute App”按钮,选择“App Store Connect”选项,然后按照提示将应用上传到 App Store Connect。

8. TestFlight 上发布 app

 8.1 注册 Apple 开发者账号, 填写个人信息

 

8.2 获取开发者证书

登录有效的 Apple 开发者账号,创建和下载用于发布应用的开发者证书(Developer Certificate)和密钥(Private Key),这是为了验证我们是否为应用程序的合法开发者。

8.3 创建 App ID

(1)打开 Apple 开发者帐号的 App IDs ,点击Identifiers + 创建 Bundle ID

 

(2)输入应用程序名称,选择 Explicit App ID,输入 ID,选择应用将使用的服务。

       

(3)确认详细信息,点击 Register,注册 Bundle ID

8.4 准备 iOS 应用资料

在发布应用之前,准备好应用的名称、描述、图标、截图和版本号等信息。确保应用图标符合苹果的规范,并准备好适应不同设备尺寸的屏幕截图。

8.5 设置应用的 Apple App Store 信息

创建一个新的应用记录,填写应用的名称、描述、关键字和其他相关信息。这些信息将在 App Store Connect 中显示。

    

 点击 My App 页面左上角的 +,然后选择 New App   

    

8.6 配置应用元数据
在 App Store Connect 中,添加应用的元数据,如应用的版本号、支持的设备、年龄评级、隐私政策链接等。

8.7 发布管理

在TestFight 选项卡的“发布管理”部分,选择内部测试或外部测试,根据我们的需求选择不同的发布方式。

(1)在 App Store Connect 上导航到应用程序详细信息页面的 TestFlight 选项卡。
(2)在侧边栏选择内部测试 Internal Testing 或外部测试 External Testing。
(3)选择要发布到测试人员的 build,然后单击 Save。
(4)添加任何内部测试人员的电子邮件地址。
(5)点击 Submit for Review,App Store Connect 会在应用程序审查过程完成时发送通知。
(6)测试人员可以在 TestFight 上下载和安装我们的 Flutter iOS 应用程序进行测试。

9. app 发布到 App Store 商店

(1)在 App Store Connect 上导航到应用程序详细信息页面的 App Store 选项卡。
(2)从边栏选择状态,如果这是应用程序的第一个版本,则其状态将为 1.0 Prepare for Submission,完成所有必填字段。
(3)点击 Submit for Review,Apple Store Connect  会在应用程序审查过程完成时发送通知。
(4)提交审核后,App Store Connect 将会在指定的发布日期上架我们的应用程序。一旦通过审核,用户可以在 Apple Store 商店上搜索和下载我们的 Flutter iOS 应用程序。

总结:Flutter Android/iOS 打包发布流程,亲测有效,如果大家有什么疑问的话,欢迎留言联系我。整理不易,转载请标明出处,谢谢!