瀏覽代碼

[new]增加asa苹果搜索广告归因插件

zk 3 月之前
父節點
當前提交
55ccafec87
共有 7 個文件被更改,包括 236 次插入92 次删除
  1. 3 0
      lib/handler/event_handler.dart
  2. 3 0
      lib/main.dart
  3. 3 0
      lib/module/splash/splash_controller.dart
  4. 95 0
      lib/sdk/asa/asa_helper.dart
  5. 13 0
      lib/utils/hash_utils.dart
  6. 113 92
      pubspec.lock
  7. 6 0
      pubspec.yaml

+ 3 - 0
lib/handler/event_handler.dart

@@ -1,3 +1,5 @@
+import 'package:location/sdk/asa/asa_helper.dart';
+
 import '../data/consts/payment_type.dart';
 import '../sdk/gravity/gravity_helper.dart';
 import '../utils/toast_util.dart';
@@ -34,5 +36,6 @@ class EventHandler {
           'PAY: 金额:$priceFen 订单号:$orderId 商品名:$itemName 支付方式:$payWayStr');
     }
     GravityHelper.reportPay(priceFen, orderId, itemName, payWay);
+    AsaHelper.reportEvent(AsaEvent.pay, amount: priceFen / 100);
   }
 }

+ 3 - 0
lib/main.dart

@@ -12,6 +12,7 @@ import 'package:location/resource/colors.gen.dart';
 import 'package:location/resource/string.gen.dart';
 import 'package:location/resource/string_source.dart';
 import 'package:location/router/app_pages.dart';
+import 'package:location/sdk/asa/asa_helper.dart';
 import 'package:location/sdk/bugly/bugly_helper.dart';
 import 'package:location/sdk/gravity/gravity_helper.dart';
 import 'package:location/sdk/map/map_helper.dart';
@@ -95,6 +96,8 @@ class AppInitTask implements EnsurePolicyGrant {
     await MapHelper.init();
     //一键登录
     QuickLoginHelper.init();
+    //苹果搜索广告归因插件
+    AsaHelper.init();
   }
 }
 

+ 3 - 0
lib/module/splash/splash_controller.dart

@@ -9,6 +9,7 @@ import 'package:location/data/api/response/member_status_response.dart';
 import 'package:location/data/repositories/account_repository.dart';
 import 'package:location/dialog/agreement_dialog.dart';
 import 'package:location/module/main/main_page.dart';
+import 'package:location/sdk/asa/asa_helper.dart';
 import 'package:location/module/member/activity/member_activity_page.dart';
 import 'package:location/sdk/umeng/umeng_helper.dart';
 import 'package:location/utils/date_util.dart';
@@ -97,5 +98,7 @@ class SplashController extends BaseController {
   _agreePrivacy() async {
     await UmengHelper.setPolicyGrantResult(true);
     await PrivacyCompliance.setPrivacyPolicy(true);
+    AsaHelper.reportEvent(AsaEvent.active);
+    AsaHelper.reportEvent(AsaEvent.register);
   }
 }

+ 95 - 0
lib/sdk/asa/asa_helper.dart

