소스 검색

[new]导入本地asa库并修改一些库问题

zk 2 달 전
부모
커밋
eaf512cd16
25개의 변경된 파일716개의 추가작업 그리고 51개의 파일을 삭제
  1. 7 0
      plugins/flutter_asa_attribution-master/.gitignore
  2. 10 0
      plugins/flutter_asa_attribution-master/.metadata
  3. 15 0
      plugins/flutter_asa_attribution-master/CHANGELOG.md
  4. 21 0
      plugins/flutter_asa_attribution-master/LICENSE
  5. 42 0
      plugins/flutter_asa_attribution-master/README.md
  6. 8 0
      plugins/flutter_asa_attribution-master/android/.gitignore
  7. 31 0
      plugins/flutter_asa_attribution-master/android/build.gradle
  8. 3 0
      plugins/flutter_asa_attribution-master/android/gradle.properties
  9. 5 0
      plugins/flutter_asa_attribution-master/android/gradle/wrapper/gradle-wrapper.properties
  10. 1 0
      plugins/flutter_asa_attribution-master/android/settings.gradle
  11. 2 0
      plugins/flutter_asa_attribution-master/android/src/main/AndroidManifest.xml
  12. 38 0
      plugins/flutter_asa_attribution-master/android/src/main/java/com/imlian/flutter_asa_attribution/FlutterAsaAttributionPlugin.java
  13. 38 0
      plugins/flutter_asa_attribution-master/ios/.gitignore
  14. 0 0
      plugins/flutter_asa_attribution-master/ios/Assets/.gitkeep
  15. 13 0
      plugins/flutter_asa_attribution-master/ios/Classes/AsaTool.h
  16. 81 0
      plugins/flutter_asa_attribution-master/ios/Classes/AsaTool.m
  17. 4 0
      plugins/flutter_asa_attribution-master/ios/Classes/FlutterAsaAttributionPlugin.h
  18. 32 0
      plugins/flutter_asa_attribution-master/ios/Classes/FlutterAsaAttributionPlugin.m
  19. 23 0
      plugins/flutter_asa_attribution-master/ios/flutter_asa_attribution.podspec
  20. 1 0
      plugins/flutter_asa_attribution-master/lib/flutter_asa_attribution.dart
  21. 36 0
      plugins/flutter_asa_attribution-master/lib/src/flutter_asa_attribution.dart
  22. 189 0
      plugins/flutter_asa_attribution-master/pubspec.lock
  23. 65 0
      plugins/flutter_asa_attribution-master/pubspec.yaml
  24. 49 50
      pubspec.lock
  25. 2 1
      pubspec.yaml

+ 7 - 0
plugins/flutter_asa_attribution-master/.gitignore

@@ -0,0 +1,7 @@
+.DS_Store
+.dart_tool/
+
+.packages
+.pub/
+
+build/

+ 10 - 0
plugins/flutter_asa_attribution-master/.metadata

@@ -0,0 +1,10 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+  revision: f4abaa0735eba4dfd8f33f73363911d63931fe03
+  channel: stable
+
+project_type: plugin

+ 15 - 0
plugins/flutter_asa_attribution-master/CHANGELOG.md

@@ -0,0 +1,15 @@
+## 0.0.4
+
+* Remove deprecated iAd-related APIs.
+
+## 0.0.3
+
+* fix get attribution data
+
+## 0.0.2
+
+* support get attribution token
+
+## 0.0.1
+
+* init

+ 21 - 0
plugins/flutter_asa_attribution-master/LICENSE

@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021 lianshumin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 42 - 0
plugins/flutter_asa_attribution-master/README.md

