目前支援Android(更新統計、原生異常上報、flutter異常上報)、iOS(統計、原生異常上報、flutter異常上報)
一、引入
//androidx
dependencies:
flutter_bugly:
git:
url: git://github.com/crazecoder/flutter_bugly.git
//support
dependencies:
flutter_bugly: ^0.1.1
複製程式碼
二、專案配置
在android/app/build.gradle的android下加入
defaultConfig {
ndk {
//設定支援的SO庫架構
abiFilters 'arm64-v8a', 'x86'//, 'armeabi-v7a', 'x86_64'
}
}
複製程式碼
三、使用
import 'package:flutter_bugly/flutter_bugly.dart';
//使用flutter異常上報
void main()=>FlutterBugly.postCatchedException((){
runApp(MyApp());
});
FlutterBugly.init(androidAppId: "your android app id",iOSAppId: "your iOS app id");
複製程式碼
四、release打包(Android)
64-bit
flutter build apk --release --target-platform android-arm64
複製程式碼
32-bit
flutter build apk --release --target-platform android-arm
複製程式碼
五、支援屬性(Android)
bool autoCheckUpgrade = true,//自動檢查更新開關
bool autoDownloadOnWifi = false,//設定Wifi下自動下載
bool enableNotification = false,//官方沒有適配8.0,配合targetSdkVersion使用
bool showInterruptedStrategy = true, //設定開啟顯示打斷策略
bool canShowApkInfo = true, //設定是否顯示彈窗中的apk資訊
int initDelay = 0, //延遲初始化,單位秒
int upgradeCheckPeriod = 0, //升級檢查週期設定,單位秒
//手動檢查更新
checkUpgrade({
bool isManual = false,//使用者手動點選檢查,非使用者點選操作請傳false
bool isSilence = false,//是否顯示彈窗等互動,[true:沒有彈窗和toast] [false:有彈窗或toast]
})
複製程式碼
六、自定義彈窗(Android)
通過FlutterBugly.getUpgradeInfo()獲取更新策略資訊填入自定義flutter widget,手動彈窗
UpgradeInfo引數:
String id = "";//唯一標識
String title = "";//升級提示標題
String newFeature = "";//升級特性描述
long publishTime = 0;//升級釋出時間,ms
int publishType = 0;//升級型別 0測試 1正式
int upgradeType = 1;//升級策略 1建議 2強制 3手工
int popTimes = 0;//提醒次數
long popInterval = 0;//提醒間隔
int versionCode;
String versionName = "";
String apkMd5;//包md5值
String apkUrl;//APK的CDN外網下載地址
long fileSize;//APK檔案的大小
String imageUrl; // 圖片url
複製程式碼
七、說明(Android)
異常上報說明
1、flutter異常上報不屬於崩潰,所以如需檢視flutter的異常上報,請在【錯誤分析】tab頁檢視
2、iOS的異常上報沒有過多測試,如出現問題請issue
目前已知問題
1、第一次接受到更新策略之後,不會彈窗,即使手動檢查更新也不會,需要退出app之後再進入,才會有彈窗(已解決)
2、官方沒有適配8.0的notification,所以如果需要用到notification的時候請關閉後(預設關閉),自己寫相關業務邏輯,或者直接把gradle裡的targetSdkVersion設成26以下(方法見示例)