@@ -0,0 +1,95 @@
+import 'dart:convert';
+
+import 'package:flutter/foundation.dart';
+import 'package:flutter_asa_attribution/flutter_asa_attribution.dart';
+import 'package:http/http.dart' as http;
+import 'package:location/utils/date_util.dart';
+import '../../device/atmob_platform_info.dart';
+import '../../utils/hash_utils.dart';
+
+class AsaHelper {
+  AsaHelper._();
+
+  static final String _orgId = "9038030";
+  static final String _secret = "86728a25f9e806dc05bca13e6bffc16d";
+  static final String _sign = HashUtils.md5String("$_secret&kiwi");
+  static Map<String, dynamic>? attributionMap;
+
+  static Future<String?> getToken() {
+    return FlutterAsaAttribution.instance.attributionToken();
+  }
+
+  static void init() {
+    requestAttributionDetails();
+  }
+
+  static Future<Map<String, dynamic>?> requestAttributionDetails() async {
+    if (attributionMap != null) {
+      return attributionMap;
+    }
+    attributionMap =
+        await FlutterAsaAttribution.instance.requestAttributionDetails();
+    return attributionMap;
+  }
+
+  static Future<bool> reportEvent(AsaEvent event, {double? amount}) async {
+    final attrMap = await requestAttributionDetails();
+
+    final Map<String, dynamic> map = {
+      "campaign_id": attrMap?["campaignId"] ?? "",
+      "ad_group_id": attrMap?["adGroupId"] ?? "",
+      "keyword_id": attrMap?["keywordId"] ?? "",
+      "date": DateUtil.formatDateTime(DateUtil.getNow(), "yyyy-MM-dd"),
+      "unique_device": atmobPlatformInfo.idfa ?? atmobPlatformInfo.idfv,
+      "timezone": 'ORTZ',
+      "event_name": event.value,
+    };
+    if (amount == null) {
+      map.addAll({"event_val": 1});
+    } else {
+      map.addAll({"event_val": amount});
+    }
+    return reportBackendDataDetail(map);
+  }
+
+  static Future<bool> reportBackendDataDetail(
+      Map<String, dynamic> params) async {
+    try {
+      final String url = _getReportDetailApi();
+      final headers = {
+        "Content-Type": "application/json",
+      };
+      final requestBody = {"backend_data_detail": params};
+      final resp = await http.post(
+        Uri.parse(url),
+        headers: headers,
+        body: jsonEncode(requestBody),
+      );
+
+      if (resp.statusCode == 200) {
+        final resMap = jsonDecode(resp.body);
+        debugPrint("asa 上报结果: $resMap");
+        return true;
+      } else {
+        debugPrint("asa 上报错误: ${resp.statusCode} ${resp.body}");
+        return false;
+      }
+    } catch (e) {
+      return false;
+    }
+  }
+
+  static String _getReportDetailApi() {
+    return 'http://asafrontend.mokiwi.com/api/asabackendDataDetail/add?org_id=$_orgId&sign=$_sign&debug=$kDebugMode';
+  }
+}
+
+enum AsaEvent {
+  active("active"), //激活
+  register("register"), //注册
+  pay("pay"); //付费
+
+  const AsaEvent(this.value);
+
+  final String value;
+}

+ 13 - 0
lib/utils/hash_utils.dart

@@ -0,0 +1,13 @@
+import 'dart:convert';
+import 'package:crypto/crypto.dart';
+
+class HashUtils {
+  HashUtils._();
+
+  /// 计算字符串的 MD5 值
+  static String md5String(String input) {
+    final bytes = utf8.encode(input);
+    final digest = md5.convert(bytes);
+    return digest.toString();
+  }
+}

+ 113 - 92
pubspec.lock

@@ -5,10 +5,15 @@ packages:
     dependency: transitive
     description:
       name: _fe_analyzer_shared
-      sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f
+      sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "85.0.0"
+    version: "76.0.0"
+  _macros:
+    dependency: transitive
+    description: dart
+    source: sdk
+    version: "0.3.3"
   agile_pay:
     dependency: "direct main"
     description:
@@ -36,10 +41,10 @@ packages:
     dependency: transitive
     description:
       name: analyzer
-      sha256: "974859dc0ff5f37bc4313244b3218c791810d03ab3470a579580279ba971a48d"
+      sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "7.7.1"
+    version: "6.11.0"
   android_id:
     dependency: "direct main"
     description:
@@ -131,10 +136,10 @@ packages:
     dependency: transitive
     description:
       name: build
-      sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7"
+      sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.5.4"
+    version: "2.4.2"
   build_config:
     dependency: transitive
     description:
@@ -155,26 +160,26 @@ packages:
     dependency: transitive
     description:
       name: build_resolvers
-      sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62
+      sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.5.4"
+    version: "2.4.4"
   build_runner:
     dependency: "direct dev"
     description:
       name: build_runner
-      sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53"
+      sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.5.4"
+    version: "2.4.13"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
-      sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792"
+      sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "9.1.2"
+    version: "7.3.2"
   built_collection:
     dependency: transitive
     description:
@@ -187,10 +192,10 @@ packages:
     dependency: transitive
     description:
       name: built_value
-      sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d
+      sha256: ba95c961bafcd8686d1cf63be864eb59447e795e124d98d6a27d91fcd13602fb
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "8.12.0"
+    version: "8.11.1"
   cached_network_image:
     dependency: "direct main"
     description:
@@ -243,10 +248,10 @@ packages:
     dependency: transitive
     description:
       name: code_builder
-      sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243"
+      sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "4.11.0"
+    version: "4.10.1"
   collection:
     dependency: transitive
     description:
@@ -288,7 +293,7 @@ packages:
     source: hosted
     version: "3.1.2"
   crypto:
-    dependency: transitive
+    dependency: "direct main"
     description:
       name: crypto
       sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855"