@@ -0,0 +1,42 @@
+# flutter_asa_attribution
+
+A apple search ads attribution plugin for flutter
+
+## ios
+
+1、Add the AdServices Framework to Your Xcode Project
+
+2、Add the AdSupport Framework to Your Xcode Project
+
+3、Add the AppTrackingTransparency Framework to Your Xcode Project
+
+## Flutter
+
+How to use
+
+```dart
+import 'package:flutter_asa_attribution/flutter_asa_attribution.dart';
+
+String? token = await FlutterAsaAttribution.instance.attributionToken();
+
+Map<String, dynamic>? data = await FlutterAsaAttribution.instance.requestAttributionDetails()
+```
+
+The following example shows the dictionary structure you receive when you call
+requestAttributionDetails
+
+14.3 and higher
+
+```json
+{
+  "attribution": true,
+  "orgId": 40669820,
+  "campaignId": 542370539,
+  "conversionType": "Download",
+  "clickDate": "2020-04-08T17:17Z",
+  "adGroupId": 542317095,
+  "countryOrRegion": "US",
+  "keywordId": 87675432,
+  "creativeSetId": 542317136
+}
+```

+ 8 - 0
plugins/flutter_asa_attribution-master/android/.gitignore

@@ -0,0 +1,8 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures

+ 31 - 0
plugins/flutter_asa_attribution-master/android/build.gradle

@@ -0,0 +1,31 @@
+group 'com.imlian.flutter_asa_attribution'
+version '1.0'
+
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:4.1.0'
+    }
+}
+
+rootProject.allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+apply plugin: 'com.android.library'
+
+android {
+    namespace 'com.imlian.flutter_asa_attribution'
+    compileSdkVersion 30
+
+    defaultConfig {
+        minSdkVersion 16
+    }
+}

+ 3 - 0
plugins/flutter_asa_attribution-master/android/gradle.properties

@@ -0,0 +1,3 @@
+org.gradle.jvmargs=-Xmx1536M
+android.useAndroidX=true
+android.enableJetifier=true

+ 5 - 0
plugins/flutter_asa_attribution-master/android/gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip

+ 1 - 0
plugins/flutter_asa_attribution-master/android/settings.gradle

@@ -0,0 +1 @@
+rootProject.name = 'flutter_asa_attribution'

+ 2 - 0
plugins/flutter_asa_attribution-master/android/src/main/AndroidManifest.xml

@@ -0,0 +1,2 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.imlian.flutter_asa_attribution"></manifest>

+ 38 - 0
plugins/flutter_asa_attribution-master/android/src/main/java/com/imlian/flutter_asa_attribution/FlutterAsaAttributionPlugin.java

@@ -0,0 +1,38 @@
+package com.imlian.flutter_asa_attribution;
+
+import androidx.annotation.NonNull;
+
+import io.flutter.embedding.engine.plugins.FlutterPlugin;
+import io.flutter.plugin.common.MethodCall;
+import io.flutter.plugin.common.MethodChannel;
+import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
+import io.flutter.plugin.common.MethodChannel.Result;
+
+/** FlutterAsaAttributionPlugin */
+public class FlutterAsaAttributionPlugin implements FlutterPlugin, MethodCallHandler {
+  /// The MethodChannel that will the communication between Flutter and native Android
+  ///
+  /// This local reference serves to register the plugin with the Flutter Engine and unregister it
+  /// when the Flutter Engine is detached from the Activity
+  private MethodChannel channel;
+
+  @Override
+  public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
+    channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "flutter_asa_attribution");
+    channel.setMethodCallHandler(this);
+  }
+
+  @Override
+  public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
+    if (call.method.equals("getPlatformVersion")) {
+      result.success("Android " + android.os.Build.VERSION.RELEASE);
+    } else {
+      result.notImplemented();
+    }
+  }
+
+  @Override
+  public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
+    channel.setMethodCallHandler(null);
+  }
+}

+ 38 - 0
plugins/flutter_asa_attribution-master/ios/.gitignore

@@ -0,0 +1,38 @@
+.idea/
+.vagrant/
+.sconsign.dblite
+.svn/
+
+.DS_Store
+*.swp
+profile
+
+DerivedData/
+build/
+GeneratedPluginRegistrant.h
+GeneratedPluginRegistrant.m
+
+.generated/
+
+*.pbxuser
+*.mode1v3
+*.mode2v3
+*.perspectivev3
+
+!default.pbxuser
+!default.mode1v3
+!default.mode2v3
+!default.perspectivev3
+
+xcuserdata
+
+*.moved-aside
+
+*.pyc
+*sync/
+Icon?
+.tags*
+
+/Flutter/Generated.xcconfig
+/Flutter/ephemeral/
+/Flutter/flutter_export_environment.sh

