[Flutter] Debug 包和 Release 包
由於在整合國際牌的推播套件,搞了一星期遇卡關,iOS 測試沒問題,Android 取得裝置 Token 噴錯,最後發現是 Debug 包和 Release 包的問題,然後大陸工程師 10/1-10/9 假期中⋯⋯剛好趁這時候來徹底角解兩者差異。🥸
絕大部分時刻我都是包 Release 版本,而在上海的夥伴則是包 Debug 版本,在測試時發現兩包有不同反應,後來追問題才曉得套件有 Release/Debug 差異。
flutter build apk --flavor dev --release
flutter build apk --flavor dev --debug
在 Flutter 開發中,Debug 與 Release 版本扮演著不同的角色,開發者需要了解兩者差異,才能在開發與上架流程中正確選擇。
.
Debug 版本主要用於開發與測試。它啟用了 Flutter 的 Hot Reload 與 Hot Restart,讓開發者能快速驗證修改結果。程式碼使用 JIT(Just-In-Time)編譯,啟動較慢、效能較低,但換來靈活的除錯體驗。Debug 版本通常包含完整的日誌輸出、Debug Banner,以及可以透過 DevTools 檢查 widget tree、記憶體與效能。它使用系統提供的 debug key 簽名,因此無法上架商店。
相對地,Release 版本則是提供給最終用戶的正式包。Flutter 在這個模式下會使用 AOT(Ahead-Of-Time)編譯,將 Dart 程式轉換為原生機器碼,大幅提升效能與啟動速度。Release 版本會進行最佳化,例如代碼壓縮與資源精簡,App 體積更小、更流暢。它不支援 Hot Reload,也不允許連接 DevTools,日誌輸出也會受到限制。最重要的是,Release 版本需要使用正式的 keystore 簽名,才能提交到 Google Play。
簡而言之,Debug 版本適合開發與測試,強調靈活性;Release 版本則面向使用者,追求效能與穩定性。開發者必須在不同階段切換模式,才能兼顧效率與品質。
(繼續閱讀…)











HappyMan・迴響