Flutter应用保护插件flutter_appguard的使用
Flutter应用保护插件flutter_appguard的使用
简介
• NHN AppGuard 是一个移动应用安全解决方案,可以保护您的应用免受各种滥用行为的影响。
• 其强大的安全功能可以保护您的应用。
• Web控制台可实时提供滥用日志。
• 实时策略设置帮助您限制滥用者。
如何导入SDK以使用插件
下载SDK导入
Android
- 将
libs
文件夹添加到项目的Android/app
目录底部,并复制appguard-{VERSION}.aar
文件。dependencies { implementation files("libs/appguard-0.2.0.aar") }
iOS
- 使用
Open in Xcode
打开项目中的ios
目录,或在Xcode中加载Runner.xcworkspace
。 - 将
AppGuard.xcframework
拖放到Runner
目标中。 - 在弹出的
Choose options for adding these files:
对话框中,勾选Copy items if needed
,并确保在Add to targets
中选择了Runner
目标。 - 确认
AppGuard.xcframework
已作为Do Not Embed
添加到Runner
目标的General/Frameworks, Libraries, and Embedded Content
部分。
示例代码
import 'dart:convert';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter_appguard/flutter_appguard.dart';
import 'component.dart';
bool get isAndroid => defaultTargetPlatform == TargetPlatform.android;
bool get isIOS => defaultTargetPlatform == TargetPlatform.iOS;
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _i = '-';
String _callbackLog = '';
final LabelCheckbox _ucCheckbox = LabelCheckbox("uc");
final LabelCheckbox _uaCheckbox = LabelCheckbox("ua");
final LabelTextField _uTextField = LabelTextField("u", "Input u");
final LabelTextField _eTextField = LabelTextField("e", "Input e");
[@override](/user/override)
void initState() {
super.initState();
_uTextField.textEditingController.text = "USERID";
_eTextField.textEditingController.text = "Test String";
FlutterAppguard.callbackStream().listen((callback) {
debugPrint('callback: $callback');
setState(() {
_callbackLog = callback;
});
});
}
void _oCall() {
bool uc = _ucCheckbox.isChecked;
FlutterAppguard.o(uc);
}
void _pCall() {
bool ua = _uaCheckbox.isChecked;
FlutterAppguard.p(ua);
}
void _sCall() {
String u = _uTextField.textEditingController.text;
FlutterAppguard.s(u);
}
Future<String> _iCall() async {
String i;
try {
i = await FlutterAppguard.i() ?? '';
} on PlatformException catch (e) {
i = 'Failed to i.';
if (kDebugMode) {
print(e.message);
}
}
setState(() {
_i = i;
});
return i;
}
void _eCall() {
String eStr = _eTextField.textEditingController.text;
List<int> data = utf8.encode(eStr);
FlutterAppguard.e(data);
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: const Text('Appguard Plugin example app'),
),
body: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
const HorizontalSplitLine(),
Text(
Platform.version,
style: const TextStyle(fontSize: 10, color: Colors.blue),
textAlign: TextAlign.center,
),
Text(
FlutterAppguard.version,
style: const TextStyle(fontSize: 10, color: Colors.red),
textAlign: TextAlign.center,
),
_ucCheckbox,
CustomButton("O", Colors.blue, Colors.white, _oCall),
const HorizontalSplitLine(),
_uaCheckbox,
CustomButton("P", Colors.blue, Colors.white, _pCall),
const HorizontalSplitLine(),
_uTextField,
CustomButton("S", Colors.blue, Colors.white, _sCall),
const HorizontalSplitLine(),
CustomButton("I", Colors.blue, Colors.white, _iCall),
Text(_i,
style: const TextStyle(fontSize: 10, color: Colors.blue)),
const HorizontalSplitLine(),
if (isAndroid) _eTextField,
if (isAndroid)
CustomButton("E", Colors.blue, Colors.white, _eCall),
if (isAndroid) const HorizontalSplitLine(),
const Text(
'Callback',
style: TextStyle(fontSize: 12, color: Colors.red),
textAlign: TextAlign.center,
),
TextView(
_callbackLog,
),
const HorizontalSplitLine(),
])),
),
);
}
}
更多关于Flutter应用保护插件flutter_appguard的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用保护插件flutter_appguard的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
flutter_appguard
是一个用于保护 Flutter 应用的插件,旨在增加应用的安全性,防止反编译、代码混淆、调试等常见的攻击手段。以下是如何使用 flutter_appguard
的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 flutter_appguard
依赖:
dependencies:
flutter_appguard: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化插件
在你的 Flutter 应用的主入口文件(通常是 main.dart
)中,初始化 flutter_appguard
:
import 'package:flutter/material.dart';
import 'package:flutter_appguard/flutter_appguard.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 AppGuard
await FlutterAppGuard.initialize();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter AppGuard Example',
home: Scaffold(
appBar: AppBar(
title: Text('Flutter AppGuard Example'),
),
body: Center(
child: Text('App is protected by Flutter AppGuard!'),
),
),
);
}
}
3. 配置保护选项
flutter_appguard
提供了多种保护选项,你可以根据需要进行配置。例如,启用代码混淆、防止调试、防止反编译等。
await FlutterAppGuard.initialize(
enableObfuscation: true, // 启用代码混淆
enableDebugProtection: true, // 防止调试
enableAntiTamper: true, // 防止应用被篡改
);
4. 处理异常
flutter_appguard
可能会在某些情况下检测到异常(例如应用被篡改或被调试),你可以通过监听异常来处理这些情况:
FlutterAppGuard.onException.listen((exception) {
print('AppGuard Exception: $exception');
// 你可以在这里处理异常,例如退出应用或显示警告
});
5. 构建应用
在完成上述步骤后,你可以正常构建你的 Flutter 应用。flutter_appguard
将在构建过程中自动应用相应的保护措施。
flutter build apk --release