Flutter開發日記——構建系統加入Flutter符號表

前言

記一次在開發過程中找到Flutter符號表的過程。由於Flutter準備上線後需要將Flutter符號表打進崩潰系統,供崩潰系統查詢。即使是發佈到線上的崩潰,也能在崩潰系統中掃描出來。這裏只是記錄將對應Flutter版本號找到對應帶符號表的過程,我們的工作就是將符號表交給負責崩潰系統的人即可。

1、flutter版本

由於我們開發的版本是最新的stable版本,需要將本地版本切換到stable版本,在命令行執行

flutter channel stable

由於我們開發是最新的stable版本,需要更新到flutter最新版本,在命令行執行

flutter upgrade

查看flutter版本

flutter --version

本機的flutter版本

Flutter 1.5.4-hotfix.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 7a4c33425d (5 weeks ago) • 2019-04-29 11:05:24 -0700
Engine • revision 52c7a1e849
Tools • Dart 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)

2、找到符號表

  1. 在GitHub上找到flutter項目的Release版本,找到我們對應的版本,鏈接在此,下載source
  2. 下載完後解壓,在/bin/internal/engine.version中查看當前版本對應的engine版本,如52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f
  3. flutter倉庫中搜索對應的版本,找到對應的文件夾,裏面就是我們各種cpu架構的符號表,取下來交給崩潰系統負責人即可

3、其他符號表

但有些Flutter的開發是自定義Engine的,這個時候就需要gradle將ndk生成的so文件,放到構建系統的符號表指定目錄中

task collectSymbolSo(type: Tar) {
    destinationDir = file("${rootDir}/target/artifacts")
    baseName = 'hensen'
    compression = Compression.GZIP
    extension = 'tar.gz'
    from(new File(buildDir, 'intermediates/ndkBuild/release/obj/local'))
    include("**/*.so")
    exclude("**/objs")
}

tasks.whenTaskAdded { task ->
    if (task.name == 'assembleRelease') {
        assembleRelease.finalizedBy collectSymbolSo
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章