@@ -307,10 +312,10 @@ packages:
     dependency: transitive
     description:
       name: dart_style
-      sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb"
+      sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "3.1.1"
+    version: "2.3.8"
   dartx:
     dependency: transitive
     description:
@@ -331,10 +336,10 @@ packages:
     dependency: "direct main"
     description:
       name: device_info_plus
-      sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a"
+      sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "11.5.0"
+    version: "10.1.2"
   device_info_plus_platform_interface:
     dependency: transitive
     description:
@@ -347,18 +352,18 @@ packages:
     dependency: "direct main"
     description:
       name: dio
-      sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9
+      sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "5.9.0"
+    version: "5.7.0"
   dio_web_adapter:
     dependency: transitive
     description:
       name: dio_web_adapter
-      sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78"
+      sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.1"
+    version: "2.0.0"
   equatable:
     dependency: transitive
     description:
@@ -420,6 +425,14 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
+  flutter_asa_attribution:
+    dependency: "direct main"
+    description:
+      name: flutter_asa_attribution
+      sha256: d363527a326f56c1e7b3dbc224c7965cc939f6cc39614221d3f767ea21336daf
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.0.0"
   flutter_bugly:
     dependency: "direct main"
     description:
@@ -456,18 +469,18 @@ packages:
     dependency: transitive
     description:
       name: flutter_gen_core
-      sha256: eda54fdc5de08e7eeea663eb8442aafc8660b5a13fda4e0c9e572c64e50195fb
+      sha256: "53890b653738f34363d9f0d40f82104c261716bd551d3ba65f648770b6764c21"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "5.11.0"
+    version: "5.9.0"
   flutter_gen_runner:
     dependency: "direct dev"
     description:
       name: flutter_gen_runner
-      sha256: "669bf8b7a9b4acbdcb7fcc5e12bf638aca19acedf43341714cbca3bf3a219521"
+      sha256: de70b42eb5329f712c8b041069d081ad5fb5109f32d6d1ea9c1b39596786215d
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "5.11.0"
+    version: "5.9.0"
   flutter_inappwebview:
     dependency: "direct main"
     description:
@@ -564,10 +577,10 @@ packages:
     dependency: "direct main"
     description:
       name: flutter_smart_dialog
-      sha256: "0852df132cb03fd8fc5144eb404c31eb7eb50c22aecb1cc2504f2f598090d756"
+      sha256: "3d376ba47f64391cc657f706815b32dd6ff2e0f80553a5c9f33b812ba7c59462"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "4.9.8+9"
+    version: "4.9.8"
   flutter_test:
     dependency: "direct dev"
     description: flutter
@@ -638,11 +651,11 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: "v5.0.3+0"
-      resolved-ref: "7d93a84a66bd15ac1b32dffe3cdb5852daa12b9b"
+      ref: "v0.0.2"
+      resolved-ref: c82b1570eb8f80b3746df1c6e60e52a233fc7e5e
       url: "http://git.atmob.com:28999/Atmob-Flutter/gravity_engine.git"
     source: git
-    version: "5.0.3+0"
+    version: "0.0.2"
   hashcodes:
     dependency: transitive
     description:
@@ -711,10 +724,10 @@ packages:
     dependency: transitive
     description:
       name: in_app_purchase_android
-      sha256: "5a02da1399a8faafb36d9b4acca85001b7eefa629f0eeeebf5ad0b04b9df302a"
+      sha256: "9f320659b13e34529cd7d53508f7ead500f03b42e7a2435bd4efce5210546051"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.4.0+4"
+    version: "0.4.0+3"
   in_app_purchase_platform_interface:
     dependency: transitive
     description:
@@ -735,10 +748,10 @@ packages:
     dependency: "direct main"
     description:
       name: in_app_review
-      sha256: ab26ac54dbd802896af78c670b265eaeab7ecddd6af4d0751e9604b60574817f
+      sha256: "36a06771b88fb0e79985b15e7f2ac0f1142e903fe72517f3c055d78bc3bc1819"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.11"
+    version: "2.0.10"
   in_app_review_platform_interface:
     dependency: transitive
     description:
@@ -759,10 +772,10 @@ packages:
     dependency: "direct dev"
     description:
       name: injectable_generator
-      sha256: b04673a4c88b3a848c0c77bf58b8309f9b9e064d9fe1df5450c8ee1675eaea1a
+      sha256: af403d76c7b18b4217335e0075e950cd0579fd7f8d7bd47ee7c85ada31680ba1
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.7.0"
+    version: "2.6.2"
   internet_connection_checker:
     dependency: "direct main"
     description:
