├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── android ├── .gitignore ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── pedia │ └── flutterumenganalytics │ └── FlutterUmengAnalyticsPlugin.java ├── example ├── .gitignore ├── .metadata ├── README.md ├── android.iml ├── android │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── pedia │ │ │ │ └── flutterumenganalyticsexample │ │ │ │ └── MainActivity.java │ │ │ └── res │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ └── values │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── flutter_umeng_analytics_example.iml ├── flutter_umeng_analytics_example_android.iml ├── ios │ ├── .gitignore │ ├── Flutter │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── Runner-2 │ │ ├── DistributionSummary.plist │ │ ├── ExportOptions.plist │ │ ├── Packaging.log │ │ └── Runner.ipa │ ├── Runner.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace │ │ └── contents.xcworkspacedata │ └── Runner │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Info.plist │ │ └── main.m ├── lib │ └── main.dart └── pubspec.yaml ├── flutter_umeng_analytics.iml ├── flutter_umeng_analytics_android.iml ├── ios ├── .gitignore ├── Assets │ └── .gitkeep ├── Classes │ ├── FlutterUmengAnalyticsPlugin.h │ └── FlutterUmengAnalyticsPlugin.m └── flutter_umeng_analytics.podspec ├── lib └── flutter_umeng_analytics.dart └── pubspec.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .atom/ 3 | .idea 4 | .packages 5 | .pub/ 6 | build/ 7 | ios/.generated/ 8 | packages 9 | pubspec.lock 10 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [0.0.1] 2 | 3 | * initial release. 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2017 Pedia 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # flutter_umeng_analytics 2 | 3 | Flutter plugin for [umeng:analytics](http://mobile.umeng.com/analytics) 4 | 5 | ## Usage 6 | 7 | ### Init 8 | 9 | ```dart 10 | import 'dart:io'; 11 | 12 | if (Platform.isAndroid) 13 | UMengAnalytics.init('Android AppKey', 14 | encrypt: true, reportCrash: false); 15 | else if (Platform.isIOS) 16 | UMengAnalytics.init('iOS AppKey', 17 | encrypt: true, reportCrash: false); 18 | ``` 19 | 20 | ### Log page 21 | 22 | ```dart 23 | initState() { 24 | super.initState(); 25 | 26 | UMengAnalytics.beginPageView("home"); 27 | } 28 | 29 | dispose() { 30 | super.dispose(); 31 | 32 | UMengAnalytics.endPageView("home"); 33 | } 34 | 35 | someFunction() { 36 | UMengAnalytics.logEvent("some click"); 37 | } 38 | ``` 39 | 40 | ## Getting Started 41 | 42 | For help getting started with Flutter, view our online 43 | [documentation](http://flutter.io/). 44 | 45 | For help on editing plugin code, view the [documentation](https://flutter.io/platform-plugins/#edit-code). -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | group 'pedia.flutterumenganalytics' 2 | version '1.0-SNAPSHOT' 3 | 4 | buildscript { 5 | repositories { 6 | google() 7 | jcenter() 8 | maven { url 'https://dl.bintray.com/umsdk/release' } 9 | } 10 | 11 | dependencies { 12 | classpath 'com.android.tools.build:gradle:3.3.2' 13 | } 14 | } 15 | 16 | rootProject.allprojects { 17 | repositories { 18 | google() 19 | jcenter() 20 | maven { url 'https://dl.bintray.com/umsdk/release' } 21 | } 22 | } 23 | 24 | apply plugin: 'com.android.library' 25 | 26 | android { 27 | compileSdkVersion 28 28 | 29 | defaultConfig { 30 | minSdkVersion 16 31 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 32 | } 33 | lintOptions { 34 | disable 'InvalidPackage' 35 | } 36 | 37 | dependencies { 38 | api 'com.umeng.umsdk:analytics:8.0.2' 39 | api 'com.umeng.umsdk:common:2.0.2' 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | ## Project-wide Gradle settings. 2 | # 3 | # For more details on how to configure your build environment visit 4 | # http://www.gradle.org/docs/current/userguide/build_environment.html 5 | # 6 | # Specifies the JVM arguments used for the daemon process. 7 | # The setting is particularly useful for tweaking memory settings. 8 | # Default value: -Xmx1024m -XX:MaxPermSize=256m 9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 10 | # 11 | # When configured, Gradle will run in incubating parallel mode. 12 | # This option should only be used with decoupled projects. More details, visit 13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 14 | # org.gradle.parallel=true 15 | #Fri Jan 19 10:42:27 CST 2018 16 | systemProp.http.proxyHost=127.0.0.1 17 | systemProp.http.nonProxyHosts=10.* 18 | org.gradle.jvmargs=-Xmx1536M 19 | systemProp.http.proxyPort=1080 20 | android.useAndroidX=true 21 | android.enableJetifier=true 22 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Apr 22 14:22:24 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip 7 | -------------------------------------------------------------------------------- /android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'flutter_umeng_analytics' 2 | -------------------------------------------------------------------------------- /android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /android/src/main/java/pedia/flutterumenganalytics/FlutterUmengAnalyticsPlugin.java: -------------------------------------------------------------------------------- 1 | package pedia.flutterumenganalytics; 2 | 3 | import android.app.Activity; 4 | import android.content.Context; 5 | import android.os.Build; 6 | 7 | import com.umeng.analytics.MobclickAgent; 8 | import com.umeng.commonsdk.UMConfigure; 9 | 10 | import io.flutter.plugin.common.MethodCall; 11 | import io.flutter.plugin.common.MethodChannel; 12 | import io.flutter.plugin.common.MethodChannel.MethodCallHandler; 13 | import io.flutter.plugin.common.MethodChannel.Result; 14 | import io.flutter.plugin.common.PluginRegistry.Registrar; 15 | 16 | /** 17 | * FlutterUmengAnalyticsPlugin 18 | */ 19 | public class FlutterUmengAnalyticsPlugin implements MethodCallHandler { 20 | private Activity activity; 21 | 22 | /** 23 | * Plugin registration. 24 | */ 25 | public static void registerWith(Registrar registrar) { 26 | final MethodChannel channel = new MethodChannel(registrar.messenger(), "umeng_analytics_flutter"); 27 | channel.setMethodCallHandler(new FlutterUmengAnalyticsPlugin(registrar.activity())); 28 | } 29 | 30 | private FlutterUmengAnalyticsPlugin(Activity activity) { 31 | this.activity = activity; 32 | } 33 | 34 | @Override 35 | public void onMethodCall(MethodCall call, Result result) { 36 | if (call.method.equals("init")) { 37 | init(call, result); 38 | } else if (call.method.equals("beginPageView")) { 39 | beginPageView(call, result); 40 | } else if (call.method.equals("endPageView")) { 41 | endPageView(call, result); 42 | } else if (call.method.equals("loginPageView")) { 43 | loginPageView(call, result); 44 | } else if (call.method.equals("eventCounts")) { 45 | eventCounts(call, result); 46 | } else { 47 | result.notImplemented(); 48 | } 49 | } 50 | 51 | public void init(MethodCall call, Result result) { 52 | // 设置组件化的Log开关,参数默认为false,如需查看LOG设置为true 53 | UMConfigure.setLogEnabled(true); 54 | /** 55 | * 初始化common库 参数1:上下文,不能为空 参数2:【友盟+】Appkey名称 参数3:【友盟+】Channel名称 56 | * 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机 57 | * 参数5:Push推送业务的secret 58 | */ 59 | UMConfigure.init(activity, (String) call.argument("key"), "Umeng", UMConfigure.DEVICE_TYPE_PHONE, null); 60 | // 设置日志加密 参数:boolean 默认为false(不加密) 61 | UMConfigure.setEncryptEnabled((Boolean) call.argument("encrypt")); 62 | 63 | double interval = call.argument("interval"); 64 | if (call.argument("interval") != null) { 65 | // Session间隔时长,单位是毫秒,默认Session间隔时间是30秒,一般情况下不用修改此值 66 | MobclickAgent.setSessionContinueMillis(Double.valueOf(interval).longValue()); 67 | } else { 68 | // Session间隔时长,单位是毫秒,默认Session间隔时间是30秒,一般情况下不用修改此值 69 | MobclickAgent.setSessionContinueMillis(30000L); 70 | } 71 | 72 | 73 | // true表示打开错误统计功能,false表示关闭 默认为打开 74 | MobclickAgent.setCatchUncaughtExceptions((Boolean) call.argument("reportCrash")); 75 | 76 | // 页面采集的两种模式:AUTO和MANUAL,Android 4.0及以上版本使用AUTO,4.0以下使用MANUAL 77 | int results = call.argument("mode"); 78 | if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 79 | if (results == 0) { 80 | // 大于等于4.4选用AUTO页面采集模式 81 | MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO); 82 | } 83 | } else if (results == 1) { 84 | MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.MANUAL); 85 | } 86 | result.success(true); 87 | } 88 | 89 | // 打开页面时进行统计 90 | public void beginPageView(MethodCall call, Result result) { 91 | MobclickAgent.onPageStart((String) call.argument("name")); 92 | MobclickAgent.onResume(activity); 93 | result.success(null); 94 | } 95 | 96 | // 关闭页面时结束统计 97 | public void endPageView(MethodCall call, Result result) { 98 | MobclickAgent.onPageEnd((String) call.argument("id")); 99 | MobclickAgent.onPause(activity); 100 | result.success(null); 101 | } 102 | 103 | // 登陆统计 104 | public void loginPageView(MethodCall call, Result result) { 105 | MobclickAgent.onProfileSignIn((String) call.argument("id")); 106 | // Session间隔时长,单位是毫秒,默认Session间隔时间是30秒,一般情况下不用修改此值 107 | MobclickAgent.setSessionContinueMillis((Long) call.argument("interval")); 108 | } 109 | 110 | /** 111 | * 计数事件统计 例如:统计微博应用中”转发”事件发生的次数,那么在转发的函数里调用该函数 112 | * 113 | * @param call 114 | * @param result 115 | */ 116 | public void eventCounts(MethodCall call, Result result) { 117 | /** 118 | * 参数1: context 当前宿主进程的ApplicationContext上下文 参数2: eventId 为当前统计的事件ID 参数3: label 119 | * 为事件的标签属性 120 | */ 121 | MobclickAgent.onEvent((Context) activity, (String) call.argument("eventId"), (String) call.argument("label")); 122 | result.success(null); 123 | } 124 | 125 | } 126 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .atom/ 3 | .idea 4 | .packages 5 | .pub/ 6 | build/ 7 | ios/.generated/ 8 | packages 9 | pubspec.lock 10 | .flutter-plugins 11 | -------------------------------------------------------------------------------- /example/.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 235b64ed2fb6150ecf08bde5f08dcd450c5a96b4 8 | channel: master 9 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | # flutter_umeng_analytics_example 2 | 3 | Demonstrates how to use the flutter_umeng_analytics plugin. 4 | 5 | ## Getting Started 6 | 7 | For help getting started with Flutter, view our online 8 | [documentation](http://flutter.io/). 9 | -------------------------------------------------------------------------------- /example/android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /example/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | GeneratedPluginRegistrant.java 10 | -------------------------------------------------------------------------------- /example/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withInputStream { stream -> 5 | localProperties.load(stream) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | apply plugin: 'com.android.application' 15 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 16 | 17 | android { 18 | compileSdkVersion 26 19 | buildToolsVersion '26.0.3' 20 | 21 | lintOptions { 22 | disable 'InvalidPackage' 23 | } 24 | 25 | defaultConfig { 26 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 27 | applicationId "pedia.flutterumenganalyticsexample" 28 | minSdkVersion 16 29 | targetSdkVersion 26 30 | versionCode 1 31 | versionName "1.0" 32 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 33 | } 34 | 35 | buildTypes { 36 | release { 37 | // TODO: Add your own signing config for the release build. 38 | // Signing with the debug keys for now, so `flutter run --release` works. 39 | signingConfig signingConfigs.debug 40 | } 41 | } 42 | } 43 | 44 | flutter { 45 | source '../..' 46 | } 47 | 48 | dependencies { 49 | testImplementation 'junit:junit:4.12' 50 | androidTestImplementation 'com.android.support.test:runner:1.0.1' 51 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' 52 | } 53 | -------------------------------------------------------------------------------- /example/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 15 | 19 | 26 | 30 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /example/android/app/src/main/java/pedia/flutterumenganalyticsexample/MainActivity.java: -------------------------------------------------------------------------------- 1 | package pedia.flutterumenganalyticsexample; 2 | 3 | import android.os.Bundle; 4 | import io.flutter.app.FlutterActivity; 5 | import io.flutter.plugins.GeneratedPluginRegistrant; 6 | 7 | public class MainActivity extends FlutterActivity { 8 | @Override 9 | protected void onCreate(Bundle savedInstanceState) { 10 | super.onCreate(savedInstanceState); 11 | GeneratedPluginRegistrant.registerWith(this); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /example/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /example/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:3.0.1' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | google() 15 | jcenter() 16 | } 17 | } 18 | 19 | rootProject.buildDir = '../build' 20 | subprojects { 21 | project.buildDir = "${rootProject.buildDir}/${project.name}" 22 | project.evaluationDependsOn(':app') 23 | } 24 | 25 | task clean(type: Delete) { 26 | delete rootProject.buildDir 27 | } 28 | -------------------------------------------------------------------------------- /example/android/gradle.properties: -------------------------------------------------------------------------------- 1 | ## Project-wide Gradle settings. 2 | # 3 | # For more details on how to configure your build environment visit 4 | # http://www.gradle.org/docs/current/userguide/build_environment.html 5 | # 6 | # Specifies the JVM arguments used for the daemon process. 7 | # The setting is particularly useful for tweaking memory settings. 8 | # Default value: -Xmx1024m -XX:MaxPermSize=256m 9 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 10 | # 11 | # When configured, Gradle will run in incubating parallel mode. 12 | # This option should only be used with decoupled projects. More details, visit 13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 14 | # org.gradle.parallel=true 15 | #Fri Jan 19 11:22:42 CST 2018 16 | systemProp.http.proxyHost=127.0.0.1 17 | systemProp.http.nonProxyHosts=10.* 18 | org.gradle.jvmargs=-Xmx1536M 19 | systemProp.http.proxyPort=1080 20 | -------------------------------------------------------------------------------- /example/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /example/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /example/android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /example/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /example/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 4 | 5 | def plugins = new Properties() 6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 7 | if (pluginsFile.exists()) { 8 | pluginsFile.withInputStream { stream -> plugins.load(stream) } 9 | } 10 | 11 | plugins.each { name, path -> 12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 13 | include ":$name" 14 | project(":$name").projectDir = pluginDirectory 15 | } 16 | -------------------------------------------------------------------------------- /example/flutter_umeng_analytics_example.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /example/flutter_umeng_analytics_example_android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /example/ios/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .vagrant/ 3 | .sconsign.dblite 4 | .svn/ 5 | 6 | .DS_Store 7 | *.swp 8 | profile 9 | 10 | DerivedData/ 11 | build/ 12 | GeneratedPluginRegistrant.h 13 | GeneratedPluginRegistrant.m 14 | 15 | *.pbxuser 16 | *.mode1v3 17 | *.mode2v3 18 | *.perspectivev3 19 | 20 | !default.pbxuser 21 | !default.mode1v3 22 | !default.mode2v3 23 | !default.perspectivev3 24 | 25 | xcuserdata 26 | 27 | *.moved-aside 28 | 29 | *.pyc 30 | *sync/ 31 | Icon? 32 | .tags* 33 | 34 | /Flutter/app.flx 35 | /Flutter/app.zip 36 | /Flutter/App.framework 37 | /Flutter/Flutter.framework 38 | /Flutter/Generated.xcconfig 39 | /ServiceDefinitions.json 40 | 41 | Pods/ 42 | -------------------------------------------------------------------------------- /example/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | UIRequiredDeviceCapabilities 24 | 25 | arm64 26 | 27 | MinimumOSVersion 28 | 8.0 29 | 30 | 31 | -------------------------------------------------------------------------------- /example/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /example/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /example/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | if ENV['FLUTTER_FRAMEWORK_DIR'] == nil 5 | abort('Please set FLUTTER_FRAMEWORK_DIR to the directory containing Flutter.framework') 6 | end 7 | 8 | target 'Runner' do 9 | # Pods for Runner 10 | 11 | # Flutter Pods 12 | pod 'Flutter', :path => ENV['FLUTTER_FRAMEWORK_DIR'] 13 | 14 | if File.exists? '../.flutter-plugins' 15 | flutter_root = File.expand_path('..') 16 | File.foreach('../.flutter-plugins') { |line| 17 | plugin = line.split(pattern='=') 18 | if plugin.length == 2 19 | name = plugin[0].strip() 20 | path = plugin[1].strip() 21 | resolved_path = File.expand_path("#{path}/ios", flutter_root) 22 | pod name, :path => resolved_path 23 | else 24 | puts "Invalid plugin specification: #{line}" 25 | end 26 | } 27 | end 28 | end 29 | 30 | post_install do |installer| 31 | installer.pods_project.targets.each do |target| 32 | target.build_configurations.each do |config| 33 | config.build_settings['ENABLE_BITCODE'] = 'NO' 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /example/ios/Runner-2/DistributionSummary.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Runner.ipa 6 | 7 | 8 | architectures 9 | 10 | arm64 11 | 12 | certificate 13 | 14 | SHA1 15 | 3662617ED2C80C5D8D8882078777641619470285 16 | dateExpires 17 | 17/5/2018 18 | type 19 | iOS Distribution 20 | 21 | embeddedBinaries 22 | 23 | 24 | architectures 25 | 26 | arm64 27 | 28 | certificate 29 | 30 | SHA1 31 | 3662617ED2C80C5D8D8882078777641619470285 32 | dateExpires 33 | 17/5/2018 34 | type 35 | iOS Distribution 36 | 37 | name 38 | App.framework 39 | symbols 40 | 41 | team 42 | 43 | id 44 | 6552Q2S52G 45 | name 46 | Chengyu Ji 47 | 48 | 49 | 50 | architectures 51 | 52 | arm64 53 | 54 | certificate 55 | 56 | SHA1 57 | 3662617ED2C80C5D8D8882078777641619470285 58 | dateExpires 59 | 17/5/2018 60 | type 61 | iOS Distribution 62 | 63 | name 64 | Flutter.framework 65 | symbols 66 | 67 | team 68 | 69 | id 70 | 6552Q2S52G 71 | name 72 | Chengyu Ji 73 | 74 | 75 | 76 | entitlements 77 | 78 | application-identifier 79 | 6552Q2S52G.pedia.offer 80 | beta-reports-active 81 | 82 | com.apple.developer.team-identifier 83 | 6552Q2S52G 84 | get-task-allow 85 | 86 | keychain-access-groups 87 | 88 | 6552Q2S52G.pedia.offer 89 | 90 | 91 | name 92 | Runner.app 93 | profile 94 | 95 | UUID 96 | 220aa575-d55b-424e-8037-ef76804e861d 97 | name 98 | iOS Team Store Provisioning Profile: pedia.offer 99 | 100 | symbols 101 | 102 | team 103 | 104 | id 105 | 6552Q2S52G 106 | name 107 | Chengyu Ji 108 | 109 | 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /example/ios/Runner-2/ExportOptions.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | method 6 | app-store 7 | signingStyle 8 | automatic 9 | stripSwiftSymbols 10 | 11 | uploadSymbols 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /example/ios/Runner-2/Packaging.log: -------------------------------------------------------------------------------- 1 | 2018-01-03 12:27:23 +0000 Initial pipeline context: 2 | Chain (11, self inclusive): 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 2018-01-03 12:27:23 +0000 Processing step: IDEDistributionCreateDestRootStep 16 | 2018-01-03 12:27:23 +0000 Processing step: IDEDistributionCopyItemStep 17 | 2018-01-03 12:27:23 +0000 Running /usr/bin/ditto '-V' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/Products/Applications/Runner.app' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app' 18 | 2018-01-03 12:27:23 +0000 >>> Copying /Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/Products/Applications/Runner.app 19 | 2018-01-03 12:27:23 +0000 copying file ./Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib ... 20 | 2018-01-03 12:27:23 +0000 2153 bytes for ./Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib 21 | copying file ./Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib ... 22 | 2018-01-03 12:27:23 +0000 832 bytes for ./Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib 23 | copying file ./Base.lproj/LaunchScreen.storyboardc/Info.plist ... 24 | 2018-01-03 12:27:24 +0000 258 bytes for ./Base.lproj/LaunchScreen.storyboardc/Info.plist 25 | 2018-01-03 12:27:24 +0000 copying file ./Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib ... 26 | 2018-01-03 12:27:24 +0000 923 bytes for ./Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib 27 | copying file ./Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib ... 28 | 2018-01-03 12:27:24 +0000 1790 bytes for ./Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib 29 | copying file ./Base.lproj/Main.storyboardc/Info.plist ... 30 | 2018-01-03 12:27:24 +0000 258 bytes for ./Base.lproj/Main.storyboardc/Info.plist 31 | 2018-01-03 12:27:24 +0000 copying file ./_CodeSignature/CodeResources ... 32 | 2018-01-03 12:27:24 +0000 16567 bytes for ./_CodeSignature/CodeResources 33 | 2018-01-03 12:27:24 +0000 copying file ./Generated.xcconfig ... 34 | 2018-01-03 12:27:24 +0000 453 bytes for ./Generated.xcconfig 35 | 2018-01-03 12:27:24 +0000 copying file ./app.flx ... 36 | 2018-01-03 12:27:24 +0000 277893 bytes for ./app.flx 37 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/AssetManifest.json ... 38 | 2018-01-03 12:27:24 +0000 561 bytes for ./flutter_assets/AssetManifest.json 39 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/images/woman-teacher.png ... 40 | 2018-01-03 12:27:24 +0000 69076 bytes for ./flutter_assets/images/woman-teacher.png 41 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/images/United States of America(USA).png ... 42 | 2018-01-03 12:27:24 +0000 1101 bytes for ./flutter_assets/images/United States of America(USA).png 43 | copying file ./flutter_assets/images/Hong Kong.png ... 44 | 2018-01-03 12:27:24 +0000 1748 bytes for ./flutter_assets/images/Hong Kong.png 45 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/images/Australia.png ... 46 | 2018-01-03 12:27:24 +0000 2623 bytes for ./flutter_assets/images/Australia.png 47 | copying file ./flutter_assets/images/United Kingdom(Great Britain).png ... 48 | 2018-01-03 12:27:24 +0000 4613 bytes for ./flutter_assets/images/United Kingdom(Great Britain).png 49 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/images/New Zealand.png ... 50 | 2018-01-03 12:27:24 +0000 2182 bytes for ./flutter_assets/images/New Zealand.png 51 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/FontManifest.json ... 52 | 2018-01-03 12:27:24 +0000 289 bytes for ./flutter_assets/FontManifest.json 53 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/LICENSE ... 54 | 2018-01-03 12:27:24 +0000 938029 bytes for ./flutter_assets/LICENSE 55 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf ... 56 | 97680 bytes for ./flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf 57 | copying file ./flutter_assets/fonts/MaterialIcons-Regular.ttf ... 58 | 2018-01-03 12:27:24 +0000 134640 bytes for ./flutter_assets/fonts/MaterialIcons-Regular.ttf 59 | 2018-01-03 12:27:24 +0000 copying file ./flutter_assets/data/claim.md ... 60 | 2018-01-03 12:27:24 +0000 2167 bytes for ./flutter_assets/data/claim.md 61 | copying file ./flutter_assets/data/privacy.md ... 62 | 2018-01-03 12:27:24 +0000 5606 bytes for ./flutter_assets/data/privacy.md 63 | 2018-01-03 12:27:24 +0000 copying file ./archived-expanded-entitlements.xcent ... 64 | 2018-01-03 12:27:24 +0000 360 bytes for ./archived-expanded-entitlements.xcent 65 | 2018-01-03 12:27:24 +0000 copying file ./AppIcon20x20@3x.png ... 66 | 2018-01-03 12:27:24 +0000 1883 bytes for ./AppIcon20x20@3x.png 67 | 2018-01-03 12:27:24 +0000 copying file ./Frameworks/Flutter.framework/icudtl.dat ... 68 | 2018-01-03 12:27:24 +0000 6623360 bytes for ./Frameworks/Flutter.framework/icudtl.dat 69 | 2018-01-03 12:27:24 +0000 copying file ./Frameworks/Flutter.framework/_CodeSignature/CodeResources ... 70 | 2488 bytes for ./Frameworks/Flutter.framework/_CodeSignature/CodeResources 71 | copying file ./Frameworks/Flutter.framework/Flutter ... 72 | 2018-01-03 12:27:24 +0000 12488608 bytes for ./Frameworks/Flutter.framework/Flutter 73 | copying file ./Frameworks/Flutter.framework/Info.plist ... 74 | 2018-01-03 12:27:24 +0000 867 bytes for ./Frameworks/Flutter.framework/Info.plist 75 | copying file ./Frameworks/App.framework/_CodeSignature/CodeResources ... 76 | 2202 bytes for ./Frameworks/App.framework/_CodeSignature/CodeResources 77 | copying file ./Frameworks/App.framework/App ... 78 | 2018-01-03 12:27:24 +0000 13754880 bytes for ./Frameworks/App.framework/App 79 | copying file ./Frameworks/App.framework/Info.plist ... 80 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /usr/bin/ditto exited with 0 81 | 82 | 2018-01-03 12:27:24 +0000 863 bytes for ./Frameworks/App.framework/Info.plist 83 | copying file ./Info.plist ... 84 | 1507 bytes for ./Info.plist 85 | copying file ./Runner ... 86 | 960192 bytes for ./Runner 87 | copying file ./AppIcon20x20@2x.png ... 88 | 1304 bytes for ./AppIcon20x20@2x.png 89 | copying file ./Debug.xcconfig ... 90 | 30 bytes for ./Debug.xcconfig 91 | copying file ./AppIcon29x29.png ... 92 | 1699 bytes for ./AppIcon29x29.png 93 | copying file ./AppIcon60x60@3x.png ... 94 | 13006 bytes for ./AppIcon60x60@3x.png 95 | copying file ./AppFrameworkInfo.plist ... 96 | 423 bytes for ./AppFrameworkInfo.plist 97 | copying file ./AppIcon29x29@3x.png ... 98 | 6179 bytes for ./AppIcon29x29@3x.png 99 | copying file ./PkgInfo ... 100 | 8 bytes for ./PkgInfo 101 | copying file ./Assets.car ... 102 | 253624 bytes for ./Assets.car 103 | copying file ./embedded.mobileprovision ... 104 | 10889 bytes for ./embedded.mobileprovision 105 | copying file ./AppIcon40x40@2x.png ... 106 | 5712 bytes for ./AppIcon40x40@2x.png 107 | copying file ./AppIcon40x40@3x.png ... 108 | 8668 bytes for ./AppIcon40x40@3x.png 109 | copying file ./AppIcon57x57.png ... 110 | 3829 bytes for ./AppIcon57x57.png 111 | copying file ./AppIcon57x57@2x.png ... 112 | 8300 bytes for ./AppIcon57x57@2x.png 113 | copying file ./AppIcon29x29@2x.png ... 114 | 4005 bytes for ./AppIcon29x29@2x.png 115 | copying file ./AppIcon60x60@2x.png ... 116 | 8668 bytes for ./AppIcon60x60@2x.png 117 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionEmbedProfileStep 118 | 119 | 2018-01-03 12:27:24 +0000 Skipping profile for item: '> 120 | 2018-01-03 12:27:24 +0000 Skipping profile for item: '> 121 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionItemRemovalStep 122 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionAppThinningPlistStep 123 | 2018-01-03 12:27:24 +0000 Skipping step: IDEDistributionAppThinningPlistStep because it said so 124 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionCompileBitcodeStep 125 | 2018-01-03 12:27:24 +0000 Skipping step: IDEDistributionCompileBitcodeStep because it said so 126 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionCodeSlimmingStep 127 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionCopyBCSymbolMapsStep 128 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionSymbolsStep 129 | 2018-01-03 12:27:24 +0000 Processing symbols for App.framework 130 | 2018-01-03 12:27:24 +0000 Running /usr/bin/rsync '-8aPhhE' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/App.framework' '--link-dest' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' 131 | 2018-01-03 12:27:24 +0000 building file list ... 132 | 2018-01-03 12:27:24 +0000 0 files... 2018-01-03 12:27:24 +0000 5 files to consider 133 | 2018-01-03 12:27:24 +0000 App.framework/ 134 | 2018-01-03 12:27:24 +0000 App.framework/_CodeSignature/ 135 | 2018-01-03 12:27:24 +0000 136 | sent 191 bytes received 32 bytes 446.00 bytes/sec 137 | total size is 13.12M speedup is 61694.82 138 | 2018-01-03 12:27:24 +0000 139 | 2018-01-03 12:27:24 +0000 140 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 141 | 142 | 2018-01-03 12:27:24 +0000 143 | 2018-01-03 12:27:24 +0000 144 | 2018-01-03 12:27:24 +0000 145 | 2018-01-03 12:27:24 +0000 146 | 2018-01-03 12:27:24 +0000 147 | 2018-01-03 12:27:24 +0000 148 | 2018-01-03 12:27:24 +0000 149 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /usr/bin/rsync exited with 0 150 | 151 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 152 | 153 | 2018-01-03 12:27:24 +0000 Running /usr/bin/rsync '-8aPhhE' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/dSYMs/' '--link-dest' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/dSYMs/' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' 154 | 2018-01-03 12:27:24 +0000 building file list ... 155 | 2018-01-03 12:27:24 +0000 0 files... 2018-01-03 12:27:24 +0000 7 files to consider 156 | 2018-01-03 12:27:24 +0000 ./ 157 | 2018-01-03 12:27:24 +0000 Runner.app.dSYM/ 158 | 2018-01-03 12:27:24 +0000 Runner.app.dSYM/Contents/ 159 | Runner.app.dSYM/Contents/Resources/ 160 | Runner.app.dSYM/Contents/Resources/DWARF/ 161 | 2018-01-03 12:27:24 +0000 162 | sent 221 bytes received 50 bytes 542.00 bytes/sec 163 | 2018-01-03 12:27:24 +0000 total size is 1.09M speedup is 4220.22 164 | 2018-01-03 12:27:24 +0000 165 | 2018-01-03 12:27:24 +0000 166 | 2018-01-03 12:27:24 +0000 167 | 2018-01-03 12:27:24 +0000 168 | 2018-01-03 12:27:24 +0000 169 | 2018-01-03 12:27:24 +0000 170 | 2018-01-03 12:27:24 +0000 171 | 2018-01-03 12:27:24 +0000 172 | 2018-01-03 12:27:24 +0000 173 | 2018-01-03 12:27:24 +0000 174 | 2018-01-03 12:27:24 +0000 175 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 176 | 177 | 2018-01-03 12:27:24 +0000 178 | 2018-01-03 12:27:24 +0000 /usr/bin/rsync exited with 0 179 | 2018-01-03 12:27:24 +0000 180 | 2018-01-03 12:27:24 +0000 181 | 2018-01-03 12:27:24 +0000 Running /Applications/Xcode.app/Contents/Developer/usr/bin/symbols '-noTextInSOD' '-noDaemon' '-arch' 'all' '-symbolsPackageDir' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Symbols' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/App.framework/App' 182 | 2018-01-03 12:27:24 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/App.framework/App [arm64, 0.034458 seconds]: 183 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 184 | 185 | 2018-01-03 12:27:24 +0000 186 | 2018-01-03 12:27:24 +0000 187 | 2018-01-03 12:27:24 +0000 188 | 2018-01-03 12:27:24 +0000 189 | 2018-01-03 12:27:24 +0000 190 | 2018-01-03 12:27:24 +0000 191 | 2018-01-03 12:27:24 +0000 192 | 2018-01-03 12:27:24 +0000 193 | 2018-01-03 12:27:24 +0000 194 | 2018-01-03 12:27:24 +0000 195 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /Applications/Xcode.app/Contents/Developer/usr/bin/symbols exited with 0 196 | 197 | 2018-01-03 12:27:24 +0000 198 | 2018-01-03 12:27:24 +0000 Processing symbols for Flutter.framework 199 | 2018-01-03 12:27:24 +0000 Running /usr/bin/rsync '-8aPhhE' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/Flutter.framework' '--link-dest' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' 200 | 2018-01-03 12:27:24 +0000 building file list ... 201 | 2018-01-03 12:27:24 +0000 0 files... 2018-01-03 12:27:24 +0000 6 files to consider 202 | 2018-01-03 12:27:24 +0000 Flutter.framework/ 203 | 2018-01-03 12:27:24 +0000 Flutter.framework/_CodeSignature/ 204 | 2018-01-03 12:27:24 +0000 205 | sent 245 bytes received 32 bytes 554.00 bytes/sec 206 | 2018-01-03 12:27:24 +0000 total size is 18.23M speedup is 69008.39 207 | 2018-01-03 12:27:24 +0000 208 | 2018-01-03 12:27:24 +0000 209 | 2018-01-03 12:27:24 +0000 210 | 2018-01-03 12:27:24 +0000 211 | 2018-01-03 12:27:24 +0000 212 | 2018-01-03 12:27:24 +0000 213 | 2018-01-03 12:27:24 +0000 214 | 2018-01-03 12:27:24 +0000 215 | 2018-01-03 12:27:24 +0000 216 | 2018-01-03 12:27:24 +0000 217 | 2018-01-03 12:27:24 +0000 218 | 2018-01-03 12:27:24 +0000 219 | 2018-01-03 12:27:24 +0000 220 | 2018-01-03 12:27:24 +0000 221 | 2018-01-03 12:27:24 +0000 222 | 2018-01-03 12:27:24 +0000 /usr/bin/rsync exited with 0 223 | 2018-01-03 12:27:24 +0000 224 | 2018-01-03 12:27:24 +0000 Running /usr/bin/rsync '-8aPhhE' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/dSYMs/' '--link-dest' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/dSYMs/' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' 225 | 2018-01-03 12:27:24 +0000 building file list ... 226 | 2018-01-03 12:27:24 +0000 0 files... 2018-01-03 12:27:24 +0000 7 files to consider 227 | 2018-01-03 12:27:24 +0000 ./ 228 | 2018-01-03 12:27:24 +0000 Runner.app.dSYM/ 229 | Runner.app.dSYM/Contents/ 230 | Runner.app.dSYM/Contents/Resources/ 231 | Runner.app.dSYM/Contents/Resources/DWARF/ 232 | 2018-01-03 12:27:24 +0000 233 | sent 233 bytes received 62 bytes 590.00 bytes/sec 234 | 2018-01-03 12:27:24 +0000 total size is 1.09M speedup is 3876.88 235 | 2018-01-03 12:27:24 +0000 236 | 2018-01-03 12:27:24 +0000 237 | 2018-01-03 12:27:24 +0000 238 | 2018-01-03 12:27:24 +0000 239 | 2018-01-03 12:27:24 +0000 240 | 2018-01-03 12:27:24 +0000 241 | 2018-01-03 12:27:24 +0000 242 | 2018-01-03 12:27:24 +0000 243 | 2018-01-03 12:27:24 +0000 244 | 2018-01-03 12:27:24 +0000 245 | 2018-01-03 12:27:24 +0000 246 | 2018-01-03 12:27:24 +0000 /usr/bin/rsync exited with 0 247 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 248 | 249 | 2018-01-03 12:27:24 +0000 Running /Applications/Xcode.app/Contents/Developer/usr/bin/symbols '-noTextInSOD' '-noDaemon' '-arch' 'all' '-symbolsPackageDir' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Symbols' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Flutter.framework/Flutter' 250 | 2018-01-03 12:27:24 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Flutter.framework/Flutter [arm64, 0.122775 seconds]: 251 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 252 | 253 | 2018-01-03 12:27:24 +0000 254 | 2018-01-03 12:27:24 +0000 255 | 2018-01-03 12:27:24 +0000 256 | 2018-01-03 12:27:24 +0000 257 | 2018-01-03 12:27:24 +0000 258 | 2018-01-03 12:27:24 +0000 259 | 2018-01-03 12:27:24 +0000 260 | 2018-01-03 12:27:24 +0000 261 | 2018-01-03 12:27:24 +0000 262 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /Applications/Xcode.app/Contents/Developer/usr/bin/symbols exited with 0 263 | 264 | 2018-01-03 12:27:24 +0000 265 | 2018-01-03 12:27:24 +0000 Processing symbols for Runner.app 266 | 2018-01-03 12:27:24 +0000 Running /usr/bin/rsync '-8aPhhE' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app' '--link-dest' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' 267 | 2018-01-03 12:27:24 +0000 building file list ... 268 | 2018-01-03 12:27:24 +0000 0 files... 2018-01-03 12:27:24 +0000 65 files to consider 269 | 2018-01-03 12:27:24 +0000 Runner.app/ 270 | 2018-01-03 12:27:24 +0000 Runner.app/Base.lproj/ 271 | Runner.app/Base.lproj/LaunchScreen.storyboardc/ 272 | Runner.app/Base.lproj/Main.storyboardc/ 273 | 2018-01-03 12:27:24 +0000 Runner.app/Frameworks/ 274 | Runner.app/Frameworks/App.framework/ 275 | Runner.app/Frameworks/App.framework/_CodeSignature/ 276 | Runner.app/Frameworks/Flutter.framework/ 277 | Runner.app/Frameworks/Flutter.framework/_CodeSignature/ 278 | Runner.app/_CodeSignature/ 279 | Runner.app/flutter_assets/ 280 | Runner.app/flutter_assets/data/ 281 | Runner.app/flutter_assets/fonts/ 282 | Runner.app/flutter_assets/images/ 283 | Runner.app/flutter_assets/packages/ 284 | Runner.app/flutter_assets/packages/cupertino_icons/ 285 | Runner.app/flutter_assets/packages/cupertino_icons/assets/ 286 | 2018-01-03 12:27:24 +0000 287 | sent 1.96K bytes received 122 bytes 4.17K bytes/sec 288 | total size is 34.07M speedup is 16739.26 289 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 290 | 291 | 2018-01-03 12:27:24 +0000 292 | 2018-01-03 12:27:24 +0000 293 | 2018-01-03 12:27:24 +0000 294 | 2018-01-03 12:27:24 +0000 295 | 2018-01-03 12:27:24 +0000 296 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /usr/bin/rsync exited with 0 297 | 2018-01-03 12:27:24 +0000 298 | 299 | 2018-01-03 12:27:24 +0000 Running /usr/bin/rsync '-8aPhhE' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/dSYMs/' '--link-dest' '/Users/odd/Library/Developer/Xcode/Archives/2018-01-03/Runner 3-1-2018, 8.24 PM.xcarchive/dSYMs/' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' 300 | 2018-01-03 12:27:24 +0000 building file list ... 301 | 2018-01-03 12:27:24 +0000 0 files... 2018-01-03 12:27:24 +0000 7 files to consider 302 | 2018-01-03 12:27:24 +0000 ./ 303 | 2018-01-03 12:27:24 +0000 Runner.app.dSYM/ 304 | Runner.app.dSYM/Contents/ 305 | Runner.app.dSYM/Contents/Resources/ 306 | Runner.app.dSYM/Contents/Resources/DWARF/ 307 | 2018-01-03 12:27:24 +0000 308 | sent 233 bytes received 62 bytes 590.00 bytes/sec 309 | 2018-01-03 12:27:24 +0000 total size is 1.09M speedup is 3876.88 310 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 311 | 312 | 2018-01-03 12:27:24 +0000 313 | 2018-01-03 12:27:24 +0000 314 | 2018-01-03 12:27:24 +0000 315 | 2018-01-03 12:27:24 +0000 316 | 2018-01-03 12:27:24 +0000 317 | 2018-01-03 12:27:24 +0000 318 | 2018-01-03 12:27:24 +0000 319 | 2018-01-03 12:27:24 +0000 320 | 2018-01-03 12:27:24 +0000 321 | 2018-01-03 12:27:24 +0000 322 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /usr/bin/rsync exited with 02018-01-03 12:27:24 +0000 323 | 324 | 325 | 2018-01-03 12:27:24 +0000 326 | 2018-01-03 12:27:24 +0000 Running /Applications/Xcode.app/Contents/Developer/usr/bin/symbols '-noTextInSOD' '-noDaemon' '-arch' 'all' '-symbolsPackageDir' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Symbols' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Runner.app/Runner' 327 | 2018-01-03 12:27:24 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Runner.app/Runner [arm64, 0.032096 seconds]: 328 | 2018-01-03 12:27:24 +0000 329 | 2018-01-03 12:27:24 +0000 330 | 2018-01-03 12:27:24 +0000 331 | 2018-01-03 12:27:24 +0000 332 | 2018-01-03 12:27:24 +0000 333 | 2018-01-03 12:27:24 +0000 334 | 2018-01-03 12:27:24 +0000 335 | 2018-01-03 12:27:24 +0000 336 | 2018-01-03 12:27:24 +0000 337 | 2018-01-03 12:27:24 +0000 338 | 2018-01-03 12:27:24 +0000 339 | 2018-01-03 12:27:24 +0000 340 | 2018-01-03 12:27:24 +0000 2018-01-03 12:27:24 +0000 /Applications/Xcode.app/Contents/Developer/usr/bin/symbols exited with 0 341 | 342 | 2018-01-03 12:27:24 +0000 343 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionCopyAppleProvidedContentStep 344 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionAppThinningStep 345 | 2018-01-03 12:27:24 +0000 Skipping step: IDEDistributionAppThinningStep because it said so 346 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionODRStep 347 | 2018-01-03 12:27:24 +0000 Processing step: IDEDistributionStripXattrsStep 348 | 2018-01-03 12:27:24 +0000 Skipping stripping extended attributes of item: '> 349 | 2018-01-03 12:27:24 +0000 Skipping stripping extended attributes of item: '> 350 | 2018-01-03 12:27:24 +0000 Running /usr/bin/xattr '-crs' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app' 351 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 /usr/bin/xattr exited with 0 352 | 2018-01-03 12:27:25 +0000 353 | 354 | 2018-01-03 12:27:25 +0000 Processing step: IDEDistributionCodesignStep 355 | 2018-01-03 12:27:25 +0000 Applying entitlements delta for '> from : { 356 | } 357 | 2018-01-03 12:27:25 +0000 Entitlements for '>: { 358 | } 359 | 2018-01-03 12:27:25 +0000 Writing entitlements for '> to: /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/entitlementsKwAlbp 360 | 2018-01-03 12:27:25 +0000 Running /usr/bin/codesign '-vvv' '--force' '--sign' '3662617ED2C80C5D8D8882078777641619470285' '--preserve-metadata=identifier,flags' '--entitlements' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/entitlementsKwAlbp' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/App.framework' 361 | 2018-01-03 12:27:25 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/App.framework: replacing existing signature 362 | 2018-01-03 12:27:25 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/App.framework: signed bundle with Mach-O thin (arm64) [io.flutter.flutter.app] 363 | 2018-01-03 12:27:25 +0000 364 | 2018-01-03 12:27:25 +0000 365 | 2018-01-03 12:27:25 +0000 366 | 2018-01-03 12:27:25 +0000 367 | 2018-01-03 12:27:25 +0000 368 | 2018-01-03 12:27:25 +0000 369 | 2018-01-03 12:27:25 +0000 370 | 2018-01-03 12:27:25 +0000 371 | 2018-01-03 12:27:25 +0000 372 | 2018-01-03 12:27:25 +0000 373 | 2018-01-03 12:27:25 +0000 374 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 /usr/bin/codesign exited with 0 375 | 376 | 2018-01-03 12:27:25 +0000 377 | 2018-01-03 12:27:25 +0000 Applying entitlements delta for '> from : { 378 | } 379 | 2018-01-03 12:27:25 +0000 Entitlements for '>: { 380 | } 381 | 2018-01-03 12:27:25 +0000 Writing entitlements for '> to: /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/entitlementsvpO8Un 382 | 2018-01-03 12:27:25 +0000 Running /usr/bin/codesign '-vvv' '--force' '--sign' '3662617ED2C80C5D8D8882078777641619470285' '--preserve-metadata=identifier,flags' '--entitlements' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/entitlementsvpO8Un' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/Flutter.framework' 383 | 2018-01-03 12:27:25 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/Flutter.framework: replacing existing signature 384 | 2018-01-03 12:27:25 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app/Frameworks/Flutter.framework: signed bundle with Mach-O universal (arm64) [io.flutter.flutter] 385 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 386 | 387 | 2018-01-03 12:27:25 +0000 388 | 2018-01-03 12:27:25 +0000 389 | 2018-01-03 12:27:25 +0000 390 | 2018-01-03 12:27:25 +0000 391 | 2018-01-03 12:27:25 +0000 392 | 2018-01-03 12:27:25 +0000 393 | 2018-01-03 12:27:25 +0000 394 | 2018-01-03 12:27:25 +0000 395 | 2018-01-03 12:27:25 +0000 396 | 2018-01-03 12:27:25 +0000 397 | 2018-01-03 12:27:25 +0000 /usr/bin/codesign exited with 0 398 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 399 | 400 | 2018-01-03 12:27:25 +0000 Applying entitlements delta for '> from : { 401 | } 402 | 2018-01-03 12:27:25 +0000 Entitlements for '>: { 403 | "application-identifier" = "6552Q2S52G.pedia.offer"; 404 | "beta-reports-active" = 1; 405 | "com.apple.developer.team-identifier" = 6552Q2S52G; 406 | "get-task-allow" = 0; 407 | "keychain-access-groups" = ( 408 | "6552Q2S52G.pedia.offer" 409 | ); 410 | } 411 | 2018-01-03 12:27:25 +0000 Writing entitlements for '> to: /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/entitlementsFPNGva 412 | 2018-01-03 12:27:25 +0000 Running /usr/bin/codesign '-vvv' '--force' '--sign' '3662617ED2C80C5D8D8882078777641619470285' '--preserve-metadata=identifier,flags' '--entitlements' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/entitlementsFPNGva' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app' 413 | 2018-01-03 12:27:25 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app: replacing existing signature 414 | 2018-01-03 12:27:25 +0000 /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root/Payload/Runner.app: signed app bundle with Mach-O thin (arm64) [pedia.offer] 415 | 2018-01-03 12:27:25 +0000 416 | 2018-01-03 12:27:25 +0000 417 | 2018-01-03 12:27:25 +0000 418 | 2018-01-03 12:27:25 +0000 419 | 2018-01-03 12:27:25 +0000 420 | 2018-01-03 12:27:25 +0000 421 | 2018-01-03 12:27:25 +0000 422 | 2018-01-03 12:27:25 +0000 423 | 2018-01-03 12:27:25 +0000 424 | 2018-01-03 12:27:25 +0000 425 | 2018-01-03 12:27:25 +0000 426 | 2018-01-03 12:27:25 +0000 427 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 /usr/bin/codesign exited with 0 428 | 429 | 2018-01-03 12:27:25 +0000 430 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 Processing step: IDEDistributionStreamingZipItemStep 431 | 432 | 2018-01-03 12:27:25 +0000 Skipping step: IDEDistributionStreamingZipItemStep because it said so 433 | 2018-01-03 12:27:25 +0000 Skipping step: IDEDistributionStreamingZipItemStep because it said so 434 | 2018-01-03 12:27:25 +0000 Skipping step: IDEDistributionStreamingZipItemStep because it said so 435 | 2018-01-03 12:27:25 +0000 Processing step: IDEDistributionCreateIPAStep 436 | 2018-01-03 12:27:25 +0000 Running /usr/bin/rsync '-8aPhhE' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Symbols' '--link-dest' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root' 437 | 2018-01-03 12:27:25 +0000 building file list ... 438 | 2018-01-03 12:27:25 +0000 0 files... 2018-01-03 12:27:25 +0000 4 files to consider 439 | 2018-01-03 12:27:25 +0000 Symbols/ 440 | 2018-01-03 12:27:25 +0000 441 | sent 244 bytes received 26 bytes 540.00 bytes/sec 442 | 2018-01-03 12:27:25 +0000 total size is 4.38M speedup is 17016.09 443 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 444 | 445 | 2018-01-03 12:27:25 +0000 446 | 2018-01-03 12:27:25 +0000 447 | 2018-01-03 12:27:25 +0000 448 | 2018-01-03 12:27:25 +0000 449 | 2018-01-03 12:27:25 +0000 450 | 2018-01-03 12:27:25 +0000 451 | 2018-01-03 12:27:25 +0000 452 | 2018-01-03 12:27:25 +0000 453 | 2018-01-03 12:27:25 +0000 454 | 2018-01-03 12:27:25 +0000 455 | 2018-01-03 12:27:25 +0000 456 | 2018-01-03 12:27:25 +0000 2018-01-03 12:27:25 +0000 /usr/bin/rsync exited with 0 457 | 458 | 2018-01-03 12:27:25 +0000 459 | 2018-01-03 12:27:25 +0000 Running /usr/bin/ditto '-V' '-c' '-k' '--norsrc' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root' '/var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Packages/Runner.ipa' 460 | 2018-01-03 12:27:25 +0000 >>> Copying /var/folders/vb/1d3369114yz78xwy_83q3wn80000gn/T/XcodeDistPipeline.6nd/Root 461 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib ... 462 | 2018-01-03 12:27:25 +0000 2153 bytes for ./Payload/Runner.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib 463 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib ... 464 | 832 bytes for ./Payload/Runner.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib 465 | copying file ./Payload/Runner.app/Base.lproj/LaunchScreen.storyboardc/Info.plist ... 466 | 2018-01-03 12:27:25 +0000 258 bytes for ./Payload/Runner.app/Base.lproj/LaunchScreen.storyboardc/Info.plist 467 | copying file ./Payload/Runner.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib ... 468 | 2018-01-03 12:27:25 +0000 923 bytes for ./Payload/Runner.app/Base.lproj/Main.storyboardc/UIViewController-BYZ-38-t0r.nib 469 | copying file ./Payload/Runner.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib ... 470 | 2018-01-03 12:27:25 +0000 1790 bytes for ./Payload/Runner.app/Base.lproj/Main.storyboardc/BYZ-38-t0r-view-8bC-Xf-vdC.nib 471 | copying file ./Payload/Runner.app/Base.lproj/Main.storyboardc/Info.plist ... 472 | 2018-01-03 12:27:25 +0000 258 bytes for ./Payload/Runner.app/Base.lproj/Main.storyboardc/Info.plist 473 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/_CodeSignature/CodeResources ... 474 | 2018-01-03 12:27:25 +0000 16567 bytes for ./Payload/Runner.app/_CodeSignature/CodeResources 475 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/Generated.xcconfig ... 476 | 453 bytes for ./Payload/Runner.app/Generated.xcconfig 477 | copying file ./Payload/Runner.app/app.flx ... 478 | 2018-01-03 12:27:25 +0000 277893 bytes for ./Payload/Runner.app/app.flx 479 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/flutter_assets/AssetManifest.json ... 480 | 2018-01-03 12:27:25 +0000 561 bytes for ./Payload/Runner.app/flutter_assets/AssetManifest.json 481 | copying file ./Payload/Runner.app/flutter_assets/images/woman-teacher.png ... 482 | 2018-01-03 12:27:25 +0000 69076 bytes for ./Payload/Runner.app/flutter_assets/images/woman-teacher.png 483 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/flutter_assets/images/United States of America(USA).png ... 484 | 1101 bytes for ./Payload/Runner.app/flutter_assets/images/United States of America(USA).png 485 | copying file ./Payload/Runner.app/flutter_assets/images/Hong Kong.png ... 486 | 2018-01-03 12:27:25 +0000 1748 bytes for ./Payload/Runner.app/flutter_assets/images/Hong Kong.png 487 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/flutter_assets/images/Australia.png ... 488 | 2018-01-03 12:27:25 +0000 2623 bytes for ./Payload/Runner.app/flutter_assets/images/Australia.png 489 | copying file ./Payload/Runner.app/flutter_assets/images/United Kingdom(Great Britain).png ... 490 | 2018-01-03 12:27:25 +0000 4613 bytes for ./Payload/Runner.app/flutter_assets/images/United Kingdom(Great Britain).png 491 | copying file ./Payload/Runner.app/flutter_assets/images/New Zealand.png ... 492 | 2018-01-03 12:27:25 +0000 2182 bytes for ./Payload/Runner.app/flutter_assets/images/New Zealand.png 493 | copying file ./Payload/Runner.app/flutter_assets/FontManifest.json ... 494 | 2018-01-03 12:27:25 +0000 289 bytes for ./Payload/Runner.app/flutter_assets/FontManifest.json 495 | copying file ./Payload/Runner.app/flutter_assets/LICENSE ... 496 | 2018-01-03 12:27:25 +0000 938029 bytes for ./Payload/Runner.app/flutter_assets/LICENSE 497 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf ... 498 | 2018-01-03 12:27:25 +0000 97680 bytes for ./Payload/Runner.app/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf 499 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/flutter_assets/fonts/MaterialIcons-Regular.ttf ... 500 | 2018-01-03 12:27:25 +0000 134640 bytes for ./Payload/Runner.app/flutter_assets/fonts/MaterialIcons-Regular.ttf 501 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/flutter_assets/data/claim.md ... 502 | 2018-01-03 12:27:25 +0000 2167 bytes for ./Payload/Runner.app/flutter_assets/data/claim.md 503 | copying file ./Payload/Runner.app/flutter_assets/data/privacy.md ... 504 | 2018-01-03 12:27:25 +0000 5606 bytes for ./Payload/Runner.app/flutter_assets/data/privacy.md 505 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/archived-expanded-entitlements.xcent ... 506 | 360 bytes for ./Payload/Runner.app/archived-expanded-entitlements.xcent 507 | copying file ./Payload/Runner.app/AppIcon20x20@3x.png ... 508 | 2018-01-03 12:27:25 +0000 1883 bytes for ./Payload/Runner.app/AppIcon20x20@3x.png 509 | 2018-01-03 12:27:25 +0000 copying file ./Payload/Runner.app/Frameworks/Flutter.framework/icudtl.dat ... 510 | 2018-01-03 12:27:26 +0000 6623360 bytes for ./Payload/Runner.app/Frameworks/Flutter.framework/icudtl.dat 511 | 2018-01-03 12:27:26 +0000 copying file ./Payload/Runner.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources ... 512 | 2488 bytes for ./Payload/Runner.app/Frameworks/Flutter.framework/_CodeSignature/CodeResources 513 | copying file ./Payload/Runner.app/Frameworks/Flutter.framework/Flutter ... 514 | 2018-01-03 12:27:26 +0000 12488912 bytes for ./Payload/Runner.app/Frameworks/Flutter.framework/Flutter 515 | 2018-01-03 12:27:26 +0000 copying file ./Payload/Runner.app/Frameworks/Flutter.framework/Info.plist ... 516 | 867 bytes for ./Payload/Runner.app/Frameworks/Flutter.framework/Info.plist 517 | copying file ./Payload/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources ... 518 | 2202 bytes for ./Payload/Runner.app/Frameworks/App.framework/_CodeSignature/CodeResources 519 | copying file ./Payload/Runner.app/Frameworks/App.framework/App ... 520 | 2018-01-03 12:27:27 +0000 13755184 bytes for ./Payload/Runner.app/Frameworks/App.framework/App 521 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/Frameworks/App.framework/Info.plist ... 522 | 863 bytes for ./Payload/Runner.app/Frameworks/App.framework/Info.plist 523 | copying file ./Payload/Runner.app/Info.plist ... 524 | 1507 bytes for ./Payload/Runner.app/Info.plist 525 | copying file ./Payload/Runner.app/Runner ... 526 | 2018-01-03 12:27:27 +0000 960224 bytes for ./Payload/Runner.app/Runner 527 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/AppIcon20x20@2x.png ... 528 | 1304 bytes for ./Payload/Runner.app/AppIcon20x20@2x.png 529 | copying file ./Payload/Runner.app/Debug.xcconfig ... 530 | 2018-01-03 12:27:27 +0000 30 bytes for ./Payload/Runner.app/Debug.xcconfig 531 | copying file ./Payload/Runner.app/AppIcon29x29.png ... 532 | 2018-01-03 12:27:27 +0000 1699 bytes for ./Payload/Runner.app/AppIcon29x29.png 533 | copying file ./Payload/Runner.app/AppIcon60x60@3x.png ... 534 | 2018-01-03 12:27:27 +0000 13006 bytes for ./Payload/Runner.app/AppIcon60x60@3x.png 535 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/AppFrameworkInfo.plist ... 536 | 423 bytes for ./Payload/Runner.app/AppFrameworkInfo.plist 537 | copying file ./Payload/Runner.app/AppIcon29x29@3x.png ... 538 | 2018-01-03 12:27:27 +0000 6179 bytes for ./Payload/Runner.app/AppIcon29x29@3x.png 539 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/PkgInfo ... 540 | 8 bytes for ./Payload/Runner.app/PkgInfo 541 | copying file ./Payload/Runner.app/Assets.car ... 542 | 2018-01-03 12:27:27 +0000 253624 bytes for ./Payload/Runner.app/Assets.car 543 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/embedded.mobileprovision ... 544 | 2018-01-03 12:27:27 +0000 7483 bytes for ./Payload/Runner.app/embedded.mobileprovision 545 | copying file ./Payload/Runner.app/AppIcon40x40@2x.png ... 546 | 2018-01-03 12:27:27 +0000 5712 bytes for ./Payload/Runner.app/AppIcon40x40@2x.png 547 | copying file ./Payload/Runner.app/AppIcon40x40@3x.png ... 548 | 2018-01-03 12:27:27 +0000 8668 bytes for ./Payload/Runner.app/AppIcon40x40@3x.png 549 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/AppIcon57x57.png ... 550 | 3829 bytes for ./Payload/Runner.app/AppIcon57x57.png 551 | 2018-01-03 12:27:27 +0000 copying file ./Payload/Runner.app/AppIcon57x57@2x.png ... 552 | 2018-01-03 12:27:27 +0000 8300 bytes for ./Payload/Runner.app/AppIcon57x57@2x.png 553 | copying file ./Payload/Runner.app/AppIcon29x29@2x.png ... 554 | 2018-01-03 12:27:27 +0000 4005 bytes for ./Payload/Runner.app/AppIcon29x29@2x.png 555 | copying file ./Payload/Runner.app/AppIcon60x60@2x.png ... 556 | 2018-01-03 12:27:27 +0000 8668 bytes for ./Payload/Runner.app/AppIcon60x60@2x.png 557 | 2018-01-03 12:27:27 +0000 copying file ./Symbols/8115F938-4C0A-339A-AC12-ED73CD0C617A.symbols ... 558 | 2018-01-03 12:27:27 +0000 348200 bytes for ./Symbols/8115F938-4C0A-339A-AC12-ED73CD0C617A.symbols 559 | 2018-01-03 12:27:27 +0000 copying file ./Symbols/11542E28-228C-361C-AE56-3EADB45D381B.symbols ... 560 | 2018-01-03 12:27:27 +0000 3534192 bytes for ./Symbols/11542E28-228C-361C-AE56-3EADB45D381B.symbols 561 | 2018-01-03 12:27:27 +0000 copying file ./Symbols/4A4E30C9-1063-373B-AE44-75426EB917C8.symbols ... 562 | 2018-01-03 12:27:27 +0000 711952 bytes for ./Symbols/4A4E30C9-1063-373B-AE44-75426EB917C8.symbols 563 | 2018-01-03 12:27:27 +0000 2018-01-03 12:27:27 +0000 564 | 565 | 2018-01-03 12:27:27 +0000 /usr/bin/ditto exited with 02018-01-03 12:27:27 +0000 566 | 567 | 2018-01-03 12:27:27 +0000 568 | 2018-01-03 12:27:27 +0000 Processing step: IDEDistributionCreateManifestStep 569 | 2018-01-03 12:27:27 +0000 Skipping step: IDEDistributionCreateManifestStep because it said so 570 | -------------------------------------------------------------------------------- /example/ios/Runner-2/Runner.ipa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner-2/Runner.ipa -------------------------------------------------------------------------------- /example/ios/Runner.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 11 | 2778C9995ADD0EC4F765A087 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4C5287FF3F21C6EF66F371D /* libPods-Runner.a */; }; 12 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 13 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; 14 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 15 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; 16 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 17 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; 18 | 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB31CF90195004384FC /* Generated.xcconfig */; }; 19 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 20 | 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 21 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 22 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 23 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXCopyFilesBuildPhase section */ 27 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 28 | isa = PBXCopyFilesBuildPhase; 29 | buildActionMask = 2147483647; 30 | dstPath = ""; 31 | dstSubfolderSpec = 10; 32 | files = ( 33 | 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, 34 | 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, 35 | ); 36 | name = "Embed Frameworks"; 37 | runOnlyForDeploymentPostprocessing = 0; 38 | }; 39 | /* End PBXCopyFilesBuildPhase section */ 40 | 41 | /* Begin PBXFileReference section */ 42 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 43 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 44 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 45 | 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; 46 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 47 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 48 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 49 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 50 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 51 | 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; 52 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 53 | 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 54 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 55 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 56 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 57 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 58 | C4C5287FF3F21C6EF66F371D /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 59 | /* End PBXFileReference section */ 60 | 61 | /* Begin PBXFrameworksBuildPhase section */ 62 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 63 | isa = PBXFrameworksBuildPhase; 64 | buildActionMask = 2147483647; 65 | files = ( 66 | 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, 67 | 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, 68 | 2778C9995ADD0EC4F765A087 /* libPods-Runner.a in Frameworks */, 69 | ); 70 | runOnlyForDeploymentPostprocessing = 0; 71 | }; 72 | /* End PBXFrameworksBuildPhase section */ 73 | 74 | /* Begin PBXGroup section */ 75 | 190C6C778140D6697599E081 /* Pods */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | ); 79 | name = Pods; 80 | sourceTree = ""; 81 | }; 82 | 500FC26EB57A03DAA1E5CEC6 /* Frameworks */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | C4C5287FF3F21C6EF66F371D /* libPods-Runner.a */, 86 | ); 87 | name = Frameworks; 88 | sourceTree = ""; 89 | }; 90 | 9740EEB11CF90186004384FC /* Flutter */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | 3B80C3931E831B6300D905FE /* App.framework */, 94 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 95 | 9740EEBA1CF902C7004384FC /* Flutter.framework */, 96 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 97 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 98 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 99 | ); 100 | name = Flutter; 101 | sourceTree = ""; 102 | }; 103 | 97C146E51CF9000F007C117D = { 104 | isa = PBXGroup; 105 | children = ( 106 | 9740EEB11CF90186004384FC /* Flutter */, 107 | 97C146F01CF9000F007C117D /* Runner */, 108 | 97C146EF1CF9000F007C117D /* Products */, 109 | 190C6C778140D6697599E081 /* Pods */, 110 | 500FC26EB57A03DAA1E5CEC6 /* Frameworks */, 111 | ); 112 | sourceTree = ""; 113 | }; 114 | 97C146EF1CF9000F007C117D /* Products */ = { 115 | isa = PBXGroup; 116 | children = ( 117 | 97C146EE1CF9000F007C117D /* Runner.app */, 118 | ); 119 | name = Products; 120 | sourceTree = ""; 121 | }; 122 | 97C146F01CF9000F007C117D /* Runner */ = { 123 | isa = PBXGroup; 124 | children = ( 125 | 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, 126 | 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, 127 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 128 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 129 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 130 | 97C147021CF9000F007C117D /* Info.plist */, 131 | 97C146F11CF9000F007C117D /* Supporting Files */, 132 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 133 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 134 | ); 135 | path = Runner; 136 | sourceTree = ""; 137 | }; 138 | 97C146F11CF9000F007C117D /* Supporting Files */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | 97C146F21CF9000F007C117D /* main.m */, 142 | ); 143 | name = "Supporting Files"; 144 | sourceTree = ""; 145 | }; 146 | /* End PBXGroup section */ 147 | 148 | /* Begin PBXNativeTarget section */ 149 | 97C146ED1CF9000F007C117D /* Runner */ = { 150 | isa = PBXNativeTarget; 151 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 152 | buildPhases = ( 153 | 7D3D3DF6F0BBC2B7127891BC /* [CP] Check Pods Manifest.lock */, 154 | 9740EEB61CF901F6004384FC /* Run Script */, 155 | 97C146EA1CF9000F007C117D /* Sources */, 156 | 97C146EB1CF9000F007C117D /* Frameworks */, 157 | 97C146EC1CF9000F007C117D /* Resources */, 158 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 159 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 160 | 42A7D833D76215CD0A920AED /* [CP] Embed Pods Frameworks */, 161 | ); 162 | buildRules = ( 163 | ); 164 | dependencies = ( 165 | ); 166 | name = Runner; 167 | productName = Runner; 168 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 169 | productType = "com.apple.product-type.application"; 170 | }; 171 | /* End PBXNativeTarget section */ 172 | 173 | /* Begin PBXProject section */ 174 | 97C146E61CF9000F007C117D /* Project object */ = { 175 | isa = PBXProject; 176 | attributes = { 177 | LastUpgradeCheck = 0910; 178 | ORGANIZATIONNAME = "The Chromium Authors"; 179 | TargetAttributes = { 180 | 97C146ED1CF9000F007C117D = { 181 | CreatedOnToolsVersion = 7.3.1; 182 | }; 183 | }; 184 | }; 185 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 186 | compatibilityVersion = "Xcode 3.2"; 187 | developmentRegion = English; 188 | hasScannedForEncodings = 0; 189 | knownRegions = ( 190 | en, 191 | Base, 192 | ); 193 | mainGroup = 97C146E51CF9000F007C117D; 194 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 195 | projectDirPath = ""; 196 | projectRoot = ""; 197 | targets = ( 198 | 97C146ED1CF9000F007C117D /* Runner */, 199 | ); 200 | }; 201 | /* End PBXProject section */ 202 | 203 | /* Begin PBXResourcesBuildPhase section */ 204 | 97C146EC1CF9000F007C117D /* Resources */ = { 205 | isa = PBXResourcesBuildPhase; 206 | buildActionMask = 2147483647; 207 | files = ( 208 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 209 | 9740EEB51CF90195004384FC /* Generated.xcconfig in Resources */, 210 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 211 | 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, 212 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 213 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 214 | ); 215 | runOnlyForDeploymentPostprocessing = 0; 216 | }; 217 | /* End PBXResourcesBuildPhase section */ 218 | 219 | /* Begin PBXShellScriptBuildPhase section */ 220 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 221 | isa = PBXShellScriptBuildPhase; 222 | buildActionMask = 2147483647; 223 | files = ( 224 | ); 225 | inputPaths = ( 226 | ); 227 | name = "Thin Binary"; 228 | outputPaths = ( 229 | ); 230 | runOnlyForDeploymentPostprocessing = 0; 231 | shellPath = /bin/sh; 232 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; 233 | }; 234 | 42A7D833D76215CD0A920AED /* [CP] Embed Pods Frameworks */ = { 235 | isa = PBXShellScriptBuildPhase; 236 | buildActionMask = 2147483647; 237 | files = ( 238 | ); 239 | inputPaths = ( 240 | "${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", 241 | "${PODS_ROOT}/../../../../../../../flutter/flutter/bin/cache/artifacts/engine/ios/Flutter.framework", 242 | ); 243 | name = "[CP] Embed Pods Frameworks"; 244 | outputPaths = ( 245 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", 246 | ); 247 | runOnlyForDeploymentPostprocessing = 0; 248 | shellPath = /bin/sh; 249 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; 250 | showEnvVarsInLog = 0; 251 | }; 252 | 7D3D3DF6F0BBC2B7127891BC /* [CP] Check Pods Manifest.lock */ = { 253 | isa = PBXShellScriptBuildPhase; 254 | buildActionMask = 2147483647; 255 | files = ( 256 | ); 257 | inputPaths = ( 258 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 259 | "${PODS_ROOT}/Manifest.lock", 260 | ); 261 | name = "[CP] Check Pods Manifest.lock"; 262 | outputPaths = ( 263 | "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", 264 | ); 265 | runOnlyForDeploymentPostprocessing = 0; 266 | shellPath = /bin/sh; 267 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 268 | showEnvVarsInLog = 0; 269 | }; 270 | 9740EEB61CF901F6004384FC /* Run Script */ = { 271 | isa = PBXShellScriptBuildPhase; 272 | buildActionMask = 2147483647; 273 | files = ( 274 | ); 275 | inputPaths = ( 276 | ); 277 | name = "Run Script"; 278 | outputPaths = ( 279 | ); 280 | runOnlyForDeploymentPostprocessing = 0; 281 | shellPath = /bin/sh; 282 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 283 | }; 284 | /* End PBXShellScriptBuildPhase section */ 285 | 286 | /* Begin PBXSourcesBuildPhase section */ 287 | 97C146EA1CF9000F007C117D /* Sources */ = { 288 | isa = PBXSourcesBuildPhase; 289 | buildActionMask = 2147483647; 290 | files = ( 291 | 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, 292 | 97C146F31CF9000F007C117D /* main.m in Sources */, 293 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 294 | ); 295 | runOnlyForDeploymentPostprocessing = 0; 296 | }; 297 | /* End PBXSourcesBuildPhase section */ 298 | 299 | /* Begin PBXVariantGroup section */ 300 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 301 | isa = PBXVariantGroup; 302 | children = ( 303 | 97C146FB1CF9000F007C117D /* Base */, 304 | ); 305 | name = Main.storyboard; 306 | sourceTree = ""; 307 | }; 308 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 309 | isa = PBXVariantGroup; 310 | children = ( 311 | 97C147001CF9000F007C117D /* Base */, 312 | ); 313 | name = LaunchScreen.storyboard; 314 | sourceTree = ""; 315 | }; 316 | /* End PBXVariantGroup section */ 317 | 318 | /* Begin XCBuildConfiguration section */ 319 | 97C147031CF9000F007C117D /* Debug */ = { 320 | isa = XCBuildConfiguration; 321 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 322 | buildSettings = { 323 | ALWAYS_SEARCH_USER_PATHS = NO; 324 | CLANG_ANALYZER_NONNULL = YES; 325 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 326 | CLANG_CXX_LIBRARY = "libc++"; 327 | CLANG_ENABLE_MODULES = YES; 328 | CLANG_ENABLE_OBJC_ARC = YES; 329 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 330 | CLANG_WARN_BOOL_CONVERSION = YES; 331 | CLANG_WARN_COMMA = YES; 332 | CLANG_WARN_CONSTANT_CONVERSION = YES; 333 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 334 | CLANG_WARN_EMPTY_BODY = YES; 335 | CLANG_WARN_ENUM_CONVERSION = YES; 336 | CLANG_WARN_INFINITE_RECURSION = YES; 337 | CLANG_WARN_INT_CONVERSION = YES; 338 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 339 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 340 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 341 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 342 | CLANG_WARN_STRICT_PROTOTYPES = YES; 343 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 344 | CLANG_WARN_UNREACHABLE_CODE = YES; 345 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 346 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 347 | COPY_PHASE_STRIP = NO; 348 | DEBUG_INFORMATION_FORMAT = dwarf; 349 | ENABLE_STRICT_OBJC_MSGSEND = YES; 350 | ENABLE_TESTABILITY = YES; 351 | GCC_C_LANGUAGE_STANDARD = gnu99; 352 | GCC_DYNAMIC_NO_PIC = NO; 353 | GCC_NO_COMMON_BLOCKS = YES; 354 | GCC_OPTIMIZATION_LEVEL = 0; 355 | GCC_PREPROCESSOR_DEFINITIONS = ( 356 | "DEBUG=1", 357 | "$(inherited)", 358 | ); 359 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 360 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 361 | GCC_WARN_UNDECLARED_SELECTOR = YES; 362 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 363 | GCC_WARN_UNUSED_FUNCTION = YES; 364 | GCC_WARN_UNUSED_VARIABLE = YES; 365 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 366 | MTL_ENABLE_DEBUG_INFO = YES; 367 | ONLY_ACTIVE_ARCH = YES; 368 | SDKROOT = iphoneos; 369 | TARGETED_DEVICE_FAMILY = "1,2"; 370 | }; 371 | name = Debug; 372 | }; 373 | 97C147041CF9000F007C117D /* Release */ = { 374 | isa = XCBuildConfiguration; 375 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 376 | buildSettings = { 377 | ALWAYS_SEARCH_USER_PATHS = NO; 378 | CLANG_ANALYZER_NONNULL = YES; 379 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 380 | CLANG_CXX_LIBRARY = "libc++"; 381 | CLANG_ENABLE_MODULES = YES; 382 | CLANG_ENABLE_OBJC_ARC = YES; 383 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 384 | CLANG_WARN_BOOL_CONVERSION = YES; 385 | CLANG_WARN_COMMA = YES; 386 | CLANG_WARN_CONSTANT_CONVERSION = YES; 387 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 388 | CLANG_WARN_EMPTY_BODY = YES; 389 | CLANG_WARN_ENUM_CONVERSION = YES; 390 | CLANG_WARN_INFINITE_RECURSION = YES; 391 | CLANG_WARN_INT_CONVERSION = YES; 392 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 393 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 394 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 395 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 396 | CLANG_WARN_STRICT_PROTOTYPES = YES; 397 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 398 | CLANG_WARN_UNREACHABLE_CODE = YES; 399 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 400 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 401 | COPY_PHASE_STRIP = NO; 402 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 403 | ENABLE_NS_ASSERTIONS = NO; 404 | ENABLE_STRICT_OBJC_MSGSEND = YES; 405 | GCC_C_LANGUAGE_STANDARD = gnu99; 406 | GCC_NO_COMMON_BLOCKS = YES; 407 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 408 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 409 | GCC_WARN_UNDECLARED_SELECTOR = YES; 410 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 411 | GCC_WARN_UNUSED_FUNCTION = YES; 412 | GCC_WARN_UNUSED_VARIABLE = YES; 413 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 414 | MTL_ENABLE_DEBUG_INFO = NO; 415 | SDKROOT = iphoneos; 416 | TARGETED_DEVICE_FAMILY = "1,2"; 417 | VALIDATE_PRODUCT = YES; 418 | }; 419 | name = Release; 420 | }; 421 | 97C147061CF9000F007C117D /* Debug */ = { 422 | isa = XCBuildConfiguration; 423 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 424 | buildSettings = { 425 | ARCHS = arm64; 426 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 427 | ENABLE_BITCODE = NO; 428 | FRAMEWORK_SEARCH_PATHS = ( 429 | "$(inherited)", 430 | "$(PROJECT_DIR)/Flutter", 431 | ); 432 | INFOPLIST_FILE = Runner/Info.plist; 433 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 434 | LIBRARY_SEARCH_PATHS = ( 435 | "$(inherited)", 436 | "$(PROJECT_DIR)/Flutter", 437 | ); 438 | PRODUCT_BUNDLE_IDENTIFIER = pedia.flutterUmengAnalyticsExample; 439 | PRODUCT_NAME = "$(TARGET_NAME)"; 440 | }; 441 | name = Debug; 442 | }; 443 | 97C147071CF9000F007C117D /* Release */ = { 444 | isa = XCBuildConfiguration; 445 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 446 | buildSettings = { 447 | ARCHS = arm64; 448 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 449 | ENABLE_BITCODE = NO; 450 | FRAMEWORK_SEARCH_PATHS = ( 451 | "$(inherited)", 452 | "$(PROJECT_DIR)/Flutter", 453 | ); 454 | INFOPLIST_FILE = Runner/Info.plist; 455 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 456 | LIBRARY_SEARCH_PATHS = ( 457 | "$(inherited)", 458 | "$(PROJECT_DIR)/Flutter", 459 | ); 460 | PRODUCT_BUNDLE_IDENTIFIER = pedia.flutterUmengAnalyticsExample; 461 | PRODUCT_NAME = "$(TARGET_NAME)"; 462 | }; 463 | name = Release; 464 | }; 465 | /* End XCBuildConfiguration section */ 466 | 467 | /* Begin XCConfigurationList section */ 468 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 469 | isa = XCConfigurationList; 470 | buildConfigurations = ( 471 | 97C147031CF9000F007C117D /* Debug */, 472 | 97C147041CF9000F007C117D /* Release */, 473 | ); 474 | defaultConfigurationIsVisible = 0; 475 | defaultConfigurationName = Release; 476 | }; 477 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 478 | isa = XCConfigurationList; 479 | buildConfigurations = ( 480 | 97C147061CF9000F007C117D /* Debug */, 481 | 97C147071CF9000F007C117D /* Release */, 482 | ); 483 | defaultConfigurationIsVisible = 0; 484 | defaultConfigurationName = Release; 485 | }; 486 | /* End XCConfigurationList section */ 487 | }; 488 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 489 | } 490 | -------------------------------------------------------------------------------- /example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 56 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 75 | 77 | 83 | 84 | 85 | 86 | 88 | 89 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /example/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/ios/Runner/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface AppDelegate : FlutterAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /example/ios/Runner/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #include "AppDelegate.h" 2 | #include "GeneratedPluginRegistrant.h" 3 | 4 | @implementation AppDelegate 5 | 6 | - (BOOL)application:(UIApplication *)application 7 | didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 8 | [GeneratedPluginRegistrant registerWithRegistry:self]; 9 | // Override point for customization after application launch. 10 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | } 111 | ], 112 | "info" : { 113 | "version" : 1, 114 | "author" : "xcode" 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /example/ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /example/ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /example/ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | flutter_umeng_analytics_example 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | arm64 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | UIViewControllerBasedStatusBarAppearance 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /example/ios/Runner/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char* argv[]) { 6 | @autoreleasepool { 7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /example/lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter/services.dart'; 3 | import 'package:flutter_umeng_analytics/flutter_umeng_analytics.dart'; 4 | 5 | void main() => runApp(new MyApp()); 6 | 7 | class MyApp extends StatefulWidget { 8 | @override 9 | _MyAppState createState() => new _MyAppState(); 10 | } 11 | 12 | class _MyAppState extends State { 13 | static bool _inited; 14 | @override 15 | initState() { 16 | super.initState(); 17 | 18 | if (_inited == null) { 19 | _inited = true; 20 | UMengAnalytics.init('5a20cc45f43e48512000015d', 21 | policy: Policy.BATCH, encrypt: true, reportCrash: false); 22 | } 23 | } 24 | 25 | @override 26 | Widget build(BuildContext context) { 27 | return new MaterialApp( 28 | home: new Scaffold( 29 | appBar: new AppBar( 30 | title: new Text('Plugin example app'), 31 | ), 32 | body: new Center( 33 | child: new Column( 34 | mainAxisAlignment: MainAxisAlignment.center, 35 | children: [ 36 | new RaisedButton( 37 | onPressed: () { 38 | UMengAnalytics.logEvent("hello"); 39 | }, 40 | child: new Text('Running on: hello'), 41 | ), 42 | ]), 43 | ), 44 | ), 45 | ); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: flutter_umeng_analytics_example 2 | description: Demonstrates how to use the flutter_umeng_analytics plugin. 3 | 4 | environment: 5 | sdk: ">=2.1.0 <3.0.0" 6 | 7 | dependencies: 8 | flutter: 9 | sdk: flutter 10 | 11 | # The following adds the Cupertino Icons font to your application. 12 | # Use with the CupertinoIcons class for iOS style icons. 13 | cupertino_icons: ^0.1.0 14 | 15 | dev_dependencies: 16 | flutter_test: 17 | sdk: flutter 18 | 19 | flutter_umeng_analytics: 20 | path: ../ 21 | 22 | # For information on the generic Dart part of this file, see the 23 | # following page: https://www.dartlang.org/tools/pub/pubspec 24 | 25 | # The following section is specific to Flutter. 26 | flutter: 27 | 28 | # The following line ensures that the Material Icons font is 29 | # included with your application, so that you can use the icons in 30 | # the material Icons class. 31 | uses-material-design: true 32 | 33 | # To add assets to your application, add an assets section, like this: 34 | # assets: 35 | # - images/a_dot_burr.jpeg 36 | # - images/a_dot_ham.jpeg 37 | 38 | # An image asset can refer to one or more resolution-specific "variants", see 39 | # https://flutter.io/assets-and-images/#resolution-aware. 40 | 41 | # For details regarding adding assets from package dependencies, see 42 | # https://flutter.io/assets-and-images/#from-packages 43 | 44 | # To add custom fonts to your application, add a fonts section here, 45 | # in this "flutter" section. Each entry in this list should have a 46 | # "family" key with the font family name, and a "fonts" key with a 47 | # list giving the asset and other descriptors for the font. For 48 | # example: 49 | # fonts: 50 | # - family: Schyler 51 | # fonts: 52 | # - asset: fonts/Schyler-Regular.ttf 53 | # - asset: fonts/Schyler-Italic.ttf 54 | # style: italic 55 | # - family: Trajan Pro 56 | # fonts: 57 | # - asset: fonts/TrajanPro.ttf 58 | # - asset: fonts/TrajanPro_Bold.ttf 59 | # weight: 700 60 | # 61 | # For details regarding fonts from package dependencies, 62 | # see https://flutter.io/custom-fonts/#from-packages 63 | -------------------------------------------------------------------------------- /flutter_umeng_analytics.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /flutter_umeng_analytics_android.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .vagrant/ 3 | .sconsign.dblite 4 | .svn/ 5 | 6 | .DS_Store 7 | *.swp 8 | profile 9 | 10 | DerivedData/ 11 | build/ 12 | 13 | *.pbxuser 14 | *.mode1v3 15 | *.mode2v3 16 | *.perspectivev3 17 | 18 | !default.pbxuser 19 | !default.mode1v3 20 | !default.mode2v3 21 | !default.perspectivev3 22 | 23 | xcuserdata 24 | 25 | *.moved-aside 26 | 27 | *.pyc 28 | *sync/ 29 | Icon? 30 | .tags* 31 | 32 | -------------------------------------------------------------------------------- /ios/Assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pedia/flutter_umeng_analytics/02d66ddc7d9ac1bf2219ea9a2e0d99ec7c6e2cfc/ios/Assets/.gitkeep -------------------------------------------------------------------------------- /ios/Classes/FlutterUmengAnalyticsPlugin.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface FlutterUmengAnalyticsPlugin : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /ios/Classes/FlutterUmengAnalyticsPlugin.m: -------------------------------------------------------------------------------- 1 | #import "FlutterUmengAnalyticsPlugin.h" 2 | 3 | #import "UMMobClick/MobClick.h" 4 | 5 | @implementation FlutterUmengAnalyticsPlugin 6 | + (void)registerWithRegistrar:(NSObject*)registrar { 7 | FlutterMethodChannel* channel = 8 | [FlutterMethodChannel methodChannelWithName:@"flutter_umeng_analytics" 9 | binaryMessenger:[registrar messenger]]; 10 | FlutterUmengAnalyticsPlugin* instance = [[FlutterUmengAnalyticsPlugin alloc] init]; 11 | [registrar addMethodCallDelegate:instance channel:channel]; 12 | } 13 | 14 | - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { 15 | if ([@"getPlatformVersion" isEqualToString:call.method]) { 16 | result([@"iOS " stringByAppendingString:[[UIDevice currentDevice] systemVersion]]); 17 | } else if ([@"init" isEqualToString:call.method]) { 18 | [self init:call result:result]; 19 | } else if ([@"logPageView" isEqualToString:call.method]) { 20 | [MobClick logPageView:call.arguments[@"name"] seconds:[call.arguments[@"seconds"] intValue]]; 21 | result(nil); 22 | } else if ([@"beginPageView" isEqualToString:call.method]) { 23 | [MobClick beginLogPageView:call.arguments[@"name"]]; 24 | result(nil); 25 | } else if ([@"endPageView" isEqualToString:call.method]) { 26 | [MobClick endLogPageView:call.arguments[@"name"]]; 27 | result(nil); 28 | } else if ([@"logEvent" isEqualToString:call.method]) { 29 | if (call.arguments[@"label"] != [NSNull null]) 30 | [MobClick event:call.arguments[@"name"] label:call.arguments[@"label"]]; 31 | else 32 | [MobClick event:call.arguments[@"name"]]; 33 | result(nil); 34 | } else { 35 | result(FlutterMethodNotImplemented); 36 | } 37 | } 38 | 39 | - (void)init:(FlutterMethodCall*)call result:(FlutterResult)result { 40 | UMConfigInstance.appKey = call.arguments[@"key"]; 41 | // UMConfigInstance.secret = call.arguments[@"secret"]; 42 | 43 | NSString* channel = call.arguments[@"channel"]; 44 | if (channel) UMConfigInstance.channelId = channel; 45 | 46 | NSNumber* policy = call.arguments[@"policy"]; 47 | if (policy) UMConfigInstance.eSType = [policy intValue]; 48 | 49 | NSNumber* reportCrash = call.arguments[@"reportCrash"]; 50 | if (reportCrash) UMConfigInstance.bCrashReportEnabled = [reportCrash boolValue]; 51 | 52 | [MobClick startWithConfigure:UMConfigInstance]; 53 | 54 | NSNumber* logEnable = call.arguments[@"logEnable"]; 55 | if (logEnable) [MobClick setLogEnabled:[logEnable boolValue]]; 56 | 57 | NSNumber* encrypt = call.arguments[@"encrypt"]; 58 | if (encrypt) [MobClick setEncryptEnabled:[encrypt boolValue]]; 59 | 60 | NSNumber* interval = call.arguments[@"interval"]; 61 | if (interval) [MobClick setLogSendInterval:[interval doubleValue]]; 62 | } 63 | 64 | @end 65 | -------------------------------------------------------------------------------- /ios/flutter_umeng_analytics.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html 3 | # 4 | Pod::Spec.new do |s| 5 | s.name = 'flutter_umeng_analytics' 6 | s.version = '0.0.1' 7 | s.summary = 'Flutter plugin for umeng:analytics' 8 | s.description = <<-DESC 9 | Flutter plugin for umeng:analytics 10 | DESC 11 | s.homepage = 'http://example.com' 12 | s.license = { :file => '../LICENSE' } 13 | s.author = { 'Your Company' => 'email@example.com' } 14 | s.source = { :path => '.' } 15 | s.source_files = 'Classes/**/*' 16 | s.public_header_files = 'Classes/**/*.h' 17 | s.dependency 'Flutter' 18 | s.dependency 'UMengAnalytics-NO-IDFA' 19 | s.static_framework = true 20 | 21 | s.ios.deployment_target = '8.0' 22 | end 23 | 24 | -------------------------------------------------------------------------------- /lib/flutter_umeng_analytics.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/services.dart'; 4 | 5 | /// 友盟统计Flutter插件类 6 | class UMengAnalytics { 7 | static const MethodChannel _channel = 8 | const MethodChannel('umeng_analytics_flutter'); 9 | 10 | /// [key] 【友盟+】Appkey名称 11 | /// [mode] 页面采集的两种模式:0表示Android 4.0及以上版本,1表示4.0以下版本,默认为0 12 | /// [reportCrash] 错误统计,默认为打开 13 | /// [encrypt] 日志加密 默认为false 14 | /// [interval] Session间隔时长,单位是毫秒,默认Session间隔时间是30秒,一般情况下不用修改此值 15 | /// [logEnable] 设置组件化的Log开关,参数默认为false,如需查看LOG设置为true 16 | static Future init(String key, 17 | {int mode = 0, 18 | bool reportCrash = true, 19 | bool encrypt = false, 20 | double interval = 30000, 21 | bool logEnable = false}) { 22 | Map args = {"key": key}; 23 | 24 | if (mode != null) { 25 | args["mode"] = mode; 26 | } 27 | if (reportCrash != null) { 28 | args["reportCrash"] = reportCrash; 29 | } 30 | if (encrypt != null) { 31 | args["encrypt"] = encrypt; 32 | } 33 | if (interval != null) { 34 | args["interval"] = interval; 35 | } 36 | if (logEnable != null) { 37 | args["logEnable"] = logEnable; 38 | } 39 | _channel.invokeMethod("init", args); 40 | return new Future.value(true); 41 | } 42 | 43 | /// 打开页面时进行统计 44 | /// [name] 45 | static Future beginPageView(String name) async { 46 | _channel.invokeMethod("beginPageView", {"name": name}); 47 | } 48 | 49 | /// 关闭页面时结束统计 50 | /// [name] 51 | static Future endPageView(String name) async { 52 | _channel.invokeMethod("endPageView", {"id": name}); 53 | } 54 | 55 | /// 登陆统计 56 | /// [id] 57 | /// [interval] 58 | static Future loginPageView(String id, {double interval}) async { 59 | _channel.invokeMethod("loginPageView", {"id": id, interval: interval}); 60 | } 61 | 62 | /// 计数事件统计 63 | /// [eventId] 当前统计的事件ID 64 | /// [label] 事件的标签属性 65 | static Future eventCounts(String eventId, {String label}) async { 66 | _channel.invokeMethod("eventCounts", {"label": label}); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: flutter_umeng_analytics 2 | description: Flutter Plugin for umeng:analytics (友盟统计) 3 | version: 0.0.2 4 | author: Ken 5 | homepage: https://github.com/pedia/flutter_umeng_analytics 6 | 7 | environment: 8 | sdk: ">=2.1.0 <3.0.0" 9 | 10 | dependencies: 11 | flutter: 12 | sdk: flutter 13 | 14 | flutter: 15 | plugin: 16 | androidPackage: pedia.flutterumenganalytics 17 | pluginClass: FlutterUmengAnalyticsPlugin 18 | --------------------------------------------------------------------------------