iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
Mobile Development

Flutter :30天打造念佛App,跨平台應用從Mobile到VR,讓極樂世界在眼前實現!系列 第 28

[ Day 28 ] Flutter Android上架 實戰應用篇 — 生活在地球的勇者啊,哪邊可以找到阿彌陀佛呀?(1)

  • 分享至 

  • xImage
  •  

2025 iThome鐵人賽
「 Flutter :30天打造念佛App,跨平台從Mobile到VR,讓極樂世界在眼前實現 ! 」
Day 28
「 Flutter Android上架 實戰應用篇 生活在地球的勇者啊,哪邊可以找到阿彌陀佛呀?(1)


前言

昨天我們已經實作了 Flutter UI 動畫實作 「 逐字填滿動畫 」,
如此一來念佛 App 初步的核心功能以及 UX & UI 就已經完成。
今天讓我們一起準備 「 上架 Play 商店的前置流程 」!

Day 28 文章目錄:
一、前置準備
二、開發人員帳號
三、應用程式設定


一、前置準備

1. 建立上傳金鑰(upload key)

輸入金鑰儲存庫密碼:  
重新輸入新密碼: 
Enter the distinguished name. Provide a single dot (.) to leave a sub-component empty or press ENTER to use the default value in braces.
您的名字與姓氏為何?
  [Unknown]:  
您的組織單位名稱為何?
  [Unknown]:  
您的組織名稱為何?
  [Unknown]:  
您所在的城市或地區名稱為何?
  [Unknown]:  
您所在的州及省份名稱為何?
  [Unknown]:  
此單位的兩個字母國別代碼為何?
  [Unknown]:  
  
產生有效期 10,000 天的 2,048 位元 RSA 金鑰組以及自我簽署憑證 (SHA384withRSA)

[儲存 /Users/**/upload-keystore.jks]

2. 建立 android/key.properties

讓 Gradle 在 build release 時讀取金鑰與密碼

cat > android/key.properties << 'EOF'
storePassword=//你的密碼
keyPassword=//你的密碼
keyAlias=upload
storeFile=/Users/$USER/upload-keystore.jks
EOF

3. release build 綁定 upload key

//android/app/build.gradle.kts 常見寫法
signingConfigs {
    create("release") {
        val props = java.util.Properties()
        val f = rootProject.file("android/key.properties")
        props.load(java.io.FileInputStream(f))
        storeFile = file(props["storeFile"] as String)
        storePassword = props["storePassword"] as String
        keyAlias = props["keyAlias"] as String
        keyPassword = props["keyPassword"] as String
    }
}

buildTypes {
    release {
        signingConfig = signingConfigs.getByName("release")
        isMinifyEnabled = false
        isShrinkResources = false
    }
}

驗證

cd android
./gradlew signingReport

Variant: release
Store 指向 .jks
Alias 是 upload

4. 權限與顯示字串檢查

//android/app/src/main/AndroidManifest.xml 
<manifest ...> //念佛App語音轉文字功能需要麥克風,權限依專案需求檢查
  <uses-permission android:name="android.permission.RECORD_AUDIO" />
  <application
      android:label="@string/app_name"
      ...>
  </application>
</manifest>

5. 產出 aab ( 正式上架檔 )

flutter clean
flutter pub get
flutter build appbundle --release
//輸出:build/app/outputs/bundle/release/app-release.aab
NamoAmitabha ~/Desktop/Amitabha/amitabha flutter build appbundle --release
Font asset "MaterialIcons-Regular.otf" was tree-shaken, reducing it from 1645184 to 2572 bytes (99.8% reduction). Tree-shaking can be disabled by providing the --no-tree-shake-icons flag when building your app.

Running Gradle task 'bundleRelease'...                            107.1s

//成功輸出
✓ Built build/app/outputs/bundle/release/app-release.aab (101.8MB)


二、開發人員帳號

1. 開發人員帳號註冊

2. 開發人員身份驗證


三、應用程式設定

1. 設定隱私權政策

2. 應用程式存取權

3. 廣告

4. 內容分級

5. 目標對象

6. 資料安全性

7. 政府應用程式

8. 金融功能

9. 健康

10. 類別與聯絡資料

11. 設定商店資訊

12. 內部測試


Day28 重點回顧

重點 內容
前置準備 upload key、aab
開發人員帳號 一次性 25 美金註冊費用、相關身分證明文件
應用程式設定 App內容說明、Play 商店分類

上一篇
[ Day 27 ] Flutter UI 深入應用篇 — 生活在地球的勇者啊,怎麼見極樂世界呀?(3)#動態歌詞
下一篇
[ Day 29 ] Flutter iOS上架 實戰應用篇 — 生活在地球的勇者啊,哪邊可以找到阿彌陀佛呀?(2)
系列文
Flutter :30天打造念佛App,跨平台應用從Mobile到VR,讓極樂世界在眼前實現!30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言