本文档指导开发者完成阿里云移动监控 Flutter SDK 的接入配置,包含 SDK 下载、启动、验证等核心流程,支持 Android 和 iOS 平台。
一、前提条件
二、参考Demo
移动监控 Flutter SDK接入工程样例请参见Example工程。
三、将SDK添加到您的应用
在项目的
pubspec.yaml文件中添加alicloud_apm的依赖:dependencies: alicloud_apm: ${ApmVersion}重要SDK 版本
${ApmVersion}请从Flutter SDK 发布说明中获取最新版本。
运行
flutter pub get完成依赖下载管理。
四、使用SDK
方式一(推荐)
import 'dart:io' show Platform;
import 'package:alicloud_apm/alicloud_apm.dart';
Future<void> main() async {
final options = buildOptions();
if (options != null) {
await Apm.start(options);
}
runApp(const YourApp());
}
ApmOptions? buildOptions() {
if (Platform.isIOS) {
const appKey = 'Your iOS AppKey';
const appSecret = 'Your iOS AppSecret';
const appRsaSecret = 'Your iOS AppRsaSecret';
return const ApmOptions(
appKey: appKey,
appSecret: appSecret,
appRsaSecret: appRsaSecret,
// 以下是可选配置项(按需替换)
channel: 'Your Channel',
userNick: 'Your UserNick',
userId: 'Your UserId',
);
}
if (Platform.isAndroid) {
const appKey = 'Your Android AppKey';
const appSecret = 'Your Android AppSecret';
const appRsaSecret = 'Your Android AppRsaSecret';
return const ApmOptions(
appKey: appKey,
appSecret: appSecret,
appRsaSecret: appRsaSecret,
// 以下是可选配置项(按需替换)
channel: 'Your Channel',
userNick: 'Your UserNick',
userId: 'Your UserId',
);
}
// 其他平台(Web、Windows、macOS、Linux 等)不启动 APM
return null;
}方式二
以 Guarded Zone 启动
import 'dart:io' show Platform;
import 'package:alicloud_apm/alicloud_apm.dart';
Future<void> main() async {
await Apm.runGuarded(() async {
final options = buildOptions();
if (options != null) {
await Apm.start(options);
}
runApp(const YourApp());
});
}
ApmOptions? buildOptions() {
if (Platform.isIOS) {
const appKey = 'Your iOS AppKey';
const appSecret = 'Your iOS AppSecret';
const appRsaSecret = 'Your iOS AppRsaSecret';
return const ApmOptions(
appKey: appKey,
appSecret: appSecret,
appRsaSecret: appRsaSecret,
// 以下是可选配置项(按需替换)
channel: 'Your Channel',
userNick: 'Your UserNick',
userId: 'Your UserId',
);
}
if (Platform.isAndroid) {
const appKey = 'Your Android AppKey';
const appSecret = 'Your Android AppSecret';
const appRsaSecret = 'Your Android AppRsaSecret';
return const ApmOptions(
appKey: appKey,
appSecret: appSecret,
appRsaSecret: appRsaSecret,
// 以下是可选配置项(按需替换)
channel: 'Your Channel',
userNick: 'Your UserNick',
userId: 'Your UserId',
);
}
// 其他平台(Web、Windows、macOS、Linux 等)不启动 APM
return null;
}五、混淆配置(Android)
如果您的项目做了代码混淆,请在<project>/android/app/proguard-rules.pro保留以下混淆配置。
-keep class com.aliyun.emas.apm.**{*;}
-dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder
-dontwarn com.alibaba.motu.crashreporter.MotuCrashReporter
-dontwarn com.alibaba.sdk.android.networkmonitor.NetworkMonitorManager
-dontwarn com.taobao.tao.log.TLogInitializer六、接入验证
Android
对于 Android,请查看 Android Studio Logcat输出,检查是否有以下日志信息:
Apm I Device unlocked: initializing Apm Apm-CrashAnalysis I Initializing Apm Crash Analysis 3.6.1 for com.aliyun.emas.apm.flutter Apm-CrashAnalysis I Initializing CrashAnalysis blocked main for 10 ms Apm I Apm initialization successful此日志表明 崩溃分析SDK 在 Native 层已成功启动。
iOS
[alicloud_apm] Alicloud APM started. Package version=0.0.1
[AlicloudApmCore] Started Successfully
[AlicloudApmSetting] Fetched Successfully此日志表明 SDK 分别在 Flutter 层和 Native 层成功启动,并且拉取配置成功。
七、扩展资料
该文章对您有帮助吗?