+ 0 - 0
plugins/flutter_asa_attribution-master/ios/Assets/.gitkeep


+ 13 - 0
plugins/flutter_asa_attribution-master/ios/Classes/AsaTool.h

@@ -0,0 +1,13 @@
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AsaTool : NSObject
+
++ (NSString *)attributionToken;
+
++ (void)requestAttributionWithComplete:(void (^)(NSDictionary *data, NSError *error))complete;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 81 - 0
plugins/flutter_asa_attribution-master/ios/Classes/AsaTool.m

@@ -0,0 +1,81 @@
+#import "AsaTool.h"
+#import <AdServices/AdServices.h>
+#import <AppTrackingTransparency/AppTrackingTransparency.h>
+
+@implementation AsaTool
+
++ (nullable NSString
+
+*)attributionToken {
+    if (@available
+    (iOS
+    14.3, *)) {
+        NSError *error;
+        NSString *token = [AAAttribution attributionTokenWithError:&error];
+        if (error) {
+            NSLog(@"[FlutterAsaAttribution]: Failed to retrieve attribution token: %@",
+                  error.localizedDescription);
+        }
+        return token;
+    } else {
+        NSLog(@"[FlutterAsaAttribution]: Only support iOS 14.3 and later");
+        return nil;
+    }
+}
+
++ (void)requestAttributionWithComplete:(void (^)(NSDictionary *_Nullable data, NSError *_Nullable
+                                                 error))complete {
+    if (@available
+    (iOS
+    14.3, *)) {
+        NSError *error;
+        NSString *token = [self attributionToken];
+
+        if (token.length > 0) {
+            [self requestAttributionWithToken:token complete:complete];
+        } else {
+            if (complete) {
+                complete(nil, error ?: [NSError errorWithDomain:@"app" code:-1 userInfo:@{
+                        NSLocalizedDescriptionKey: @"Failed to retrieve attribution token"}]);
+            }
+        }
+    } else {
+        if (complete) {
+            complete(nil, [NSError errorWithDomain:@"app" code:-1 userInfo:@{
+                    NSLocalizedDescriptionKey: @"ATTracking Not Allowed"}]);
+        }
+    }
+}
+
++ (void)requestAttributionWithToken:(NSString *)token complete:(void (^)(NSDictionary *_Nullable
+                                                                         data, NSError *_Nullable
+                                                                         error))complete {
+    NSString *url = @"https://api-adservices.apple.com/api/v1/";
+    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
+    request.HTTPMethod = @"POST";
+    [request addValue:@"text/plain" forHTTPHeaderField:@"Content-Type"];
+    request.HTTPBody = [token dataUsingEncoding:NSUTF8StringEncoding];
+
+    NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(
+            NSData *_Nullable data, NSURLResponse *_Nullable response, NSError *_Nullable error) {
+        if (error) {
+            dispatch_async(dispatch_get_main_queue(), ^{
+                if (complete) complete(nil, error);
+            });
+            return;
+        }
+
+        NSError *jsonError;
+        NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonError];
+
+        dispatch_async(dispatch_get_main_queue(), ^{
+            if (complete) {
+                complete(result ?: @{}, jsonError);
+            }
+        });
+    }];
+
+    [dataTask resume];
+}
+
+@end

+ 4 - 0
plugins/flutter_asa_attribution-master/ios/Classes/FlutterAsaAttributionPlugin.h

@@ -0,0 +1,4 @@
+#import <Flutter/Flutter.h>
+
+@interface FlutterAsaAttributionPlugin : NSObject <FlutterPlugin>
+@end

+ 32 - 0
plugins/flutter_asa_attribution-master/ios/Classes/FlutterAsaAttributionPlugin.m