@@ -807,10 +820,10 @@ packages:
     dependency: "direct dev"
     description:
       name: json_serializable
-      sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c
+      sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "6.9.5"
+    version: "6.9.0"
   leak_tracker:
     dependency: transitive
     description:
@@ -859,6 +872,14 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "3.3.1"
+  macros:
+    dependency: transitive
+    description:
+      name: macros
+      sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.1.3-main.0"
   map_amap_android:
     dependency: "direct main"
     description:
@@ -925,34 +946,34 @@ packages:
     dependency: transitive
     description:
       name: mmkv_android
-      sha256: "8b973bb7e23feebb035c54098e420a6c2b91a5ff83c007cbf2031a5a0ecd20b3"
+      sha256: "0407d7a0338a56c20e9281363009fafa2c20b4e524d0058f9a614c6d482b123f"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.2.3"
+    version: "2.2.2"
   mmkv_ios:
     dependency: transitive
     description:
       name: mmkv_ios
-      sha256: f8b03563276518d40cc14372cb38f08728dec39a90320d772e16773474ea1cc5
+      sha256: "79868842d886fc4f9a38fa75ab0f3ac03068a65405f6cb125ffa8bb427989ee7"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.2.3"
+    version: "2.2.2"
   mmkv_ohos:
     dependency: transitive
     description:
       name: mmkv_ohos
-      sha256: cb794b7ea088286b05e551424b5a8e65261129d7d646e676b6bf031b4a504aff
+      sha256: a4e96832f9ecb0adb13e9f65ecd81a18945c044d844d077c896ab90365166b28
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.2.3"
+    version: "2.2.2"
   mmkv_platform_interface:
     dependency: transitive
     description:
       name: mmkv_platform_interface
-      sha256: "9ac0e51172501e634e0d84ade7b4642f7c0d7ea45f3eeb52442ed42028d8e335"
+      sha256: "65d5c1a2c43ad5d064bbf956eed45bb62e89c4fe8ccac40de829959e16ba62d1"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.2.3"
+    version: "2.2.1"
   mobile_use_statistics:
     dependency: "direct main"
     description:
@@ -1013,10 +1034,10 @@ packages:
     dependency: "direct main"
     description:
       name: package_info_plus
-      sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968"
+      sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "8.3.1"
+    version: "8.1.1"
   package_info_plus_platform_interface:
     dependency: transitive
     description:
@@ -1053,18 +1074,18 @@ packages:
     dependency: transitive
     description:
       name: path_provider_android
-      sha256: "993381400e94d18469750e5b9dcb8206f15bc09f9da86b9e44a9b0092a0066db"
+      sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.2.18"
+    version: "2.2.17"
   path_provider_foundation:
     dependency: transitive
     description:
       name: path_provider_foundation
-      sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
+      sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.4.2"
+    version: "2.4.1"
   path_provider_linux:
     dependency: transitive
     description:
@@ -1093,18 +1114,18 @@ packages:
     dependency: "direct main"
     description:
       name: permission_handler
-      sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1
+      sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "12.0.1"
+    version: "11.3.1"
   permission_handler_android:
     dependency: transitive
     description:
       name: permission_handler_android
-      sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6"
+      sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "13.0.1"
+    version: "12.1.0"
   permission_handler_apple:
     dependency: transitive
     description:
@@ -1189,10 +1210,10 @@ packages:
     dependency: transitive
     description:
       name: protobuf
-      sha256: de9c9eb2c33f8e933a42932fe1dc504800ca45ebc3d673e6ed7f39754ee4053e
+      sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "4.2.0"
+    version: "3.1.0"
   pub_semver:
     dependency: transitive
     description:
@@ -1237,10 +1258,10 @@ packages:
     dependency: "direct main"
     description:
       name: quickpass_yidun_flutter
-      sha256: e61c3dc31dc03112d87fde03107cae55729daec1c365e21df7fa81d8be1e04e5
+      sha256: "9ef53cd07305c6d57f540973bfda8cc0dbf57952f7c59f649e1f3070c5dee963"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.5.10"
+    version: "1.5.8"
   recase:
     dependency: transitive
     description:
@@ -1253,18 +1274,18 @@ packages:
     dependency: "direct main"
     description:
       name: retrofit