@@ -0,0 +1,32 @@
+#import "FlutterAsaAttributionPlugin.h"
+#import <iAd/iAd.h>
+#import <AdServices/AdServices.h>
+#import <AppTrackingTransparency/AppTrackingTransparency.h>
+#import "AsaTool.h"
+
+@implementation FlutterAsaAttributionPlugin
++ (void)registerWithRegistrar:(NSObject <FlutterPluginRegistrar> *)registrar {
+    FlutterMethodChannel *channel = [FlutterMethodChannel methodChannelWithName:@"lianshumin.github.io/flutter_asa_attribution"
+                                                                binaryMessenger:[registrar messenger]];
+    FlutterAsaAttributionPlugin *instance = [[FlutterAsaAttributionPlugin alloc] init];
+    [registrar addMethodCallDelegate:instance channel:channel];
+}
+
+- (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {
+    if ([@"requestAttributionDetails" isEqualToString:call.method]) {
+        [AsaTool requestAttributionWithComplete:^(NSDictionary *_Nonnull data, NSError *_Nonnull
+                                                  error) {
+            if (data) {
+                result(data);
+            } else {
+                result([FlutterError errorWithCode:@"FAILED" message:error.localizedFailureReason details:nil]);
+            }
+        }];
+    } else if ([@"attributionToken" isEqualToString:call.method]) {
+        result([AsaTool attributionToken]);
+    } else {
+        result(FlutterMethodNotImplemented);
+    }
+}
+
+@end

+ 23 - 0
plugins/flutter_asa_attribution-master/ios/flutter_asa_attribution.podspec

@@ -0,0 +1,23 @@
+#
+# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
+# Run `pod lib lint flutter_asa_attribution.podspec` to validate before publishing.
+#
+Pod::Spec.new do |s|
+  s.name             = 'flutter_asa_attribution'
+  s.version          = '0.0.1'
+  s.summary          = 'A apple search ads attribution plugin for flutter'
+  s.description      = <<-DESC
+A apple search ads attribution plugin for flutter
+                       DESC
+  s.homepage         = 'http://example.com'
+  s.license          = { :file => '../LICENSE' }
+  s.author           = { 'Your Company' => 'email@example.com' }
+  s.source           = { :path => '.' }
+  s.source_files = 'Classes/**/*'
+  s.public_header_files = 'Classes/**/*.h'
+  s.dependency 'Flutter'
+  s.platform = :ios, '8.0'
+
+  # Flutter.framework does not contain a i386 slice.
+  s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
+end

+ 1 - 0
plugins/flutter_asa_attribution-master/lib/flutter_asa_attribution.dart

@@ -0,0 +1 @@
+export 'src/flutter_asa_attribution.dart';

+ 36 - 0
plugins/flutter_asa_attribution-master/lib/src/flutter_asa_attribution.dart

@@ -0,0 +1,36 @@
+import 'dart:async';
+import 'dart:io';
+
+import 'package:flutter/services.dart';
+
+class FlutterAsaAttribution {
+  FlutterAsaAttribution._();
+
+  static FlutterAsaAttribution get instance => _instance;
+
+  static final FlutterAsaAttribution _instance = FlutterAsaAttribution._();
+
+  static const MethodChannel _channel =
+      const MethodChannel('lianshumin.github.io/flutter_asa_attribution');
+
+  Future<Map<String, dynamic>?> requestAttributionDetails() async {
+    assert(Platform.isIOS);
+    try {
+      final Map? result = await _channel.invokeMethod<Map>(
+        'requestAttributionDetails',
+      );
+      return result?.cast<String, dynamic>() ?? <String, dynamic>{};
+    } on PlatformException catch (e) {
+      throw PlatformException(
+        code: e.code,
+        message: e.message,
+      );
+    }
+  }
+
+  Future<String?> attributionToken() {
+    return _channel.invokeMethod(
+      'attributionToken',
+    );
+  }
+}

+ 189 - 0
plugins/flutter_asa_attribution-master/pubspec.lock

@@ -0,0 +1,189 @@
+# Generated by pub
+# See https://dart.dev/tools/pub/glossary#lockfile
+packages:
+  async:
+    dependency: transitive
+    description:
+      name: async
+      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.11.0"
+  boolean_selector:
+    dependency: transitive
+    description:
+      name: boolean_selector
+      sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.1"
+  characters:
+    dependency: transitive
+    description:
+      name: characters
+      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.3.0"
+  clock:
+    dependency: transitive
+    description:
+      name: clock
+      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.1.1"
+  collection:
+    dependency: transitive
+    description:
+      name: collection
+      sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.18.0"
+  fake_async:
+    dependency: transitive
+    description:
+      name: fake_async
+      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.3.1"
+  flutter:
+    dependency: "direct main"
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  flutter_test:
+    dependency: "direct dev"
+    description: flutter
+    source: sdk
+    version: "0.0.0"
+  leak_tracker:
+    dependency: transitive
+    description:
+      name: leak_tracker
+      sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "10.0.0"
+  leak_tracker_flutter_testing:
+    dependency: transitive
+    description:
+      name: leak_tracker_flutter_testing
+      sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.1"
+  leak_tracker_testing:
+    dependency: transitive
+    description:
+      name: leak_tracker_testing
+      sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.0.1"
+  matcher:
+    dependency: transitive
+    description:
+      name: matcher
+      sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.12.16+1"
+  material_color_utilities:
+    dependency: transitive
+    description:
+      name: material_color_utilities
+      sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.8.0"
+  meta:
+    dependency: transitive
+    description:
+      name: meta
+      sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.11.0"
+  path:
+    dependency: transitive
+    description:
+      name: path
+      sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.9.0"
+  sky_engine:
+    dependency: transitive
+    description: flutter
+    source: sdk
+    version: "0.0.99"
+  source_span:
+    dependency: transitive
+    description:
+      name: source_span
+      sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.10.0"
+  stack_trace:
+    dependency: transitive
+    description:
+      name: stack_trace
+      sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.11.1"
+  stream_channel:
+    dependency: transitive
+    description:
+      name: stream_channel
+      sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.2"
+  string_scanner:
+    dependency: transitive
+    description:
+      name: string_scanner
+      sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.2.0"
+  term_glyph:
+    dependency: transitive
+    description:
+      name: term_glyph
+      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.2.1"
+  test_api:
+    dependency: transitive
+    description:
+      name: test_api
+      sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "0.6.1"
+  vector_math:
+    dependency: transitive
+    description:
+      name: vector_math
+      sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "2.1.4"
+  vm_service:
+    dependency: transitive
+    description:
+      name: vm_service
+      sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "13.0.0"
+sdks:
+  dart: ">=3.2.0-0 <4.0.0"
+  flutter: ">=1.20.0"

+ 65 - 0
plugins/flutter_asa_attribution-master/pubspec.yaml

@@ -0,0 +1,65 @@
+name: flutter_asa_attribution
+description: A apple search ads attribution plugin for flutter
+version: 0.0.4
+# author: lianshumin <3073303@qq.com>
+homepage: https://github.com/lianshumin/flutter_asa_attribution
+
+environment:
+  sdk: ">=2.12.0 <4.0.0"
+  flutter: ">=1.20.0"
+
+dependencies:
+  flutter:
+    sdk: flutter
+
+dev_dependencies:
+  flutter_test:
+    sdk: flutter
+
+# For information on the generic Dart part of this file, see the
+# following page: https://dart.dev/tools/pub/pubspec
+
+# The following section is specific to Flutter.
+flutter:
+  # This section identifies this Flutter project as a plugin project.
+  # The 'pluginClass' and Android 'package' identifiers should not ordinarily
+  # be modified. They are used by the tooling to maintain consistency when
+  # adding or updating assets for this project.
+  plugin:
+    platforms:
+      android:
+        package: com.imlian.flutter_asa_attribution
+        pluginClass: FlutterAsaAttributionPlugin
+      ios:
+        pluginClass: FlutterAsaAttributionPlugin
+
+  # To add assets to your plugin package, add an assets section, like this:
+  # assets:
+  #   - images/a_dot_burr.jpeg
+  #   - images/a_dot_ham.jpeg
+  #
+  # For details regarding assets in packages, see
+  # https://flutter.dev/assets-and-images/#from-packages
+  #
+  # An image asset can refer to one or more resolution-specific "variants", see
+  # https://flutter.dev/assets-and-images/#resolution-aware.
+
+  # To add custom fonts to your plugin package, add a fonts section here,
+  # in this "flutter" section. Each entry in this list should have a
+  # "family" key with the font family name, and a "fonts" key with a
+  # list giving the asset and other descriptors for the font. For
+  # example:
+  # fonts:
+  #   - family: Schyler
+  #     fonts:
+  #       - asset: fonts/Schyler-Regular.ttf
+  #       - asset: fonts/Schyler-Italic.ttf
+  #         style: italic
+  #   - family: Trajan Pro
+  #     fonts:
+  #       - asset: fonts/TrajanPro.ttf
+  #       - asset: fonts/TrajanPro_Bold.ttf
+  #         weight: 700
+  #
+  # For details regarding fonts in packages, see
+  # https://flutter.dev/custom-fonts/#from-packages

+ 49 - 50
pubspec.lock

@@ -136,10 +136,10 @@ packages:
     dependency: transitive
     description:
       name: build
-      sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0
+      sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.4.2"
+    version: "2.5.4"
   build_config:
     dependency: transitive
     description:
@@ -160,26 +160,26 @@ packages:
     dependency: transitive
     description:
       name: build_resolvers
-      sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0
+      sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.4.4"
+    version: "2.5.4"
   build_runner:
     dependency: "direct dev"
     description:
       name: build_runner
-      sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d"
+      sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.4.13"
+    version: "2.5.4"
   build_runner_core:
     dependency: transitive
     description:
       name: build_runner_core
-      sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0
+      sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "7.3.2"
+    version: "9.1.2"
   built_collection:
     dependency: transitive
     description:
@@ -312,10 +312,10 @@ packages:
     dependency: transitive
     description:
       name: dart_style
-      sha256: "7306ab8a2359a48d22310ad823521d723acfed60ee1f7e37388e8986853b6820"
+      sha256: "27eb0ae77836989a3bc541ce55595e8ceee0992807f14511552a898ddd0d88ac"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.3.8"
+    version: "3.0.1"
   dartx:
     dependency: transitive
     description:
@@ -336,10 +336,10 @@ packages:
     dependency: "direct main"
     description:
       name: device_info_plus
-      sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
+      sha256: "98f28b42168cc509abc92f88518882fd58061ea372d7999aecc424345c7bff6a"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "10.1.2"
+    version: "11.5.0"
   device_info_plus_platform_interface:
     dependency: transitive
     description:
@@ -352,10 +352,10 @@ packages:
     dependency: "direct main"
     description:
       name: dio
-      sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260"
+      sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "5.7.0"
+    version: "5.9.0"
   dio_web_adapter:
     dependency: transitive
     description:
@@ -428,11 +428,10 @@ packages:
   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"
+      path: "plugins/flutter_asa_attribution-master"
+      relative: true
+    source: path
+    version: "0.0.4"
   flutter_bugly:
     dependency: "direct main"
     description:
@@ -469,18 +468,18 @@ packages:
     dependency: transitive
     description:
       name: flutter_gen_core
-      sha256: "53890b653738f34363d9f0d40f82104c261716bd551d3ba65f648770b6764c21"
+      sha256: eda54fdc5de08e7eeea663eb8442aafc8660b5a13fda4e0c9e572c64e50195fb
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "5.9.0"
+    version: "5.11.0"
   flutter_gen_runner:
     dependency: "direct dev"
     description:
       name: flutter_gen_runner
-      sha256: de70b42eb5329f712c8b041069d081ad5fb5109f32d6d1ea9c1b39596786215d
+      sha256: "669bf8b7a9b4acbdcb7fcc5e12bf638aca19acedf43341714cbca3bf3a219521"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "5.9.0"
+    version: "5.11.0"
   flutter_inappwebview:
     dependency: "direct main"
     description:
@@ -577,10 +576,10 @@ packages:
     dependency: "direct main"
     description:
       name: flutter_smart_dialog
-      sha256: "3d376ba47f64391cc657f706815b32dd6ff2e0f80553a5c9f33b812ba7c59462"
+      sha256: "0852df132cb03fd8fc5144eb404c31eb7eb50c22aecb1cc2504f2f598090d756"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "4.9.8"
+    version: "4.9.8+9"
   flutter_test:
     dependency: "direct dev"
     description: flutter
@@ -651,11 +650,11 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: "v0.0.2"
-      resolved-ref: c82b1570eb8f80b3746df1c6e60e52a233fc7e5e
+      ref: "v5.0.3+0"
+      resolved-ref: "7d93a84a66bd15ac1b32dffe3cdb5852daa12b9b"
       url: "http://git.atmob.com:28999/Atmob-Flutter/gravity_engine.git"
     source: git
-    version: "0.0.2"
+    version: "5.0.3+0"
   hashcodes:
     dependency: transitive
     description:
@@ -772,10 +771,10 @@ packages:
     dependency: "direct dev"
     description:
       name: injectable_generator
-      sha256: af403d76c7b18b4217335e0075e950cd0579fd7f8d7bd47ee7c85ada31680ba1
+      sha256: b04673a4c88b3a848c0c77bf58b8309f9b9e064d9fe1df5450c8ee1675eaea1a
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.6.2"
+    version: "2.7.0"
   internet_connection_checker:
     dependency: "direct main"
     description:
@@ -820,10 +819,10 @@ packages:
     dependency: "direct dev"
     description:
       name: json_serializable
-      sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c
+      sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "6.9.0"
+    version: "6.9.5"
   leak_tracker:
     dependency: transitive
     description:
@@ -1034,10 +1033,10 @@ packages:
     dependency: "direct main"
     description:
       name: package_info_plus
-      sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce
+      sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "8.1.1"
+    version: "8.3.1"
   package_info_plus_platform_interface:
     dependency: transitive
     description:
@@ -1114,18 +1113,18 @@ packages:
     dependency: "direct main"
     description:
       name: permission_handler
-      sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
+      sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "11.3.1"
+    version: "12.0.1"
   permission_handler_android:
     dependency: transitive
     description:
       name: permission_handler_android
-      sha256: d3971dcdd76182a0c198c096b5db2f0884b0d4196723d21a866fc4cdea057ebc
+      sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "12.1.0"
+    version: "13.0.1"
   permission_handler_apple:
     dependency: transitive
     description:
@@ -1210,10 +1209,10 @@ packages:
     dependency: transitive
     description:
       name: protobuf
-      sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d"
+      sha256: de9c9eb2c33f8e933a42932fe1dc504800ca45ebc3d673e6ed7f39754ee4053e
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "3.1.0"
+    version: "4.2.0"
   pub_semver:
     dependency: transitive
     description:
@@ -1274,18 +1273,18 @@ packages:
     dependency: "direct main"
     description:
       name: retrofit
-      sha256: "3c9885ef3dbc5dc4b3fb0a40c972ab52e4dad04d52dac9bba24dfa76cf100451"
+      sha256: "84d70114a5b6bae5f4c1302335f9cb610ebeb1b02023d5e7e87697aaff52926a"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "4.4.1"
+    version: "4.6.0"
   retrofit_generator:
     dependency: "direct dev"
     description:
       name: retrofit_generator
-      sha256: f76fdb2b66854690d5a332e7364d7561fc9dc2b3c924d7956ab8070495e21f6a
+      sha256: "65d28d3a7b4db485f1c73fee8ee32f552ef23ee4ecb68ba491f39d80b73bdcbf"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "9.1.5"
+    version: "9.2.0"
   rxdart:
     dependency: transitive
     description:
@@ -1335,10 +1334,10 @@ packages:
     dependency: transitive
     description:
       name: source_gen
-      sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832"
+      sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.5.0"
+    version: "2.0.0"
   source_helper:
     dependency: transitive
     description:
@@ -1504,10 +1503,10 @@ packages:
     dependency: "direct main"
     description:
       name: url_launcher
-      sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603"
+      sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "6.3.1"
+    version: "6.3.2"
   url_launcher_android:
     dependency: transitive
     description:
@@ -1704,10 +1703,10 @@ packages:
     dependency: transitive
     description:
       name: win32_registry
-      sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
+      sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae"
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.5"
+    version: "2.1.0"
   xdg_directories:
     dependency: transitive
     description:

+ 2 - 1
pubspec.yaml

@@ -162,7 +162,8 @@ dependencies:
   quickpass_yidun_flutter: ^1.5.6
 
   #asa苹果搜索广告归因插件
-  flutter_asa_attribution: ^1.0.0
+  flutter_asa_attribution:
+    path: plugins/flutter_asa_attribution-master
 
   #MD5
   crypto: ^3.0.3