-      sha256: "84d70114a5b6bae5f4c1302335f9cb610ebeb1b02023d5e7e87697aaff52926a"
+      sha256: "3c9885ef3dbc5dc4b3fb0a40c972ab52e4dad04d52dac9bba24dfa76cf100451"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "4.6.0"
+    version: "4.4.1"
   retrofit_generator:
     dependency: "direct dev"
     description:
       name: retrofit_generator
-      sha256: "9abcf21acb95bf7040546eafff87f60cf0aee20b05101d71f99876fc4df1f522"
+      sha256: f76fdb2b66854690d5a332e7364d7561fc9dc2b3c924d7956ab8070495e21f6a
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "9.7.0"
+    version: "9.1.5"
   rxdart:
     dependency: transitive
     description:
@@ -1285,10 +1306,10 @@ packages:
     dependency: transitive
     description:
       name: shelf_web_socket
-      sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
+      sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "3.0.0"
+    version: "2.0.1"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -1314,18 +1335,18 @@ packages:
     dependency: transitive
     description:
       name: source_gen
-      sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b"
+      sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.0"
+    version: "1.5.0"
   source_helper:
     dependency: transitive
     description:
       name: source_helper
-      sha256: a447acb083d3a5ef17f983dd36201aeea33fedadb3228fa831f2f0c92f0f3aca
+      sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.3.7"
+    version: "1.3.5"
   source_span:
     dependency: transitive
     description:
@@ -1483,26 +1504,26 @@ packages:
     dependency: "direct main"
     description:
       name: url_launcher
-      sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
+      sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "6.3.2"
+    version: "6.3.1"
   url_launcher_android:
     dependency: transitive
     description:
       name: url_launcher_android
-      sha256: "81777b08c498a292d93ff2feead633174c386291e35612f8da438d6e92c4447e"
+      sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "6.3.20"
+    version: "6.3.17"
   url_launcher_ios:
     dependency: transitive
     description:
       name: url_launcher_ios
-      sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
+      sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "6.3.4"
+    version: "6.3.3"
   url_launcher_linux:
     dependency: transitive
     description:
@@ -1515,10 +1536,10 @@ packages:
     dependency: transitive
     description:
       name: url_launcher_macos
-      sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
+      sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "3.2.3"
+    version: "3.2.2"
   url_launcher_platform_interface:
     dependency: transitive
     description:
@@ -1563,10 +1584,10 @@ packages:
     dependency: transitive
     description:
       name: vector_graphics_compiler
-      sha256: d354a7ec6931e6047785f4db12a1f61ec3d43b207fc0790f863818543f8ff0dc
+      sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.19"
+    version: "1.1.17"
   vector_math:
     dependency: transitive
     description:
@@ -1587,18 +1608,18 @@ packages:
     dependency: transitive
     description:
       name: video_player_android
-      sha256: "59e5a457ddcc1688f39e9aef0efb62aa845cf0cbbac47e44ac9730dc079a2385"
+      sha256: d26f8791c8f670825cc227e2cad4319d2ac02b71b2ad5c2b67786bb873ac43b1
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.8.13"
+    version: "2.8.11"
   video_player_avfoundation:
     dependency: transitive
     description:
       name: video_player_avfoundation
-      sha256: f9a780aac57802b2892f93787e5ea53b5f43cc57dc107bee9436458365be71cd
+      sha256: f52261d11f97bf14c43e8ed5714f71d8ce4538552b8cc87f45e5d87d3c205e41
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.8.4"
+    version: "2.8.3"
   video_player_platform_interface:
     dependency: transitive
     description:
@@ -1635,10 +1656,10 @@ packages:
     dependency: transitive
     description:
       name: watcher
-      sha256: "5bf046f41320ac97a469d506261797f35254fa61c641741ef32dacda98b7d39c"
+      sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.3"
+    version: "1.1.2"
   web:
     dependency: transitive
     description:
@@ -1683,10 +1704,10 @@ packages:
     dependency: transitive
     description:
       name: win32_registry
-      sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae"
+      sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.0"
+    version: "1.1.5"
   xdg_directories:
     dependency: transitive
     description:

+ 6 - 0
pubspec.yaml

@@ -161,6 +161,12 @@ dependencies:
   #一键登录
   quickpass_yidun_flutter: ^1.5.6
 
+  #asa苹果搜索广告归因插件
+  flutter_asa_attribution: ^1.0.0
+
+  #MD5
+  crypto: ^3.0.3
+
   ######################地图########################
   flutter_map:
     path: plugins/map