少年修仙传客户端基础资源
lwb
2021-03-23 0ca0aaf0a4a7766a596c341175e3cde1552c2eec
9527 接入firebase,升级为Android X 打包
2个文件已修改
199个文件已添加
7658 ■■■■■ 已修改文件
Assets/Editor Default Resources.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_analytics.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_analytics.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_auth.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_auth.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_auth_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_config.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_config.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_config_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_config_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_crashlytics.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_database.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_database.png.meta 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_database_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_database_dark.png.meta 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_dynamic_links.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_dynamic_links.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_functions.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_functions.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_functions_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_functions_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_storage.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_storage.png.meta 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_storage_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/fb_storage_dark.png.meta 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/firebase_lockup.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/firebase_lockup.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor/AndroidPostBuildProcessor.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/CHANGELOG.md 1301 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.meta 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.meta 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.meta 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.meta 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/LICENSE 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/LICENSE.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/README.md 768 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/README.md.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.164_manifest.txt 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.164_manifest.txt.meta 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/AnalyticsDependencies.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/AnalyticsDependencies.xml.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/AppDependencies.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/AppDependencies.xml.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/Firebase.Editor.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/Firebase.Editor.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/Firebase.Editor.dll.mdb.meta 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/Firebase.Editor.dll.meta 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/FirebaseAnalytics_version-7.1.0_manifest.txt 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/FirebaseAnalytics_version-7.1.0_manifest.txt.meta 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/generate_xml_from_google_services_json.exe.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/generate_xml_from_google_services_json.py 464 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/network_request.exe.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/network_request.py 416 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Editor/network_request.py.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Analytics.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Analytics.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Analytics.dll.mdb.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Analytics.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.App.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.App.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.App.dll.mdb.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.App.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Platform.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Platform.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Platform.dll.mdb.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.Platform.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.TaskExtension.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Google.MiniJson.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/Google.MiniJson.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.mdb.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.App.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/iOS/Firebase.App.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.bundle 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.bundle.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.srcaar 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.srcaar.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.srcaar 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.srcaar.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.aar 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.aar.meta 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.aar 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.aar.meta 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GoogleService-Info.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/GoogleService-Info.xml.meta 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/Unity.Compat.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/Unity.Compat.dll.meta 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/Unity.Tasks.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/Unity.Tasks.dll.meta 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/dotNet45.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/dotNet45/Unity.Compat.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/dotNet45/Unity.Compat.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib.meta 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml.meta 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/project.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/project.properties.meta 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/res.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/res/values.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml.meta 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/Android/mainTemplate.gradle 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/iOS/Firebase.meta 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/google-services.json 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/google-services.json.meta 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ProjectSettings/AndroidResolverDependencies.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Assets/Editor Default Resources.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cf9d62c6354c9f64cbe9c664cea43e29
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3347f97990565cd4e9eae069f2c7150e
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_analytics.png
Assets/Editor Default Resources/Firebase/fb_analytics.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: dc218b335b1d14cd5ae532f65042d829
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics.png
timeCreated: 1473376337
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 9fe4b3bd3b7d2477dac92fb7429d1d1b
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_analytics_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_auth.png
Assets/Editor Default Resources/Firebase/fb_auth.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 394b3ec4d60c24476a12e4ba696d9e5d
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_auth_dark.png
Assets/Editor Default Resources/Firebase/fb_auth_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 3a9e1ef6287664c389bb09e2ac1b23b7
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_auth_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 837e8e1f35e334e81931d0857680cebf
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging.png
timeCreated: 1473376336
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 20c5b8a1f82cb4aadb77ca20683d2a6e
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_config.png
Assets/Editor Default Resources/Firebase/fb_config.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 415eaec414af14d11955222a282aca08
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_config.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_config_dark.png
Assets/Editor Default Resources/Firebase/fb_config_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 0ad9ef5fff5524355a9670c90a99cbba
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_config_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_crashlytics.png
Assets/Editor Default Resources/Firebase/fb_crashlytics.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 008a5e76206e49f9b06d8ba144aabb38
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 214009068900439da4a9cded17d58090
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_crashlytics_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_database.png
Assets/Editor Default Resources/Firebase/fb_database.png.meta
New file
@@ -0,0 +1,69 @@
fileFormatVersion: 2
guid: 3eea7b558c67b48e18acf3c278392e3d
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_database.png
timeCreated: 1476203961
licenseType: Free
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    linearTexture: 0
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: -1
    mipBias: -1
    wrapMode: -1
  nPOTScale: 1
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 0
  spriteTessellationDetail: -1
  textureType: -1
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_database_dark.png
Assets/Editor Default Resources/Firebase/fb_database_dark.png.meta
New file
@@ -0,0 +1,69 @@
fileFormatVersion: 2
guid: 9f6bfa9d8aefb40dc92461c372c73b0f
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_database_dark.png
timeCreated: 1476203949
licenseType: Free
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    linearTexture: 0
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: -1
    mipBias: -1
    wrapMode: -1
  nPOTScale: 1
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 0
  spriteTessellationDetail: -1
  textureType: -1
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_dynamic_links.png
Assets/Editor Default Resources/Firebase/fb_dynamic_links.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: df6f219c396f4ad9b5048bae6944cb8e
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png
Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 9355a4671cfe4eef90879863318d1a4b
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_dynamic_links_dark.png
timeCreated: 1472679009
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_functions.png
Assets/Editor Default Resources/Firebase/fb_functions.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 953367231f9e3e22e70e5d1c91a40fe5
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions.png
timeCreated: 1473376335
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_functions_dark.png
Assets/Editor Default Resources/Firebase/fb_functions_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: b5aa3e4f7432e1c5698417cc13f85271
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_functions_dark.png
timeCreated: 1472679008
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_storage.png
Assets/Editor Default Resources/Firebase/fb_storage.png.meta
New file
@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 573eb851c99f948f4bf2de49322bfd53
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage.png
timeCreated: 1481243899
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 4
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: -1
    mipBias: -1
    wrapMode: -1
  nPOTScale: 1
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaUsage: 1
  alphaIsTransparency: 0
  spriteTessellationDetail: -1
  textureType: 0
  textureShape: 1
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/fb_storage_dark.png
Assets/Editor Default Resources/Firebase/fb_storage_dark.png.meta
New file
@@ -0,0 +1,78 @@
fileFormatVersion: 2
guid: 2955864b938094f579ea9902b65ac10c
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/fb_storage_dark.png
timeCreated: 1481243898
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 4
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: -1
    mipBias: -1
    wrapMode: -1
  nPOTScale: 1
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaUsage: 1
  alphaIsTransparency: 0
  spriteTessellationDetail: -1
  textureType: 0
  textureShape: 1
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/firebase_lockup.png
Assets/Editor Default Resources/Firebase/firebase_lockup.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: 9f058f25e8e2d47cfb894951d4d7e48a
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup.png
timeCreated: 1473376336
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png.meta
New file
@@ -0,0 +1,68 @@
fileFormatVersion: 2
guid: b93330fc8ea08407dbc514b5101afa14
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Editor Default Resources/Firebase/firebase_lockup_dark.png
timeCreated: 1472601251
licenseType: Pro
TextureImporter:
  fileIDToRecycleName: {}
  serializedVersion: 2
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    linearTexture: 1
    correctGamma: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  grayScaleToAlpha: 0
  generateCubemap: 0
  cubemapConvolution: 0
  cubemapConvolutionSteps: 7
  cubemapConvolutionExponent: 1.5
  seamlessCubemap: 0
  textureFormat: -1
  maxTextureSize: 2048
  textureSettings:
    filterMode: -1
    aniso: 1
    mipBias: -1
    wrapMode: 1
  nPOTScale: 0
  lightmap: 0
  rGBM: 0
  compressionQuality: 50
  allowsAlphaSplitting: 0
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot:
    x: 0.5
    y: 0.5
  spriteBorder:
    x: 0
    y: 0
    z: 0
    w: 0
  spritePixelsToUnits: 100
  alphaIsTransparency: 1
  textureType: 2
  buildTargetSettings: []
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
  spritePackingTag:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Editor/AndroidPostBuildProcessor.cs
@@ -12,6 +12,20 @@
    {
        Debug.Log("AndroidPostBuildProcessor path : " + path);
        //支持Android X
        string gradlePropertiesFile = path + "/gradle.properties";
        if (File.Exists(gradlePropertiesFile))
        {
            File.Delete(gradlePropertiesFile);
        }
        StreamWriter writer = File.CreateText(gradlePropertiesFile);
        writer.WriteLine("org.gradle.jvmargs=-Xmx4096M");
        writer.WriteLine("android.useAndroidX=true");
        writer.WriteLine("android.enableJetifier=true");
        writer.Flush();
        writer.Close();
        //导入当前渠道需要使用的第三方远程依赖库
        var versionConfig = VersionConfig.Get();
        var depsFile = StringUtility.Contact(ClientPackage.SDK_PLUGIN_PROJECT, "/Channel/Android/", versionConfig.appId, "/deps.gradle");
Assets/ExternalDependencyManager.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 00243d85892f6764a92c1b70e87d8033
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 478ca35e0a94d3c49be288d4855b1006
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/CHANGELOG.md
New file
@@ -0,0 +1,1301 @@
# Version 1.2.164 - Feb 4, 2021
## New Features
* Android Resolver - Added support for Android packages with classifier in their
  namespaces.
* iOS Resolver - Added new settings in iOS Resolver to configure generated
  Podfile.
* iOS Resolver - Added a new attribute `addToAllTargets` in Dependencies.xml.
## Bug Fixes
* iOS Resolver - Fixed XML parsing for `bitcodeEnabled` attribute in
  Dependencies.xml.
# Version 1.2.163 - Dec 15, 2020
## Bug Fixes
* Version Handler - Fixed measurement reporting
# Version 1.2.162 - Nov 19, 2020
## Bug Fixes
* Version Handler - Improved #413 by preventing Version Handler from running
  from static constructor when it is disabled.
* Package Manager Resolver - Remove GPR
# Version 1.2.161 - Oct 12, 2020
## Bug Fixes
* Android Resolver - Fixed the issue that Android Resolver does not resolve
  again before build in Unity 2020 if it failed to resolve previously.
# Version 1.2.160 - Sep 30, 2020
## Bug Fixes
* Android Resolver - Fixed a regression that gradleResolver can be null until
  Initialize() is called.
* Android Resolver - Fixed a regression that Android Resolver failed in Unity
  2019.3+ due to `gradleTemplate.properties` not enabled when
  `mainTemplate.gradle` is not enabled at all.
# Version 1.2.159 - Sep 11, 2020
## Bug Fixes
* Android Resolver - Fixed #322 where the Unity editor will lose its target SDK
  setting between Unity restarts if `>28` is selected in 2019.  This is due to
  Unity AndroidSdkVersions enum does not contain values above 28.
* Android Resolver - Fixed #360 where building Android app with Untiy 2019.3+
  may fail due to Jetifier and AndroidX not enabled properly in generated
  Gradle project. This fix requires the user to enable
  `Custom Gradle Properties Template` found under
  `Player Settings > Settings for Android > Publishing Settings`.
# Version 1.2.158 - Sep 3, 2020
## Bug Fixes
* Version Handler: Fixed editor freeze when `-executeMethod` is used in
  non-batch mode.
* Android Resolver: Normalized file paths when generating local Maven repo
  since the path may contains a mix of forward and backward slash on Windows.
* Export Unity Package: Fixed generation of .unitypackage with tarfile on
  Windows.
# Version 1.2.157 - Aug 6, 2020
## Bug Fixes
* Android Resolver: Delay initialization until active build target is Android
  and the editor is not in play mode.
* iOS Resolver: Delay initialization until active build target is iOS
  and the editor is not in play mode.
* Export Unity Package: Workaround directory creation racy if multiple export
  operations are spawned at the same time.
# Version 1.2.156 - June 10, 2020
## Bug Fixes
* Android Resolver: Fixed that the generated local repo assets contains
  redundent labels which are causing Version Handler to failed while
  uninstalling packages.
* Android Resolver: Fixed that the repo url injected into mainTemplate.gradle
  is incorrect when Unity is configured to export gradle project.
* Android Resolver: Limited to only create local Maven repo when the source
  repo contains ".srcaar" file.
## Changes
* All: Described EDM4U analytics data usage in readme.
# Version 1.2.155 - May 14, 2020
## Bug Fixes
* All: Fixed compiler error when build with Unity 5.4 or below due to the
  usage of Rect.zero.
* All: Ignore cases when checking command line arguments.
# Version 1.2.154 - May 14, 2020
## Bug Fixes
* All: Make each MultiSelectWindow for different purposes to have its own
  unique window.
## Changes
* All: Replace all dialog with DialogWindow which is implemented from
  EditorWindow.
* Package Manager Resolver: Clarify how manifest.json will be changed in Package
  Manager Resolver window.
# Version 1.2.153 - Apr 24, 2020
## Bug Fixes
* Android Resolver: Fixed an exception when repainting the Android resolution
  window in Unity 2019.3.x.
# Version 1.2.152 - Apr 17, 2020
## Bug Fixes
* Version Handler: Fixed exception when waiting for enabled editor DLLs to
  load.
* Android Resolver: Fixed regression when using a Custom Gradle Template
  on Windows.
# Version 1.2.151 - Apr 16, 2020
## Bug Fixes
* Version Handler: When waiting for newly enabled editor DLLs to load, ignore
  all DLLs that do not have a file-system location.
* Android Resolver: Fixed resolution when using a Custom Gradle Template with
  libraries stored in a local maven repository distributed with a plugin
  installed with the Unity Package Manager.
# Version 1.2.150 - Apr 9, 2020
## Bug Fixes
* All: The new packaging script when run on MacOS was generating a
  .unitypackage archive that could not be read by Unity on Windows.
  This release simply repackages the plugin with tar/gzip to fix the problem.
# Version 1.2.149 - Apr 8, 2020
## Bug Fixes
* Package Manager Resolver: Fixed spurious error message when resuming
  migration after installing a UPM package.
# Version 1.2.148 - Apr 8, 2020
## Bug Fixes
* Package Manager Resolver: Fixed an exception when resuming migration
  after installing a UPM package.
# Version 1.2.147 - Apr 8, 2020
## Bug Fixes
* Version Handler: Fixed alias traversal bug which caused problems when
  migrating from installed .unitypackage files to UPM packages.
# Version 1.2.146 - Apr 8, 2020
## Bug Fixes
* Version Handler: Fixed exception in manifest parsing when a manifest is
  detected with no aliases.
# Version 1.2.145 - Apr 2, 2020
## New Features
* Package Manager Resolver: Added a method to migrate Version Handler
  managed packages installed via `.unitypackage` to Unity Package Manager
  packages. This is initially used to migrate the External Dependency Manager
  to UPM.
## Changes
* All: Verbose logging is now no longer automatically enabled in batch mode
  across all components. Instead logging can be configured using each
  component's verbose logging setting or by using the `-gvh_log_debug` command
  line flag when starting Unity.
* Version Handler: Sped up version handler updates when the app domain isn't
  reloaded.
## Bug Fixes
* Version Handler: Fixed the display of the obsolete files clean up dialog
  when the asset database refreshes.
* Version Handler: Improved reliability of callback from
  the VersionHandler.UpdateCompleteMethods event when an asset database
  refresh occurs.
* Version Handler: Fixed duplicate exportPath labels when 'Assets/' is the
  root of paths assigned to files.
* Version Handler: Handle empty lines in manifest files.
# Version 1.2.144 - Mar 23, 2020
## Changed
* iOS Resolver: Removed the ability to configure the Xcode target a Cocoapod
  is added to.
## Bug Fixes
* iOS Resolver: Reverted support for adding Cocoapods to multiple targets as
  it caused a regression (exception thrown during post-build step) in some
  versions of Unity.
# Version 1.2.143 - Mar 20, 2020
## Bug Fixes
* Android Resolver: Fixed caching of resolution state which was causing
  the resolver to always run when no dependencies had changed.
# Version 1.2.142 - Mar 19, 2020
## Changes
* Package Manager Resolver: Enabled auto-add by default.
# Version 1.2.141 - Mar 19, 2020
## Bug Fixes
* Fixed a bug when retrieving project settings. If a plugin was configured
  to fetch project settings, if a setting was fetched (e.g "foo") and this
  setting existed in the system settings but not the project settings the
  system value would override the default value leading to unexpected
  behavior.
* Fixed a warning when caching web request classes in Unity 5.6.
# Version 1.2.140 - Mar 19, 2020
## Bug Fixes
* Fixed measurement reporting in Unity 5.x.
* Version Handler: Fixed NullReferenceException when an asset doesn't have
  an AssetImporter.
# Version 1.2.139 - Mar 18, 2020
## Changed
* Added documentation to the built plugin.
# Version 1.2.138 - Mar 17, 2020
## New Features
* Package Manager Resolver: Added the Package Manager Resolver
  component that allows developers to easily boostrap Unity Package Manager
  (UPM) registry addition using unitypackage plugins.
* Version Handler: Added a window that allows plugins to managed by the
  Version Handler to be uninstalled.
* Version Handler: Added support for displaying installed plugins.
* Version Handler: Added support for moving files in plugins to their install
  locations (if the plugin has been configured to support this).
* iOS Resolver: Added the ability to configure the Xcode target a Cocoapod is
  added to.
## Bug Fixes
* Fixed upgrade from version 1.2.137 and below after the plugin rename to
  EDM4U broke the upgrade process.
* Android Resolver: Worked around PlayerSettings.Android.targetSdkVersion
  returning empty names for some values in 2019.x.
* Version Handler: Fixed the display of the obsolete files clean up window.
* Version Handler: Fixed managed file check when assets are modified in the
  project after plugin import.
# Version 1.2.137 - Mar 6, 2020
## Changed
* Renamed package to External Package Manager for Unity (EDM4U).
  We changed this to reflect what this plugin is doing today which is far more
  than the original scope which just consisted of importing jar files from the
  Android SDK maven repository.
  Scripts that used to pull `play-services-resolver*.unitypackage` will now have
  to request `external-dependency-manager*.unitypackage` instead.
  We'll still be shipping a `play-services-resolver*_manifest.txt` file to
  handle upgrading from older versions of the plugin.
## New Features
* All Components: Added reporting of usage so that we can remotely detect
  errors and target improvements.
* Android Resolver: Added support for *Dependencies.xml files in Unity Package
  Manager packages.
* iOS Resolver: Added support for *Dependencies.xml files in Unity Package
  Manager packages.
## Bug Fixes
* Version Handler: Disabled attempts to disable asset metadata modification
  when assets are in a Unity Package Manager managed package.
# Version 1.2.136 - Feb 19, 2019
## Bug Fixes
* Android Resolver: Fixed OpenJDK path discovery in Unity 2019.3.1.
# Version 1.2.135 - Dec 5, 2019
## Bug Fixes
* All Components: Fixed stack overflow when loading project settings.
# Version 1.2.134 - Dec 4, 2019
## Bug Fixes
* All Components: Fixed an issue which caused project settings to be cleared
  when running in batch mode.
# Version 1.2.133 - Nov 18, 2019
## Bug Fixes
* All Components: Failure to save project settings will now report an error
  to the log rather than throwing an exception.
# Version 1.2.132 - Nov 11, 2019
## Bug Fixes
* Android Resolver: Worked around expansion of DIR_UNITYPROJECT on Windows
  breaking Gradle builds when used as part of a file URI.
* Android Resolver: mainTemplate.gradle is only written if it needs to be
  modified.
# Version 1.2.131 - Oct 29, 2019
## Bug Fixes
* Version Handler: Improved execution of events on the main thread in batch
  mode.
* Version Handler: Improved log level configuration at startup.
* Version Handler: Improved performance of class lookup in deferred method
  calls.
* Version Handler: Fixed rename to enable / disable for editor assets.
* iOS Resolver: Improved log level configuration at startup.
* Android Resolver: Improved local maven repo path reference in
  mainTemplate.gradle using DIR_UNITYPROJECT.  DIR_UNITYPROJECT by Unity
  to point to the local filesystem path of the Unity project when Unity
  generates the Gradle project.
# Version 1.2.130 - Oct 23, 2019
## New Features
* iOS Resolver: Added support for modifying the Podfile before `pod install`
  is executed.
## Bug Fixes
* Version Handler: Fixed invalid classname error when calling
  `VersionHandler.UpdateVersionedAssets()`.
# Version 1.2.129 - Oct 2, 2019
## Bug Fixes
* iOS Resolver: Changed Cocoapod integration in Unity 2019.3+ to
  only add Pods to the UnityFramework target.
# Version 1.2.128 - Oct 1, 2019
## Bug Fixes
* iOS Resolver: Fixed Cocoapod project integration mode with Unity
  2019.3+.
# Version 1.2.127 - Sep 30, 2019
## Changes
* Android Resolver: All Android Resolver settings File paths are now
  serialized with POSIX directory separators.
# Version 1.2.126 - Sep 27, 2019
## Changes
* Android Resolver: File paths are now serialized with POSIX directory
  separators.
## Bug Fixes
* Android Resolver: Fixed resolution when the parent directory of a Unity
  project contains a Gradle project (i.e `settings.gradle` file).
# Version 1.2.125 - Sep 23, 2019
## Bug Fixes
* All components: Silenced a warning about not being able to set the console
  encoding to UTF8.
* Android Resolver: Worked around broken AndroidSDKTools class in some
  versions of Unity.
* iOS Resolver: Fixed iOS target SDK version check
* Version Handler: Changed clean up obsolete files window so that it doesn't
  exceed the screen size.
# Version 1.2.124 - Jul 28, 2019
## Bug Fixes
* All components: Fixed regression with source control integration when using
  Unity 2019.1+.
# Version 1.2.123 - Jul 23, 2019
## New Features
* All components: Source control integration for project settings.
## Changes
* Android Resolver: Removed AAR cache as it now makes little difference to
  incremental resolution performance.
* Android Resolver: Improved embedded resource management so that embedded
  resources should upgrade when the plugin is updated without restarting
  the Unity editor.
## Bug Fixes
* Version Handler: Fixed InvokeMethod() and InvokeStaticMethod() when calling
  methods that have interface typed arguments.
# Version 1.2.122 - Jul 2, 2019
## Bug Fixes
* iOS Resolver: Worked around Unity not loading the iOS Resolver DLL as it
  referenced the Xcode extension in a public interface.  The iOS Resolver
  DLL still references the Xcode extension internally and just handles
  missing type exceptions dynamically.
# Version 1.2.121 - Jun 27, 2019
## Bug Fixes
* Android Resolver: Fixed warning about missing Packages folder when loading
  XML dependencies files in versions of Unity without the package manager.
* Android Resolver: Fixed resolution window progress bar exceeding 100%.
* Android Resolver: If AndroidX is detected in the set of resolved libraries,
  the user will be prompted to enable the Jetifier.
* Android Resolver: Improved text splitting in text area windows.
* iOS Resolver: Added support for Unity's breaking changes to the Xcode API
  in 2019.3.+. Cocoapods are now added to build targets, Unity-iPhone and
  UnityFramework in Unity 2019.3+.
# Version 1.2.120 - Jun 26, 2019
## New Features
* Android Resolver: Added support for loading *Dependencies.xml files from
  Unity Package Manager packages.
* Android Resolver: Resolution window is now closed if resolution runs as
  a pre-build step.
* iOS Resolver: Added support for loading *Dependencies.xml files from
  Unity Package Manager packages.
## Bug Fixes
* Android Resolver: Fixed generation of relative repo paths when using
  mainTemplate.gradle resolver.
* Android Resolver: Fixed copy of .srcaar to .aar files in repos embedded in a
  project when a project path has characters (e.g whitespace) that are escaped
  during conversion to URIs.
* Android Resolver: Fixed auto-resolution always running if the Android SDK
  is managed by Unity Hub.
# Version 1.2.119 - Jun 19, 2019
## Bug Fixes
* Android Resolver: Fixed error reported when using Jetifier integration
  in Unity 2018+ if the target SDK is set to "highest installed".
# Version 1.2.118 - Jun 18, 2019
## New Features
* Android Resolver: Added initial
  [Jetifier](https://developer.android.com/studio/command-line/jetifier)
  integration which simplifies
  [migration](ttps://developer.android.com/jetpack/androidx/migrate)
  to Jetpack ([AndroidX](https://developer.android.com/jetpack/androidx))
  libraries in cases where all dependencies are managed by the Android
  Resolver.
  This can be enabled via the `Use Jetifier` option in the
  `Assets > Play Services Resolver > Android Resolver > Settings` menu.
  Caveats:
  - If your project contains legacy Android Support Library .jar and .aar
    files, these files will need to be removed and replaced with references to
    artifacts on Maven via `*Dependencies.xml` files so that the Jetifier
    can map them to Jetpack (AndroidX) libraries.
    For example, remove the file `support-v4-27.0.2.jar` and replace it with
    `<androidPackage spec="com.android.support:support-v4:27.0.2"/>` in a
    `*Dependencies.xml` file.
  - If your project contains .jar or .aar files that use the legacy Android
    Support Libraries, these will need to be moved into a local Maven repo
    [See this guide](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
    and then these files should be removed from your Unity project and instead
    referenced via `*Dependencies.xml` files so that the Jetifier can
    patch them to reference the Jetpack lirbaries.
## Bug Fixes
* Android Resolver: Disabled version locking of com.android.support:multidex
  does not use the same versioning scheme as other legacy Android support
  libraries.
* Version Handler: Made Google.VersionHandler.dll's asset GUID stable across
  releases.  This faciliates error-free import into projects where
  Google.VersionHandler.dll is moved from the default install location.
# Version 1.2.117 - Jun 12, 2019
## Bug Fixes
* Android Resolver: Fix copying of .srcaar to .aar files for
  mainTemplate.gradle resolution.  PluginImporter configuration was previously
  not being applied to .aar files unless the Unity project was saved.
# Version 1.2.116 - Jun 7, 2019
## Bug Fixes
* Android Resolver: Fixed resolution of Android dependencies without version
  specifiers.
* Android Resolver: Fixed Maven repo not found warning in Android Resolver.
* Android Resolver: Fixed Android Player directory not found exception in
  Unity 2019.x when the Android Player isn't installed.
# Version 1.2.115 - May 28, 2019
## Bug Fixes
* Android Resolver: Fixed exception due to Unity 2019.3.0a4 removing
  x86 from the set of supported ABIs.
# Version 1.2.114 - May 27, 2019
## New Features
* Android Resolver: Added support for ABI stripping when using
  mainTemplate.gradle. This only works with AARs stored in repos
  on the local filesystem.
# Version 1.2.113 - May 24, 2019
## New Features
* Android Resolver: If local repos are moved, the plugin will search the
  project for matching directories in an attempt to correct the error.
* Version Handler: Files can be now targeted to multiple build targets
  using multiple "gvh_" asset labels.
## Bug Fixes
* Android Resolver: "implementation" or "compile" are now added correctly
  to mainTemplate.gradle in Unity versions prior to 2019.
# Version 1.2.112 - May 22, 2019
## New Features
* Android Resolver: Added option to disable addition of dependencies to
  mainTemplate.gradle.
  See `Assets > Play Services Resolver > Android Resolver > Settings`.
* Android Resolver: Made paths to local maven repositories in
  mainTemplate.gradle relative to the Unity project when a project is not
  being exported.
## Bug Fixes
* Android Resolver: Fixed builds with mainTemplate.gradle integration in
  Unity 2019.
* Android Resolver: Changed dependency inclusion in mainTemplate.gradle to
  use "implementation" or "compile" depending upon the version of Gradle
  included with Unity.
* Android Resolver: Gracefully handled exceptions if the console encoding
  can't be modified.
* Android Resolver: Now gracefully fails if the AndroidPlayer directory
  can't be found.
# Version 1.2.111 - May 9, 2019
## Bug Fixes
* Version Handler: Fixed invocation of methods with named arguments.
* Version Handler: Fixed occasional hang when the editor is compiling
  while activating plugins.
# Version 1.2.110 - May 7, 2019
## Bug Fixes
* Android Resolver: Fixed inclusion of some srcaar artifacts in builds with
  Gradle builds when using mainTemplate.gradle.
# Version 1.2.109 - May 6, 2019
## New Features:
* Added links to documentation from menu.
* Android Resolver: Added option to auto-resolve Android libraries on build.
* Android Resolver: Added support for packaging specs of Android libraries.
* Android Resolver: Pop up a window when displaying Android dependencies.
## Bug Fixes
* Android Resolver: Support for Unity 2019 Android SDK and JDK install locations
* Android Resolver: e-enable AAR explosion if internal builds are enabled.
* Android Resolver: Gracefully handle exceptions on file deletion.
* Android Resolver: Fixed Android Resolver log spam on load.
* Android Resolver: Fixed save of Android Resolver PromptBeforeAutoResolution
  setting.
* Android Resolver: Fixed AAR processing failure when an AAR without
  classes.jar is found.
* Android Resolver: Removed use of EditorUtility.DisplayProgressBar which
  was occasionally left displayed when resolution had completed.
* Version Handler: Fixed asset rename to disable when a disabled file exists.
# Version 1.2.108 - May 3, 2019
## Bug Fixes:
* Version Handler: Fixed occasional hang on startup.
# Version 1.2.107 - May 3, 2019
## New Features:
* Version Handler: Added support for enabling / disabling assets that do not
  support the PluginImporter, based upon build target selection.
* Android Resolver: Added support for the global specification of maven repos.
* iOS Resolver: Added support for the global specification of Cocoapod sources.
# Version 1.2.106 - May 1, 2019
## New Features
* iOS Resolver: Added support for development pods in Xcode project integration
  mode.
* iOS Resolver: Added support for source pods with resources in Xcode project
  integration mode.
# Version 1.2.105 - Apr 30, 2019
## Bug fixes
* Android Resolver: Fixed reference to Java tool path in logs.
* Android and iOS Resolvers: Changed command line execution to emit a warning
  rather than throwing an exception and failing, when it is not possible to
  change the console input and output encoding to UTF-8.
* Android Resolver: Added menu option and API to delete resolved libraries.
* Android Resolver: Added menu option and API to log the repos and libraries
  currently included in the project.
* Android Resolver: If Plugins/Android/mainTemplate.gradle file is present and
  Gradle is selected as the build type, resolution will simply patch the file
  with Android dependencies specified by plugins in the project.
# Version 1.2.104 - Apr 10, 2019
## Bug Fixes
* Android Resolver: Changed Android ABI selection method from using whitelisted
  Unity versions to type availability.  This fixes an exception on resolution
  in some versions of Unity 2017.4.
# Version 1.2.103 - Apr 2, 2019
## Bug Fixes
* Android Resolver: Whitelisted Unity 2017.4 and above with ARM64 support.
* Android Resolver: Fixed Java version check to work with Java SE 12 and above.
# Version 1.2.102 - Feb 13, 2019
## Bug Fixes
* Android Resolver: Fixed the text overflow on the Android Resolver
  prompt before initial run to fit inside the buttons for
  smaller screens.
# Version 1.2.101 - Feb 12, 2019
## New Features
* Android Resolver: Prompt the user before the resolver runs for the
  first time and allow the user to elect to disable from the prompt.
* Android Resolver: Change popup warning when resolver is disabled
  to be a console warning.
# Version 1.2.100 - Jan 25, 2019
## Bug Fixes
* Android Resolver: Fixed AAR processing sometimes failing on Windows
  due to file permissions.
# Version 1.2.99 - Jan 23, 2019
## Bug Fixes
* Android Resolver: Improved performance of project property polling.
* Version Handler: Fixed callback of VersionHandler.UpdateCompleteMethods
  when the update process is complete.
# Version 1.2.98 - Jan 9, 2019
## New Features
* iOS Resolver: Pod declaration properties can now be set via XML pod
  references.  For example, this can enable pods for a subset of build
  configurations.
## Bug Fixes
* iOS Resolver: Fixed incremental builds after local pods support caused
  regression in 1.2.96.
# Version 1.2.97 - Dec 17, 2018
## Bug Fixes
* Android Resolver: Reduced memory allocation for logic that monitors build
  settings when auto-resolution is enabled.  If auto-resolution is disabled,
  almost all build settings are no longer polled for changes.
# Version 1.2.96 - Dec 17, 2018
## Bug Fixes
* Android Resolver: Fixed repacking of AARs to exclude .meta files.
* Android Resolver: Only perform auto-resolution on the first scene while
  building.
* Android Resolver: Fixed parsing of version ranges that include whitespace.
* iOS Resolver: Added support for local development pods.
* Version Handler: Fixed Version Handler failing to rename some files.
# Version 1.2.95 - Oct 23, 2018
## Bug Fixes:
* Android Resolver: Fixed auto-resolution running in a loop in some scenarios.
# Version 1.2.94 - Oct 22, 2018
## Bug Fixes
* iOS Resolver: Added support for PODS_TARGET_SRCROOT in source Cocoapods.
# Version 1.2.93 - Oct 22, 2018
## Bug Fixes
* Android Resolver: Fixed removal of Android libraries on auto-resolution when
  `*Dependencies.xml` files are deleted.
# Version 1.2.92 - Oct 2, 2018
## Bug Fixes
* Android Resolver: Worked around auto-resolution hang on Windows if
  resolution starts before compilation is finished.
# Version 1.2.91 - Sep 27, 2018
## Bug Fixes
* Android Resolver: Fixed Android Resolution when the selected build target
  isn't Android.
* Added C# assembly symbols the plugin to simplify debugging bug reports.
# Version 1.2.90 - Sep 21, 2018
## Bug Fixes
* Android Resolver: Fixed transitive dependency selection of version locked
  packages.
# Version 1.2.89 - Aug 31, 2018
## Bug Fixes
* Fixed FileLoadException in ResolveUnityEditoriOSXcodeExtension an assembly
  can't be loaded.
# Version 1.2.88 - Aug 29, 2018
## Changed
* Improved reporting of resolution attempts and conflicts found in the Android
  Resolver.
## Bug Fixes
* iOS Resolver now correctly handles sample code in CocoaPods.  Previously it
  would add all sample code to the project when using project level
  integration.
* Android Resolver now correctly handles Gradle conflict resolution when the
  resolution results in a package that is compatible with all requested
  dependencies.
# Version 1.2.87 - Aug 23, 2018
## Bug Fixes
* Fixed Android Resolver "Processing AARs" dialog getting stuck in Unity 5.6.
# Version 1.2.86 - Aug 22, 2018
## Bug Fixes
* Fixed Android Resolver exception in OnPostProcessScene() when the Android
  platform isn't selected.
# Version 1.2.85 - Aug 17, 2018
## Changes
* Added support for synchronous resolution in the Android Resolver.
  PlayServicesResolver.ResolveSync() now performs resolution synchronously.
* Auto-resolution in the Android Resolver now results in synchronous resolution
  of Android dependencies before the Android application build starts via
  UnityEditor.Callbacks.PostProcessSceneAttribute.
# Version 1.2.84 - Aug 16, 2018
## Bug Fixes
* Fixed Android Resolver crash when the AndroidResolverDependencies.xml
  file can't be written.
* Reduced log spam when a conflicting Android library is pinned to a
  specific version.
# Version 1.2.83 - Aug 15, 2018
## Bug Fixes
* Fixed Android Resolver failures due to an in-accessible AAR / JAR explode
  cache file.  If the cache can't be read / written the resolver now continues
  with reduced performance following recompilation / DLL reloads.
* Fixed incorrect version number in plugin manifest on install.
  This was a minor issue since the version handler rewrote the metadata
  after installation.
# Version 1.2.82 - Aug 14, 2018
## Changed
* Added support for alphanumeric versions in the Android Resolver.
## Bug Fixes
* Fixed Android Resolver selection of latest duplicated library.
* Fixed Android Resolver conflict resolution when version locked and non-version
  locked dependencies are specified.
* Fixed Android Resolver conflict resolution when non-existent artifacts are
  referenced.
# Version 1.2.81 - Aug 9, 2018
## Bug Fixes
* Fixed editor error that would occur when when
  `PlayerSettings.Android.targetArchitectures` was set to
  `AndroidArchitecture.All`.
# Version 1.2.80 - Jul 24, 2018
## Bug Fixes
* Fixed project level settings incorrectly falling back to system wide settings
  when default property values were set.
# Version 1.2.79 - Jul 23, 2018
## Bug Fixes
* Fixed AndroidManifest.xml patching on Android Resolver load in Unity 2018.x.
# Version 1.2.78 - Jul 19, 2018
## Changed
* Added support for overriding conflicting dependencies.
# Version 1.2.77 - Jul 19, 2018
## Changed
* Android Resolver now supports Unity's 2018 ABI filter (i.e arm64-v8a).
* Reduced Android Resolver build option polling frequency.
* Disabled Android Resolver auto-resolution in batch mode.  Users now need
  to explicitly kick off resolution through the API.
* All Android Resolver and Version Handler dialogs are now disabled in batch
  mode.
* Verbose logging for all plugins is now enabled by default in batch mode.
* Version Handler bootstrapper has been improved to no longer call
  UpdateComplete multiple times.  However, since Unity can still reload the
  app domain after plugins have been enabled, users still need to store their
  plugin state to persistent storage to handle reloads.
## Bug Fixes
* Android Resolver no longer incorrectly adds MANIFEST.MF files to AARs.
* Android Resolver auto-resolution jobs are now unscheduled when an explicit
  resolve job is started.
# Version 1.2.76 - Jul 16, 2018
## Bug Fixes
* Fixed variable replacement in AndroidManifest.xml files in the Android
  Resolver.
  Version 1.2.75 introduced a regression which caused all variable replacement
  to replace the *entire* property value rather than the component of the
  property that referenced a variable.  For example,
  given "applicationId = com.my.app", "${applicationId}.foo" would be
  incorrectly expanded as "com.my.app" rather than "com.my.app.foo".  This
  resulted in numerous issues for Android builds where content provider
  initialization would fail and services may not start.
## Changed
* Gradle prebuild experimental feature has been removed from the Android
  Resolver.  The feature has been broken for some time and added around 8MB
  to the plugin size.
* Added better support for execution of plugin components in batch mode.
  In batch mode UnityEditor.update is sometimes never called - like when a
  single method is executed - so the new job scheduler will execute all jobs
  synchronously from the main thread.
# Version 1.2.75 - Jun 20, 2018
## New Features
* Android Resolver now monitors the Android SDK path when
  auto-resolution is enabled and triggers resolution when the path is
  modified.
## Changed
* Android auto-resolution is now delayed by 3 seconds when the following build
  settings are changed:
  - Target ABI.
  - Gradle build vs. internal build.
  - Project export.
* Added a progress bar display when AARs are being processed during Android
  resolution.
## Bug Fixes
* Fixed incorrect Android package version selection when a mix of
  version-locked and non-version-locked packages are specified.
* Fixed non-deterministic Android package version selection to select
  the highest version of a specified package rather than the last
  package specification passed to the Gradle resolution script.
# Version 1.2.74 - Jun 19, 2018
## New Features
* Added workaround for broken AndroidManifest.xml variable replacement in
  Unity 2018.x.  By default ${applicationId} variables will be replaced by
  the bundle ID in the Plugins/Android/AndroidManifest.xml file.  The
  behavior can be disabled via the Android Resolver settings menu.
# Version 1.2.73 - May 30, 2018
## Bug Fixes
* Fixed spurious warning message about missing Android plugins directory on
  Windows.
# Version 1.2.72 - May 23, 2018
## Bug Fixes
* Fixed spurious warning message about missing Android plugins directory.
# Version 1.2.71 - May 10, 2018
## Bug Fixes
* Fixed resolution of Android dependencies when the `Assets/Plugins/Android`
  directory is named in a different case e.g `Assets/plugins/Android`.
# Version 1.2.70 - May 7, 2018
## Bug Fixes
* Fixed bitcode flag being ignored for iOS pods.
# Version 1.2.69 - May 7, 2018
## Bug Fixes
* Fixed escaping of local repository paths in Android Resolver.
# Version 1.2.68 - May 3, 2018
## Changes
* Added support for granular builds of Google Play Services.
# Version 1.2.67 - May 1, 2018
## Changes
* Improved support for iOS source-only pods in Unity 5.5 and below.
# Version 1.2.66 - April 27, 2018
## Bug Fixes
* Fixed Version Handler renaming of Linux libraries with hyphens in filenames.
  Previously, libraries named Foo-1.2.3.so were not being renamed to
  libFoo-1.2.3.so on Linux which could break native library loading on some
  versions of Unity.
# Version 1.2.65 - April 26, 2018
## Bug Fixes
* Fix CocoaPods casing in logs and comments.
# Version 1.2.64 - Mar 16, 2018
## Bug Fixes
* Fixed bug in download_artifacts.gradle (used by Android Resolver) which
  reported a failure if required artifacts already exist.
# Version 1.2.63 - Mar 15, 2018
## Bug Fixes
* Fixed iOS Resolver include search paths taking precedence over system headers
  when using project level resolution.
* Fixed iOS Resolver includes relative to library root, when using project level
  resolution.
# Version 1.2.62 - Mar 12, 2018
## Changes
* Improved error reporting when a file can't be moved to trash by the
  Version Handler.
## Bug Fixes
* Fixed Android Resolver throwing NullReferenceException when the Android SDK
  path isn't set.
* Fixed Version Handler renaming files with underscores if the
  "Rename to Canonical Filenames" setting is enabled.
# Version 1.2.61 - Jan 22, 2018
## Bug Fixes
* Fixed Android Resolver reporting non-existent conflicting dependencies when
  Gradle build system is enabled.
# Version 1.2.60 - Jan 12, 2018
## Changes
* Added support for Maven / Ivy version specifications for Android packages.
* Added support for Android SNAPSHOT packages.
## Bug Fixes
* Fixed Openjdk version check.
* Fixed non-deterministic Android package resolution when two packages contain
  an artifact with the same name.
# Version 1.2.59 - Oct 19, 2017
## Bug Fixes
* Fixed execution of Android Gradle resolution script when it's located
  in a path with whitespace.
# Version 1.2.58 - Oct 19, 2017
## Changes
* Removed legacy resolution method from Android Resolver.
  It is now only possible to use the Gradle or Gradle prebuild resolution
  methods.
# Version 1.2.57 - Oct 18, 2017
## Bug Fixes
* Updated Gradle wrapper to 4.2.1 to fix issues using Gradle with the
  latest Openjdk.
* Android Gradle resolution now also uses gradle.properties to pass
  parameters to Gradle in an attempt to workaround problems with
  command line argument parsing on Windows 10.
# Version 1.2.56 - Oct 12, 2017
## Bug Fixes
* Fixed Gradle artifact download with non-version locked artifacts.
* Changed iOS resolver to only load dependencies at build time.
# Version 1.2.55 - Oct 4, 2017
## Bug Fixes
* Force Android Resolution when the "Install Android Packages" setting changes.
# Version 1.2.54 - Oct 4, 2017
## Bug Fixes
* Fixed execution of command line tools on Windows when the path to the tool
  contains a single quote (apostrophe).  In this case we fallback to executing
  the tool via the system shell.
# Version 1.2.53 - Oct 2, 2017
## New Features
* Changed Android Resolver "resolution complete" dialog so that it now displays
  failures.
* Android Resolver now detects conflicting libraries that it does not manage
  warning the user if they're newer than the managed libraries and prompting
  the user to clean them up if they're older or at the same version.
## Bug Fixes
* Improved Android Resolver auto-resolution speed.
* Fixed bug in the Gradle Android Resolver which would result in resolution
  succeeding when some dependencies are not found.
# Version 1.2.52 - Sep 25, 2017
## New Features
* Changed Android Resolver's Gradle resolution to resolve conflicting
  dependencies across Google Play services and Android Support library packages.
# Version 1.2.51 - Sep 20, 2017
## Changes
* Changed iOS Resolver to execute the CocoaPods "pod" command via the shell
  by default.  Some developers customize their shell environment to use
  custom ssh certs to access internal git repositories that host pods so
  executing "pod" via the shell will work for these scenarios.
  The drawback of executing "pod" via the shell could potentially cause
  users problems if they break their shell environment.  Though users who
  customize their shell environments will be able to resolve these issues.
# Version 1.2.50 - Sep 18, 2017
## New Features
* Added option to disable the Gradle daemon in the Android Resolver.
  This daemon is now disabled by default as some users are getting into a state
  where multiple daemon instances are being spawned when changing dependencies
  which eventually results in Android resolution failing until all daemon
  processes are manually killed.
## Bug Fixes
* Android resolution is now always executed if the user declines the update
  of their Android SDK.  This ensure users can continue to use out of date
  Android SDK packages if they desire.
# Version 1.2.49 - Sep 18, 2017
## Bug Fixes
* Removed modulemap parsing in iOS Resolver.
  The framework *.modulemap did not need to be parsed by the iOS Resolver
  when injecting Cocoapods into a Xcode project.  Simply adding a modular
  framework to a Xcode project results in Xcode's Clang parsing the associated
  modulemap and injecting any compile and link flags into the build process.
# Version 1.2.48 - Sep 12, 2017
## New Features
* Changed settings to be per-project by default.
## Bug Fixes
* Added Google maven repository to fix GradlePrebuild resolution with Google
  components.
* Fixed Android Resolution failure with spaces in paths.
# Version 1.2.47 - Aug 29, 2017
## New Features
* Android and iOS dependencies can now be specified using *Dependencies.xml
  files.  This is now the preferred method for registering dependencies,
  we may remove the API for dependency addition in future.
* Added "Reset to Defaults" button to each settings dialog to restore default
  settings.
* Android Resolver now validates the configured JDK is new enough to build
  recently released Android libraries.
## Bug Fixes
* Fixed a bug that caused dependencies with the "LATEST" version specification
  to be ignored when using the Gradle mode of the Android Resolver.
* Fixed a race condition when running Android Resolution.
* Fixed Android Resolver logging if a PlayServicesSupport instance is created
  with no logging enabled before the Android Resolver is initialized.
* Fixed iOS resolver dialog in Unity 4.
* Fixed iOS Cocoapod Xcode project integration in Unity 4.
# Version 1.2.46 - Aug 22, 2017
## Bug Fixes
* GradlePrebuild Android resolver on Windows now correctly locates dependent
  data files.
# Version 1.2.45 - Aug 22, 2017
## Bug Fixes
* Improved Android package auto-resolution and fixed clean up of stale
  dependencies when using Gradle dependency resolution.
# Version 1.2.44 - Aug 21, 2017
## Bug Fixes
* Enabled autoresolution for Gradle Prebuild.
* Made the command line dialog windows have selectable text.
* Fixed incorrect "Android Settings" dialog disabled groups.
* Updated PlayServicesResolver android platform detection to use the package
  manager instead of the 'android' tool.
* UnityCompat reflection methods 'GetAndroidPlatform' and
  'GetAndroidBuildToolsVersion' are now Obsolete due to dependence on the
  obsolete 'android' build tool.
# Version 1.2.43 - Aug 18, 2017
## Bug Fixes
* Fixed Gradle resolution in the Android Resolver when running
  PlayServicesResolver.Resolve() in parallel or spawning multiple
  resolutions before the previous resolve completed.
# Version 1.2.42 - Aug 17, 2017
## Bug Fixes
* Fixed Xcode project level settings not being applied by IOS Resolver when
  Xcode project pod integration is enabled.
# Version 1.2.41 - Aug 15, 2017
## Bug Fixes
* IOS Resolver's Xcode workspace pod integration is now disabled when Unity
  Cloud Build is detected.  Unity Cloud Build does not follow the same build
  process as the Unity editor and fails to open the generated xcworkspace at
  this time.
# Version 1.2.40 - Aug 15, 2017
## Bug Fixes
* Moved Android Resolver Gradle Prebuild scripts into Google.JarResolver.dll.
  They are now extracted from the DLL when required.
* AARs / JARs are now cleaned up when switching the Android resolution
  strategy.
# Version 1.2.39 - Aug 10, 2017
## New Features
* Android Resolver now supports resolution with Gradle.  This enables support
  for non-local artifacts.
## Bug Fixes
* Android Resolver's Gradle Prebuild now uses Android build tools to determine
  the Android platform tools version rather than relying upon internal Unity
  APIs.
* Android Resolver's Gradle Prebuild now correctly strips binaries that are
  not required for the target ABI.
# Version 1.2.38 - Aug 7, 2017
## Bug Fixes
* Fixed an issue in VersionHandler where disabled targets are ignored if
  the "Any Platform" flag is set on a plugin DLL.
# Version 1.2.37 - Aug 3, 2017
## New Features
* Exposed GooglePlayServices.PlayServicesResolver.Resolve() so that it's
  possible for a script to be notified when AAR / Jar resolution is complete.
  This makes it easier to setup a project to build from the command line.
# Version 1.2.36 - Aug 3, 2017
## New Features
* VersionHandler.UpdateCompleteMethods allows a user to provide a list of
  methods to be called when VersionHandlerImpl has completed an update.
  This makes it easier to import a plugin and wait for VersionHandler to
  execute prior executing a build.
# Version 1.2.35 - Jul 28, 2017
## New Features
* VersionHandler will now rename Linux libraries so they can target Unity
  versions that require different file naming.  Libraries need to be labelled
  gvh_linuxlibname-${basename} in order to be considered for renaming.
  e.g gvh\_linuxlibname-MyLib will be named MyLib.so in Unity 5.5 and below and
  libMyLib.so in Unity 5.6 and above.
# Version 1.2.34 - Jul 28, 2017
## Bug Fixes
* Made VersionHandler bootstrap module more robust when calling static
  methods before the implementation DLL is loaded.
# Version 1.2.33 - Jul 27, 2017
## New Features
* Added a bootstrap module for VersionHandler so the implementation
  of the VersionHandler module can be versioned without resulting in
  a compile error when imported at different versions across multiple
  plugins.
# Version 1.2.32 - Jul 20, 2017
## New Features
* Added support for build target selection based upon .NET framework
  version in the VersionHandler.
  When applying either gvh\_dotnet-3.5 or gvh\_dotnet-4.5 labels to
  assets, the VersionHandler will only enable the asset for the
  specified set of build targets when the matching .NET framework version
  is selected in Unity 2017's project settings.  This allows assets
  to be provided in a plugin that need to differ based upon .NET version.
# Version 1.2.31 - Jul 5, 2017
## Bug Fixes
* Force expansion of AARs with native components when using Unity 2017
  with the internal build system.  In contrast to Unity 5.x, Unity 2017's
  internal build system does not include native libraries included in AARs.
  Forcing expansion of AARs with native components generates an
  Ant / Eclipse project for each AAR which is correctly included by Unity
  2017's internal build system.
# Version 1.2.30 - Jul 5, 2017
## Bug Fixes
* Fixed Cocoapods being installed when the build target isn't iOS.
* Added support for malformed AARs with missing classes.jar.
# Version 1.2.29 - Jun 16, 2017
## New Features
* Added support for the Android sdkmanager tool.
# Version 1.2.28 - Jun 8, 2017
## Bug Fixes
* Fixed non-shell command line execution (regression from
  Cocoapod installation patch).
# Version 1.2.27 - Jun 7, 2017
## Bug Fixes
* Added support for stdout / stderr redirection when executing
  commands in shell mode.
  This fixes CocoaPod tool installation when shell mode is
  enabled.
* Fixed incremental builds when additional sources are specified
  in the Podfile.
# Version 1.2.26 - Jun 7, 2017
## Bug Fixes
* Fixed a crash when importing Version Handler into Unity 4.7.x.
# Version 1.2.25 - Jun 7, 2017
## Bug Fixes
* Fixed an issue in the Jar Resolver which incorrectly notified
  event handlers of bundle ID changes when the currently selected
  (not active) build target changed in Unity 5.6 and above.
# Version 1.2.24 - Jun 6, 2017
## New Features
* Added option to control file renaming in Version Handler settings.
  Disabling file renaming (default option) significantly increases
  the speed of file version management operations with the downside
  that any files that are referenced directly by canonical filename
  rather than asset ID will no longer be valid.
* Improved logging in the Version Handler.
## Bug Fixes
* Fixed an issue in the Version Handler which caused it to not
  re-enable plugins when re-importing a custom package with disabled
  version managed files.
# Version 1.2.23 - May 26, 2017
## Bug Fixes
* Fixed a bug with gradle prebuild resolver on windows.
# Version 1.2.22 - May 19, 2017
## Bug Fixes
* Fixed a bug in the iOS resolver with incremental builds.
* Fixed misdetection of Cocoapods support with Unity beta 5.6.
# Version 1.2.21 - May 8, 2017
## Bug Fixes
* Fix for https://github.com/googlesamples/unity-jar-resolver/issues/48
  Android dependency version number parsing when "-alpha" (etc.) are
  included in dependency (AAR / JAR) versions.
# Version 1.2.20 - May 8, 2017
## Bug Fixes
* Attempted to fix
  https://github.com/googlesamples/unity-jar-resolver/issues/48
  where a NullReferenceException could occur if a target file does not
  have a valid version string.
# Version 1.2.19 - May 4, 2017
## Bug Fixes
* Fixed Jar Resolver exploding and deleting AAR files it isn't managing.
# Version 1.2.18 - May 4, 2017
## New Features
* Added support for preserving Unity pods such as when GVR is enabled.
# Version 1.2.17 - Apr 20, 2017
## Bug Fixes
* Fixed auto-resolution when an Android application ID is modified.
# Version 1.2.16 - Apr 17, 2017
## Bug Fixes
* Fixed Unity version number parsing on machines with a locale that uses
  "," for decimal points.
* Fixed null reference exception if JDK path isn't set.
# Version 1.2.15 - Mar 17, 2017
## New Features
* Added warning when the Jar Resolver's background resolution is disabled.
## Bug Fixes
* Fixed support of AARs with native libraries when using Gradle.
* Fixed extra repository paths when resolving dependencies.
# Version 1.2.14 - Mar 7, 2017
## New Features
* Added experimental Android resolution using Gradle.
  This alternative resolver supports proguard stripping with Unity's
  internal build system.
* Added Android support for single ABI builds when using AARs include
  native libraries.
* Disabled Android resolution on changes to all .cs and .js files.
  File patterns that are monitored for auto-resolution can be added
  using PlayServicesResolver.AddAutoResolutionFilePatterns().
* Added tracking of resolved AARs and JARs so they can be cleaned up
  if they're no longer referenced by a project.
* Added persistence of AAR / JAR version replacement for each Unity
  session.
* Added settings dialog to the iOS resolver.
* Integrated Cocoapod tool installation in the iOS resolver.
* Added option to run pod tool via the shell.
## Bug Fixes
* Fixed build of some source Cocoapods (e.g Protobuf).
* VersionHandler no longer prompts to delete obsolete manifests.
* iOS resolver handles Cocoapod installation when using Ruby < 2.2.2.
* Added workaround for package version selection when including
  Google Play Services on Android.
* Fixed support for pods that reference static libraries.
* Fixed support for resource-only pods.
# Version 1.2.12 - Feb 14, 2017
## Bug Fixes
* Fixed re-explosion of AARs when the bundle ID is modified.
# Version 1.2.11 - Jan 30, 2017
## New Features
* Added support for Android Studio builds.
* Added support for native (C/C++) shared libraries in AARs.
# Version 1.2.10 - Jan 11, 2017
## Bug Fixes
* Fixed SDK manager path retrieval.
* Also, report stderr when it's not possible to run the "pod" tool.
* Handle exceptions thrown by Unity.Cecil on asset rename
* Fixed IOSResolver to handle PlayerSettings.iOS.targetOSVersionString
# Version 1.2.9 - Dec 7, 2016
## Bug Fixes
* Improved error reporting when "pod repo update" fails.
* Added detection of xml format xcode projects generated by old Cocoapods
  installations.
# Version 1.2.8 - Dec 6, 2016
## Bug Fixes
* Increased speed of JarResolver resolution.
* Fixed JarResolver caches getting out of sync with requested dependencies
  by removing the caches.
* Fixed JarResolver explode cache always being rewritten even when no
  dependencies change.
# Version 1.2.7 - Dec 2, 2016
## Bug Fixes
* Fixed VersionHandler build errors with Unity 5.5, due to the constantly
  changing BuildTarget enum.
* Added support for Unity configured JDK Path rather than requiring
  JAVA_HOME to be set in the Jar Resolver.
# Version 1.2.6 - Nov 15, 2016
## Bug Fixes
* Fixed IOSResolver errors when iOS support is not installed.
* Added fallback to "pod" executable search which queries the Ruby Gems
  package manager for the binary install location.
# Version 1.2.5 - Nov 3, 2016
## Bug Fixes
* Added crude support for source only Cocoapods to the IOSResolver.
# Version 1.2.4 - Oct 27, 2016
## Bug Fixes
* Automated resolution of out of date pod repositories.
# Version 1.2.3 - Oct 25, 2016
## Bug Fixes
* Fixed exception when reporting conflicting dependencies.
# Version 1.2.2 - Oct 17, 2016
## Bug Fixes
* Fixed issue working with Unity 5.5
* Fixed issue with PlayServicesResolver corrupting other iOS dependencies.
* Updated build script to use Unity distributed tools for building.
# Version 1.2.1 - Jul 25, 2016
## Bug Fixes
* Removed 1.2 Resolver and hardcoded whitelist of AARs to expand.
* Improved error reporting when the "jar" executable can't be found.
* Removed the need to set JAVA_HOME if "jar" is in the user's path.
* Fixed spurious copying of partially matching AARs.
* Changed resolver to only copy / expand when source AARs change.
* Auto-resolution of dependencies is now performed when the Android
  build target is selected.
## New Features
* Expand AARs that contain manifests with variable expansion like
  ${applicationId}.
* Added optional logging in the JarResolverLib module.
* Integration with the Android SDK manager for dependencies that
  declare required Android SDK packages.
# Version 1.2.0 - May 11 2016
## Bug Fixes
* Handles resolving dependencies when the artifacts are split across 2 repos.
* #4 Misdetecting version for versions like 1.2-alpha.  These are now string
  compared if alphanumeric
* Removed resolver creation via reflection since it did not work all the time.
  Now a resolver needs to be loaded externally (which is existing behavior).
## New Features
* Expose PlayServicesResolver properties to allow for script access.
* Explodes firebase-common and firebase-measurement aar files to support
  ${applicationId} substitution.
# Version 1.1.1 - 25 Feb 2016
## Bug Fixes
* #1 Spaces in project path not handled when exploding Aar file.
* #2 Script compilation error: TypeLoadException.
# Version 1.1.0 - 5 Feb 2016
## New Features
* Adds friendly alert when JAVA_HOME is not set on Windows platforms.
* Adds flag for disabling background resolution.
* Expands play-services-measurement and replaces ${applicationId} with the
  bundle Id.
 ## Bug Fixes
* Fixes infinite loop of resolution triggered by resolution.
Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d67e36cf70144eeeb62948707545ecfd
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-ExternalDependencyManager/Editor/CHANGELOG.md
TextScriptImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 11eb55c20f994cb2ba5750bb368b2320
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.meta
New file
@@ -0,0 +1,38 @@
fileFormatVersion: 2
guid: 647b93e17f6d492e8848ff790487006c
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll
- gvhp_targets-editor
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: aa21ec07b42547e78567b74d898ce33e
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.meta
New file
@@ -0,0 +1,38 @@
fileFormatVersion: 2
guid: f5303253df204c158859485eb7d9f524
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll
- gvhp_targets-editor
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 132e3d1932a9497cb2608729fddc3a78
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.meta
New file
@@ -0,0 +1,38 @@
fileFormatVersion: 2
guid: 4f5271f6b1ee4144b4247be99763cec3
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll
- gvhp_targets-editor
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3aa17cd5f43042a1a7381759dc1258a7
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta
New file
@@ -0,0 +1,38 @@
fileFormatVersion: 2
guid: bb6999c8a5ce4ba99688ec579babe5b7
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.dll
- gvhp_targets-editor
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb
Binary files differ
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ce8541d769e8484dace6b13706f8fd06
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.meta
New file
@@ -0,0 +1,38 @@
fileFormatVersion: 2
guid: c260ec63954e4c0c8a54d0c24c82db68
labels:
- gvh
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll
- gvhp_targets-editor
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/LICENSE
New file
@@ -0,0 +1,245 @@
Copyright (C) 2014 Google Inc.
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
        http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/
   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
   1. Definitions.
      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.
      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.
      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.
      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.
      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.
      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.
      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).
      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.
      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."
      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.
   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.
   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.
   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:
      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and
      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and
      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and
      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.
      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.
   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.
   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.
   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.
   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.
   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.
   END OF TERMS AND CONDITIONS
   APPENDIX: How to apply the Apache License to your work.
      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.
   Copyright [yyyy] [name of copyright owner]
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
====================================================================================================
This package uses MiniJSON
Copyright (c) 2013 Calvin Rien
Based on the JSON parser by Patrick van Bergen
http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html
Simplified it so that it doesn't throw exceptions
and can be used in Unity iPhone with maximum code stripping.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Assets/ExternalDependencyManager/Editor/LICENSE.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 35a6726adf03479eb04b8c082346d551
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-ExternalDependencyManager/Editor/LICENSE
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/README.md
New file
@@ -0,0 +1,768 @@
External Dependency Manager for Unity
========
# Overview
The External Dependency Manager for Unity (EDM4U)
(formerly Play Services Resolver / Jar Resolver) is intended to be used by any
Unity plugin that requires:
   * Android specific libraries (e.g
     [AARs](https://developer.android.com/studio/projects/android-library.html)).
   * iOS [CocoaPods](https://cocoapods.org/).
   * Version management of transitive dependencies.
   * Management of Package Manager (PM) Registries.
Updated releases are available on
[GitHub](https://github.com/googlesamples/unity-jar-resolver)
# Background
Many Unity plugins have dependencies upon Android specific libraries, iOS
CocoaPods, and sometimes have transitive dependencies upon other Unity plugins.
This causes the following problems:
   * Integrating platform specific (e.g Android and iOS) libraries within a
     Unity project can be complex and a burden on a Unity plugin maintainer.
   * The process of resolving conflicting dependencies on platform specific
     libraries is pushed to the developer attempting to use a Unity plugin.
     The developer trying to use you plugin is very likely to give up when
     faced with Android or iOS specific build errors.
   * The process of resolving conflicting Unity plugins (due to shared Unity
     plugin components) is pushed to the developer attempting to use your Unity
     plugin. In an effort to resolve conflicts, the developer will very likely
     attempt to resolve problems by deleting random files in your plugin,
     report bugs when that doesn't work and finally give up.
EDM provides solutions for each of these problems.
## Android Dependency Management
The *Android Resolver* component of this plugin will download and integrate
Android library dependencies and handle any conflicts between plugins that share
the same dependencies.
Without the Android Resolver, typically Unity plugins bundle their AAR and
JAR dependencies, e.g. a Unity plugin `SomePlugin` that requires the Google
Play Games Android library would redistribute the library and its transitive
dependencies in the folder `SomePlugin/Android/`.  When a user imports
`SomeOtherPlugin` that includes the same libraries (potentially at different
versions) in `SomeOtherPlugin/Android/`, the developer using `SomePlugin` and
`SomeOtherPlugin` will see an error when building for Android that can be hard
to interpret.
Using the Android Resolver to manage Android library dependencies:
   * Solves Android library conflicts between plugins.
   * Handles all of the various processing steps required to use Android
     libraries (AARs, JARs) in Unity 4.x and above projects.  Almost all
     versions of Unity have - at best - partial support for AARs.
   * (Experimental) Supports minification of included Java components without
     exporting a project.
## iOS Dependency Management
The *iOS Resolver* component of this plugin integrates with
[CocoaPods](https://cocoapods.org/) to download and integrate iOS libraries
and frameworks into the Xcode project Unity generates when building for iOS.
Using CocoaPods allows multiple plugins to utilize shared components without
forcing developers to fix either duplicate or incompatible versions of
libraries included through multiple Unity plugins in their project.
## Package Manager Registry Setup
The [Package Manager](https://docs.unity3d.com/Manual/Packages.html)
(PM) makes use of [NPM](https://www.npmjs.com/) registry servers for package
hosting and provides ways to discover, install, upgrade and uninstall packages.
This makes it easier for developers to manage plugins within their projects.
However, installing additional package registries requires a few manual steps
that can potentially be error prone.  The *Package Manager Resolver*
component of this plugin integrates with
[PM](https://docs.unity3d.com/Manual/Packages.html) to provide a way to
auto-install PM package registries when a `.unitypackage` is installed which
allows plugin maintainers to ship a `.unitypackage` that can provide access
to their own PM registry server to make it easier for developers to
manage their plugins.
## Unity Plugin Version Management
Finally, the *Version Handler* component of this plugin simplifies the process
of managing transitive dependencies of Unity plugins and each plugin's upgrade
process.
For example, without the Version Handler plugin, if:
   * Unity plugin `SomePlugin` includes `EDM4U` plugin at
     version 1.1.
   * Unity plugin `SomeOtherPlugin` includes `EDM4U`
     plugin  at version 1.2.
The version of `EDM4U` included in the developer's project depends upon the
order the developer imports `SomePlugin` or `SomeOtherPlugin`.
This results in:
   * `EDM4U` at version 1.2, if `SomePlugin` is imported then `SomeOtherPlugin`
     is imported.
   * `EDM4U` at version 1.1, if `SomeOtherPlugin` is imported then
     `SomePlugin` is imported.
The Version Handler solves the problem of managing transitive dependencies by:
   * Specifying a set of packaging requirements that enable a plugin at
     different versions to be imported into a Unity project.
   * Providing activation logic that selects the latest version of a plugin
     within a project.
When using the Version Handler to manage `EDM4U` included in `SomePlugin` and
`SomeOtherPlugin`, from the prior example, version 1.2 will always be the
version activated in a developer's Unity project.
Plugin creators are encouraged to adopt this library to ease integration for
their customers.  For more information about integrating EDM4U
into your own plugin, see the [Plugin Redistribution](#plugin-redistribution)
section of this document.
# Analytics
The External Dependency Manager for Unity plugin by default logs usage to Google
Analytics. The purpose of the logging is to quantitatively measure the usage of
functionality, to gather reports on integration failures and to inform future
improvements to the developer experience of the External Dependency Manager
plugin. Note that the analytics collected are limited to the scope of the EDM4U
plugin’s usage.
For details of what is logged, please refer to the usage of
`EditorMeasurement.Report()` in the source code.
# Requirements
The *Android Resolver* and *iOS Resolver* components of the plugin only work
with Unity version 4.6.8 or higher.
The *Version Handler* component only works with Unity 5.x or higher as it
depends upon the `PluginImporter` UnityEditor API.
The *Package Manager Resolver* component only works with
Unity 2018.4 or above, when
[scoped registry](https://docs.unity3d.com/Manual/upm-scoped.html)
support was added to the Package Manager.
# Getting Started
Before you import EDM4U into your plugin project, you first
need to consider whether you intend to *redistribute* `EDM4U`
along with your own plugin.
## Plugin Redistribution
If you're a plugin maintainer, redistributing `EDM4U` inside your own plugin
will ease the integration process for your users, by resolving dependency
conflicts between your plugin and other plugins in a user's project.
If you wish to redistribute `EDM4U` inside your plugin,
you **must** follow these steps when importing the
`external-dependency-manager-*.unitypackage`, and when exporting your own plugin
package:
   1. Import the `external-dependency-manager-*.unitypackage` into your plugin
      project by
      [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that
      you add the `-gvh_disable` option.
   1. Export your plugin by [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html), ensuring that
      you:
      - Include the contents of the `Assets/PlayServicesResolver` and
        `Assets/ExternalDependencyManager` directory.
      - Add the `-gvh_disable` option.
You **must** specify the `-gvh_disable` option in order for the Version
Handler to work correctly!
For example, the following command will import the
`external-dependency-manager-1.2.46.0.unitypackage` into the project
`MyPluginProject` and export the entire Assets folder to
`MyPlugin.unitypackage`:
```
Unity -gvh_disable \
      -batchmode \
      -importPackage external-dependency-manager-1.2.46.0.unitypackage \
      -projectPath MyPluginProject \
      -exportPackage Assets MyPlugin.unitypackage \
      -quit
```
### Background
The *Version Handler* component relies upon deferring the load of editor DLLs
so that it can run first and determine the latest version of a plugin component
to activate.  The build of `EDM4U` plugin has Unity asset metadata that is
configured so that the editor components are not initially enabled when it's
imported into a Unity project.  To maintain this configuration when importing
the `external-dependency-manager.unitypackage` into a Unity plugin project, you
*must* specify the command line option `-gvh_disable` which will prevent the
Version Handler component from running and changing the Unity asset metadata.
# Android Resolver Usage
The Android Resolver copies specified dependencies from local or remote Maven
repositories into the Unity project when a user selects Android as the build
target in the Unity editor.
   1. Add the `external-dependency-manager-*.unitypackage` to your plugin
      project (assuming you are developing a plugin). If you are redistributing
      EDM4U with your plugin, you **must** follow the
      import steps in the [Getting Started](#getting-started) section!
   2. Copy and rename the
      [SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml)
      file into your plugin and add the dependencies your plugin requires.
      The XML file just needs to be under an `Editor` directory and match the
      name `*Dependencies.xml`. For example,
      `MyPlugin/Editor/MyPluginDependencies.xml`.
   3. Follow the steps in the [Getting Started](#getting-started)
      section when you are exporting your plugin package.
For example, to add the Google Play Games library
(`com.google.android.gms:play-services-games` package) at version `9.8.0` to
the set of a plugin's Android dependencies:
```
<dependencies>
  <androidPackages>
    <androidPackage spec="com.google.android.gms:play-services-games:9.8.0">
      <androidSdkPackageIds>
        <androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
      </androidSdkPackageIds>
    </androidPackage>
  </androidPackages>
</dependencies>
```
The version specification (last component) supports:
   * Specific versions e.g `9.8.0`
   * Partial matches e.g `9.8.+` would match 9.8.0, 9.8.1 etc. choosing the most
     recent version.
   * Latest version using `LATEST` or `+`.  We do *not* recommend using this
     unless you're 100% sure the library you depend upon will not break your
     Unity plugin in future.
The above example specifies the dependency as a component of the Android SDK
manager such that the Android SDK manager will be executed to install the
package if it's not found.  If your Android dependency is located on Maven
central it's possible to specify the package simply using the `androidPackage`
element:
```
<dependencies>
  <androidPackages>
    <androidPackage spec="com.google.api-client:google-api-client-android:1.22.0" />
  </androidPackages>
</dependencies>
```
## Auto-resolution
By default the Android Resolver automatically monitors the dependencies you have
specified and the `Plugins/Android` folder of your Unity project.  The
resolution process runs when the specified dependencies are not present in your
project.
The *auto-resolution* process can be disabled via the
`Assets > External Dependency Manager > Android Resolver > Settings` menu.
Manual resolution can be performed using the following menu options:
   * `Assets > External Dependency Manager > Android Resolver > Resolve`
   * `Assets > External Dependency Manager > Android Resolver > Force Resolve`
## Deleting libraries
Resolved packages are tracked via asset labels by the Android Resolver.
They can easily be deleted using the
`Assets > External Dependency Manager > Android Resolver > Delete Resolved Libraries`
menu item.
## Android Manifest Variable Processing
Some AAR files (for example play-services-measurement) contain variables that
are processed by the Android Gradle plugin.  Unfortunately, Unity does not
perform the same processing when using Unity's Internal Build System, so the
Android Resolver plugin handles known cases of this variable substitution
by exploding the AAR into a folder and replacing `${applicationId}` with the
`bundleID`.
Disabling AAR explosion and therefore Android manifest processing can be done
via the `Assets > External Dependency Manager > Android Resolver > Settings`
menu. You may want to disable explosion of AARs if you're exporting a project
to be built with Gradle / Android Studio.
## ABI Stripping
Some AAR files contain native libraries (.so files) for each ABI supported
by Android.  Unfortunately, when targeting a single ABI (e.g x86), Unity does
not strip native libraries for unused ABIs.  To strip unused ABIs, the Android
Resolver plugin explodes an AAR into a folder and removes unused ABIs to
reduce the built APK size.  Furthermore, if native libraries are not stripped
from an APK (e.g you have a mix of Unity's x86 library and some armeabi-v7a
libraries) Android may attempt to load the wrong library for the current
runtime ABI completely breaking your plugin when targeting some architectures.
AAR explosion and therefore ABI stripping can be disabled via the
`Assets > External Dependency Manager > Android Resolver > Settings` menu.
You may want to disable explosion of AARs if you're exporting a project to be
built with Gradle / Android Studio.
## Resolution Strategies
By default the Android Resolver will use Gradle to download dependencies prior
to integrating them into a Unity project.  This works with Unity's internal
build system and Gradle / Android Studio project export.
It's possible to change the resolution strategy via the
`Assets > External Dependency Manager > Android Resolver > Settings` menu.
### Download Artifacts with Gradle
Using the default resolution strategy, the Android resolver executes the
following operations:
   - Remove the result of previous Android resolutions.
     e.g Delete all files and directories labeled with "gpsr" under
     `Plugins/Android` from the project.
   - Collect the set of Android dependencies (libraries) specified by a
     project's `*Dependencies.xml` files.
   - Run `download_artifacts.gradle` with Gradle to resolve conflicts and,
     if successful, download the set of resolved Android libraries (AARs, JARs).
   - Process each AAR / JAR so that it can be used with the currently selected
     Unity build system (e.g Internal vs. Gradle, Export vs. No Export).
     This involves patching each reference to `applicationId` in the
     AndroidManifest.xml with the project's bundle ID.  This means resolution
     must be run if the bundle ID is changed again.
   - Move the processed AARs to `Plugins/Android` so they will be included when
     Unity invokes the Android build.
### Integrate into mainTemplate.gradle
Unity 5.6 introduced support for customizing the `build.gradle` used to build
Unity projects with Gradle. When the *Patch mainTemplate.gradle* setting is
enabled, rather than downloading artifacts before the build, Android resolution
results in the execution of the following operations:
   - Remove the result of previous Android resolutions.
     e.g Delete all files and directories labeled with "gpsr" under
     `Plugins/Android` from the project and remove sections delimited with
     `// Android Resolver * Start` and `// Android Resolver * End` lines.
   - Collect the set of Android dependencies (libraries) specified by a
     project's `*Dependencies.xml` files.
   - Rename any `.srcaar` files in the build to `.aar` and exclude them from
     being included directly by Unity in the Android build as
     `mainTemplate.gradle` will be patched to include them instead from their
     local maven repositories.
   - Inject the required Gradle repositories into `mainTemplate.gradle` at the
     line matching the pattern
     `.*apply plugin: 'com\.android\.(application|library)'.*` or the section
     starting at the line `// Android Resolver Repos Start`.
     If you want to control the injection point in the file, the section
     delimited by the lines `// Android Resolver Repos Start` and
     `// Android Resolver Repos End` should be placed in the global scope
     before the `dependencies` section.
   - Inject the required Android dependencies (libraries) into
     `mainTemplate.gradle` at the line matching the pattern `***DEPS***` or
     the section starting at the line `// Android Resolver Dependencies Start`.
     If you want to control the injection point in the file, the section
     delimited by the lines `// Android Resolver Dependencies Start` and
     `// Android Resolver Dependencies End` should be placed in the
     `dependencies` section.
   - Inject the packaging options logic, which excludes architecture specific
     libraries based upon the selected build target, into `mainTemplate.gradle`
     at the line matching the pattern `android +{` or the section starting at
     the line `// Android Resolver Exclusions Start`.
     If you want to control the injection point in the file, the section
     delimited by the lines `// Android Resolver Exclusions Start` and
     `// Android Resolver Exclusions End` should be placed in the global
     scope before the `android` section.
## Dependency Tracking
The Android Resolver creates the
`ProjectSettings/AndroidResolverDependencies.xml` to quickly determine the set
of resolved dependencies in a project.  This is used by the auto-resolution
process to only run the expensive resolution process when necessary.
## Displaying Dependencies
It's possible to display the set of dependencies the Android Resolver
would download and process in your project via the
`Assets > External Dependency Manager > Android Resolver > Display Libraries`
menu item.
# iOS Resolver Usage
The iOS resolver component of this plugin manages
[CocoaPods](https://cocoapods.org/).  A CocoaPods `Podfile` is generated and
the `pod` tool is executed as a post build process step to add dependencies
to the Xcode project exported by Unity.
Dependencies for iOS are added by referring to CocoaPods.
   1. Add the `external-dependency-manager-*.unitypackage` to your plugin
      project (assuming you are developing a plugin). If you are redistributing
      EDM4U with your plugin, you **must** follow the
      import steps in the [Getting Started](#getting-started) section!
   2. Copy and rename the
      [SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml)
      file into your plugin and add the dependencies your plugin requires.
      The XML file just needs to be under an `Editor` directory and match the
      name `*Dependencies.xml`. For example,
      `MyPlugin/Editor/MyPluginDependencies.xml`.
   3. Follow the steps in the [Getting Started](#getting-started)
      section when you are exporting your plugin package.
For example, to add the AdMob pod, version 7.0 or greater with bitcode enabled:
```
<dependencies>
  <iosPods>
    <iosPod name="Google-Mobile-Ads-SDK" version="~> 7.0" bitcodeEnabled="true"
            minTargetSdk="6.0" addToAllTargets="false" />
  </iosPods>
</dependencies>
```
## Integration Strategies
The `CocoaPods` are either:
   * Downloaded and injected into the Xcode project file directly, rather than
     creating a separate xcworkspace.  We call this `Xcode project` integration.
   * If the Unity version supports opening a xcworkspace file, the `pod` tool
     is used as intended to generate a xcworkspace which references the
     CocoaPods.  We call this `Xcode workspace` integration.
The resolution strategy can be changed via the
`Assets > External Dependency Manager > iOS Resolver > Settings` menu.
### Appending text to generated Podfile
In order to modify the generated Podfile you can create a script like this:
```
using System.IO;
public class PostProcessIOS : MonoBehaviour {
[PostProcessBuildAttribute(45)]//must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and that it's added before "pod install" (50)
private static void PostProcessBuild_iOS(BuildTarget target, string buildPath)
{
    if (target == BuildTarget.iOS)
    {
        using (StreamWriter sw = File.AppendText(buildPath + "/Podfile"))
        {
            //in this example I'm adding an app extension
            sw.WriteLine("\ntarget 'NSExtension' do\n  pod 'Firebase/Messaging', '6.6.0'\nend");
        }
    }
}
```
# Package Manager Resolver Usage
Adding registries to the
[Package Manager](https://docs.unity3d.com/Manual/Packages.html)
(PM) is a manual process. The Package Manager Resolver (PMR) component
of this plugin makes it easy for plugin maintainers to distribute new PM
registry servers and easy for plugin users to manage PM registry servers.
## Adding Registries
   1. Add the `external-dependency-manager-*.unitypackage` to your plugin
      project (assuming you are developing a plugin). If you are redistributing
      EDM4U with your plugin, you **must** follow the
      import steps in the [Getting Started](#getting-started) section!
   2. Copy and rename the
      [SampleRegistries.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/sample/Assets/ExternalDependencyManager/Editor/SampleRegistries.xml)
      file into your plugin and add the registries your plugin requires.
      The XML file just needs to be under an `Editor` directory and match the
      name `*Registries.xml` or labeled with `gumpr_registries`. For example,
      `MyPlugin/Editor/MyPluginRegistries.xml`.
   3. Follow the steps in the [Getting Started](#getting-started)
      section when you are exporting your plugin package.
For example, to add a registry for plugins in the scope `com.coolstuff`:
```
<registries>
  <registry name="Cool Stuff"
            url="https://unityregistry.coolstuff.com"
            termsOfService="https://coolstuff.com/unityregistry/terms"
            privacyPolicy="https://coolstuff.com/unityregistry/privacy">
    <scopes>
      <scope>com.coolstuff</scope>
    </scopes>
  </registry>
</registries>
```
When PMR is loaded it will prompt the developer to add the registry to their
project if it isn't already present in the `Packages/manifest.json` file.
For more information, see Unity's documentation on
[scoped package registries](https://docs.unity3d.com/Manual/upm-scoped.html).
## Managing Registries
It's possible to add and remove registries that are specified via PMR
XML configuration files via the following menu options:
* `Assets > External Dependency Manager > Package Manager Resolver >
  Add Registries` will prompt the user with a window which allows them to
  add registries discovered in the project to the Package Manager.
* `Assets > External Dependency Manager > Package Manager Resolver >
  Remove Registries` will prompt the user with a window which allows them to
  remove registries discovered in the project from the Package Manager.
* `Assets > External Dependency Manager > Package Manager Resolver >
  Modify Registries` will prompt the user with a window which allows them to
  add or remove registries discovered in the project.
## Migration
PMR can migrate Version Handler packages installed in the `Assets` folder
to PM packages. This requires the plugins to implement the following:
* `.unitypackage` must include a Version Handler manifests that describes
   the components of the plugin. If the plugin has no dependencies
   the manifest would just include the files in the plugin.
* The PM package JSON provided by the registry must include a keyword
  (in the `versions.VERSION.keyword` list) that maps the PM package
  to a Version Handler package using the format
  `vh-name:VERSION_HANDLER_MANIFEST_NAME` where `VERSION_HANDLER_MANIFEST_NAME`
  is the name of the manifest defined in the `.unitypackage`.  For
  more information see the description of the `gvhp_manifestname` asset label
  in the *Version Handler Usage* section.
When using the `Assets > External Dependency Manager >
Package Manager Resolver > Migrate Packages` menu option, PMR then
will:
* List all Version Handler manager packages in the project.
* Search all available packages in the PM registries and fetch keywords
  associated with each package parsing the Version Handler manifest names
  for each package.
* Map each installed Version Handler package to a PM package.
* Prompt the user to migrate the discovered packages.
* Perform package migration for all selected packages if the user clicks
  the `Apply` button.
## Configuration
PMR can be configured via the `Assets > External Dependency Manager >
Package Manager Resolver > Settings` menu option:
* `Add package registries` when enabled, when the plugin loads or registry
  configuration files change, this will prompt the user to add registries
  that are not present in the Package Manager.
* `Prompt to add package registries` will cause a developer to be prompted
  with a window that will ask for confirmation before adding registries.
  When this is disabled registries are added silently to the project.
* `Prompt to migrate packages` will cause a developer to be prompted
  with a window that will ask for confirmation before migrating packages
  installed in the `Assets` directory to PM packages.
* `Enable Analytics Reporting` when enabled, reports the use of the plugin
  to the developers so they can make imrpovements.
* `Verbose logging` when enabled prints debug information to the console
  which can be useful when filing bug reports.
# Version Handler Usage
The Version Handler component of this plugin manages:
* Shared Unity plugin dependencies.
* Upgrading Unity plugins by cleaning up old files from previous versions.
* Uninstallation of plugins that are distributed with manifest files.
* Restoration of plugin assets to their original install locations if assets
  are tagged with the `exportpath` label.
Since the Version Handler needs to modify Unity asset metadata (`.meta` files),
to enable / disable components, rename and delete asset files it does not
work with Package Manager installed packages. It's still possible to
include EDM4U in Package Manager packages, the Version Handler component
simply won't do anything to PM plugins in this case.
## Using Version Handler Managed Plugins
If a plugin is imported at multiple different versions into a project, if
the Version Handler is enabled, it will automatically check all managed
assets to determine the set of assets that are out of date and assets that
should be removed. To disable automatic checking managed assets disable
the `Enable version management` option in the
`Assets > External Dependency Manager > Version Handler > Settings` menu.
If version management is disabled, it's possible to check managed assets
manually using the
`Assets > External Dependency Manager > Version Handler > Update` menu option.
### Listing Managed Plugins
Plugins managed by the Version Handler, those that ship with manifest files,
can displayed using the `Assets > External Dependency Manager >
Version Handler > Display Managed Packages` menu option. The list of plugins
are written to the console window along with the set of files used by each
plugin.
### Uninstalling Managed Plugins
Plugins managed by the Version Handler, those that ship with manifest files,
can be removed using the `Assets > External Dependency Manager >
Version Handler > Uninstall Managed Packages` menu option. This operation
will display a window that allows a developer to select a set of plugins to
remove which will remove all files owned by each plugin excluding those that
are in use by other installed plugins.
Files managed by the Version Handler, those labeled with the `gvh` asset label,
can be checked to see whether anything needs to be upgraded, disabled or
removed using the `Assets > External Dependency Manager >
Version Handler > Update` menu option.
### Restore Install Paths
Some developers move assets around in their project which can make it
harder for plugin maintainers to debug issues if this breaks Unity's
[special folders](https://docs.unity3d.com/Manual/SpecialFolders.html) rules.
If assets are labeled with their original install / export path
(see `gvhp_exportpath` below), Version Handler can restore assets to their
original locations when using the `Assets > External Dependency Manager >
Version Handler > Move Files To Install Locations` menu option.
### Settings
Some behavior of the Version Handler can be configured via the
`Assets > External Dependency Manager > Version Handler > Settings` menu
option.
* `Enable version management` controls whether the plugin should automatically
  check asset versions and apply changes. If this is disabled the process
  should be run manually when installing or upgrading managed plugins using
  `Assets > External Dependency Manager > Version Handler > Update`.
* `Rename to canonical filenames` is a legacy option that will rename files to
  remove version numbers and other labels from filenames.
* `Prompt for obsolete file deletion` enables the display of a window when
  obsolete files are deleted allowing the developer to select which files to
  delete and those to keep.
* `Allow disabling files via renaming` controls whether obsolete or disabled
  files should be disabled by renaming them to `myfilename_DISABLED`.
  Renaming to disable files is required in some scenarios where Unity doesn't
  support removing files from the build via the PluginImporter.
* `Enable Analytics Reporting` enables / disables usage reporting to plugin
  developers to improve the product.
* `Verbose logging` enables _very_ noisy log output that is useful for
  debugging while filing a bug report or building a new managed plugin.
* `Use project settings` saves settings for the plugin in the project rather
  than system-wide.
## Redistributing a Managed Plugin
The Version Handler employs a couple of methods for managing version
selection, upgrade and removal of plugins.
* Each plugin can ship with a manifest file that lists the files it includes.
  This makes it possible for Version Handler to calculate the difference
  in assets between the most recent release of a plugin and the previous
  release installed in a project. If a files are removed the Version Handler
  will prompt the user to clean up obsolete files.
* Plugins can ship using assets with unique names, unique GUIDs and version
  number labels. Version numbers can be attached to assets using labels or
  added to the filename (e.g `myfile.txt` would be `myfile_version-x.y.z.txt).
  This allows the Version Handler to determine which set of files are the
  same file at different versions, select the most recent version and prompt
  the developer to clean up old versions.
Unity plugins can be managed by the Version Handler using the following steps:
   1. Add the `gvh` asset label to each asset (file) you want Version Handler
      to manage.
   1. Add the `gvh_version-VERSION` label to each asset where `VERSION` is the
      version of the plugin you're releasing (e.g 1.2.3).
   1. Add the `gvhp_exportpath-PATH` label to each asset where `PATH` is the
      export path of the file when the `.unitypackage` is created.  This is
      used to track files if they're moved around in a project by developers.
   1. Optional: Add `gvh_targets-editor` label to each editor DLL in your
      plugin and disable `editor` as a target platform for the DLL.
      The Version Handler will enable the most recent version of this DLL when
      the plugin is imported.
   1. Optional: If your plugin is included in other Unity plugins, you should
      add the version number to each filename and change the GUID of each asset.
      This allows multiple versions of your plugin to be imported into a Unity
      project, with the Version Handler component activating only the most
      recent version.
   1. Create a manifest text file named `MY_UNIQUE_PLUGIN_NAME_VERSION.txt`
      that lists all the files in your plugin relative to the project root.
      Then add the `gvh_manifest` label to the asset to indicate this file is
      a plugin manifest.
   1. Optional: Add a `gvhp_manifestname-NAME` label to your manifest file
      to provide a human readable name for your package.  If this isn't provided
      the name of the manifest file will be used as the package name.
      NAME can match the pattern `[0-9]+[a-zA-Z -]' where a leading integer
      will set the priority of the name where `0` is the highest priority
      and preferably used as the display name. The lowest value (i.e highest
      priority name) will be used as the display name and all other specified
      names will be aliases of the display name. Aliases can refer to previous
      names of the package allowing renaming across published versions.
   1. Redistribute EDM4U Unity plugin with your plugin.
      See the [Plugin Redistribution](#plugin-redistribution) for the details.
If you follow these steps:
   * When users import a newer version of your plugin, files referenced by the
     older version's manifest are cleaned up.
   * The latest version of the plugin will be selected when users import
     multiple packages that include your plugin, assuming the steps in
     [Plugin Redistribution](#plugin-redistribution) are followed.
# Building from Source
To build this plugin from source you need the following tools installed:
   * Unity (with iOS and Android modules installed)
You can build the plugin by running the following from your shell
(Linux / OSX):
```
./gradlew build
```
or Windows:
```
./gradlew.bat build
```
# Releasing
Each time a new build of this plugin is checked into the source tree you
need to do the following:
   * Bump the plugin version variable `pluginVersion` in `build.gradle`
   * Update `CHANGELOG.md` with the new version number and changes included in
     the release.
   * Build the release using `./gradlew release` which performs the following:
      * Updates `external-dependency-manager-*.unitypackage`
      * Copies the unpacked plugin to the `exploded` directory.
      * Updates template metadata files in the `plugin` directory.
        The GUIDs of all asset metadata is modified due to the version number
        change. Each file within the plugin is versioned to allow multiple
        versions of the plugin to be imported into a Unity project which allows
        the most recent version to be activated by the Version Handler
        component.
   * Create release commit using `./gradlew gitCreateReleaseCommit` which
     performs `git commit -a -m "description from CHANGELOG.md"`
   * Once the release commit is merge, tag the release using
     `./gradlew gitTagRelease` which performs the following:
     * `git tag -a pluginVersion -m "version RELEASE"` to tag the release.
   * Update tags on remote branch using `git push --tag REMOTE HEAD:master`
Assets/ExternalDependencyManager/Editor/README.md.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 11eb52f780284fd69194951ac46cb538
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-ExternalDependencyManager/Editor/README.md
TextScriptImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.164_manifest.txt
New file
@@ -0,0 +1,13 @@
Assets/ExternalDependencyManager/Editor/CHANGELOG.md
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/LICENSE
Assets/ExternalDependencyManager/Editor/README.md
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.164_manifest.txt.meta
New file
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 3f3ad9fc3d0545b9b500a544faab1ca4
labels:
- gvh
- gvh_manifest
- gvh_version-1.2.164
- gvhp_exportpath-ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.164_manifest.txt
- gvhp_manifestname-0External Dependency Manager
- gvhp_manifestname-play-services-resolver
TextScriptImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 555f994d35f517444aa230f2afa4ceb9
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5620d37880c57204da00dbe9f0bde7f3
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/AnalyticsDependencies.xml
New file
@@ -0,0 +1,21 @@
<!-- Copyright (C) 2018 Google Inc. All Rights Reserved.
FirebaseAnalytics iOS and Android Dependencies.
-->
<dependencies>
  <iosPods>
    <iosPod name="Firebase/Analytics" version="7.5.0" minTargetSdk="9.0">
    </iosPod>
  </iosPods>
  <androidPackages>
    <androidPackage spec="com.google.firebase:firebase-analytics:18.0.2">
    </androidPackage>
    <androidPackage spec="com.google.firebase:firebase-analytics-unity:7.1.0">
      <repositories>
        <repository>Assets/Firebase/m2repository</repository>
      </repositories>
    </androidPackage>
  </androidPackages>
</dependencies>
Assets/Firebase/Editor/AnalyticsDependencies.xml.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1e3c2da79be842cd838a9ddd70d20fa9
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/AnalyticsDependencies.xml
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/AppDependencies.xml
New file
@@ -0,0 +1,25 @@
<!-- Copyright (C) 2018 Google Inc. All Rights Reserved.
FirebaseApp iOS and Android Dependencies.
-->
<dependencies>
  <iosPods>
    <iosPod name="Firebase/Core" version="7.5.0" minTargetSdk="9.0">
    </iosPod>
  </iosPods>
  <androidPackages>
    <androidPackage spec="com.google.firebase:firebase-common:19.5.0">
    </androidPackage>
    <androidPackage spec="com.google.firebase:firebase-analytics:18.0.2">
    </androidPackage>
    <androidPackage spec="com.google.android.gms:play-services-base:17.6.0">
    </androidPackage>
    <androidPackage spec="com.google.firebase:firebase-app-unity:7.1.0">
      <repositories>
        <repository>Assets/Firebase/m2repository</repository>
      </repositories>
    </androidPackage>
  </androidPackages>
</dependencies>
Assets/Firebase/Editor/AppDependencies.xml.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9b63af95d9364af4a3d8ce58738b6223
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/AppDependencies.xml
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/Firebase.Editor.dll
Binary files differ
Assets/Firebase/Editor/Firebase.Editor.dll.mdb
Binary files differ
Assets/Firebase/Editor/Firebase.Editor.dll.mdb.meta
New file
@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 7f7b9cecf58b463599316e650bec7cb6
labels:
- gvh
- gvh_rename_to_disable
- gvh_targets-editor
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/Firebase.Editor.dll.mdb
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/Firebase.Editor.dll.meta
New file
@@ -0,0 +1,38 @@
fileFormatVersion: 2
guid: 9f2edbf81053418f879076c05f816dc2
labels:
- gvh
- gvh_targets-editor
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/Firebase.Editor.dll
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/FirebaseAnalytics_version-7.1.0_manifest.txt
New file
@@ -0,0 +1,73 @@
Assets/Editor Default Resources/Firebase/fb_analytics.png
Assets/Editor Default Resources/Firebase/fb_analytics_dark.png
Assets/Editor Default Resources/Firebase/fb_auth.png
Assets/Editor Default Resources/Firebase/fb_auth_dark.png
Assets/Editor Default Resources/Firebase/fb_cloud_messaging.png
Assets/Editor Default Resources/Firebase/fb_cloud_messaging_dark.png
Assets/Editor Default Resources/Firebase/fb_config.png
Assets/Editor Default Resources/Firebase/fb_config_dark.png
Assets/Editor Default Resources/Firebase/fb_crashlytics.png
Assets/Editor Default Resources/Firebase/fb_crashlytics_dark.png
Assets/Editor Default Resources/Firebase/fb_database.png
Assets/Editor Default Resources/Firebase/fb_database_dark.png
Assets/Editor Default Resources/Firebase/fb_dynamic_links.png
Assets/Editor Default Resources/Firebase/fb_dynamic_links_dark.png
Assets/Editor Default Resources/Firebase/fb_functions.png
Assets/Editor Default Resources/Firebase/fb_functions_dark.png
Assets/Editor Default Resources/Firebase/fb_storage.png
Assets/Editor Default Resources/Firebase/fb_storage_dark.png
Assets/Editor Default Resources/Firebase/firebase_lockup.png
Assets/Editor Default Resources/Firebase/firebase_lockup_dark.png
Assets/ExternalDependencyManager/Editor/CHANGELOG.md
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.JarResolver_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.PackageManagerResolver_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll
Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.164.dll.mdb
Assets/ExternalDependencyManager/Editor/LICENSE
Assets/ExternalDependencyManager/Editor/README.md
Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.164_manifest.txt
Assets/Firebase/Editor/AnalyticsDependencies.xml
Assets/Firebase/Editor/AppDependencies.xml
Assets/Firebase/Editor/Firebase.Editor.dll
Assets/Firebase/Editor/Firebase.Editor.dll.mdb
Assets/Firebase/Editor/generate_xml_from_google_services_json.exe
Assets/Firebase/Editor/generate_xml_from_google_services_json.py
Assets/Firebase/Editor/network_request.exe
Assets/Firebase/Editor/network_request.py
Assets/Firebase/Plugins/Firebase.Analytics.dll
Assets/Firebase/Plugins/Firebase.Analytics.dll.mdb
Assets/Firebase/Plugins/Firebase.App.dll
Assets/Firebase/Plugins/Firebase.App.dll.mdb
Assets/Firebase/Plugins/Firebase.Platform.dll
Assets/Firebase/Plugins/Firebase.Platform.dll.mdb
Assets/Firebase/Plugins/Firebase.TaskExtension.dll
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb
Assets/Firebase/Plugins/Google.MiniJson.dll
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.mdb
Assets/Firebase/Plugins/iOS/Firebase.App.dll
Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.bundle
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.dll
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.srcaar
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.srcaar
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml
Assets/Parse/Plugins/Unity.Compat.dll
Assets/Parse/Plugins/Unity.Tasks.dll
Assets/Parse/Plugins/dotNet45/Unity.Compat.dll
Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll
Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a
Assets/Firebase/Editor/FirebaseAnalytics_version-7.1.0_manifest.txt.meta
New file
@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 25b69a74e1234e4d91599626680985ec
labels:
- gvh
- gvh_manifest
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/FirebaseAnalytics_version-7.1.0_manifest.txt
- gvhp_manifestname-0Google Analytics for Firebase
- gvhp_manifestname-1FirebaseAnalytics
timeCreated: 0
Assets/Firebase/Editor/generate_xml_from_google_services_json.exe.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ae88c0972b7448b5b36def1716f1d711
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.exe
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/generate_xml_from_google_services_json.py
New file
@@ -0,0 +1,464 @@
#!/usr/bin/python
# Copyright 2016 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Stand-alone implementation of the Gradle Firebase plugin.
Converts the services json file to xml:
https://googleplex-android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/google-services/src/main/groovy/com/google/gms/googleservices
"""
__author__ = 'Wouter van Oortmerssen'
import argparse
import ctypes
import json
import os
import platform
import sys
from xml.etree import ElementTree
if platform.system().lower() == 'windows':
  import ctypes.wintypes  # pylint: disable=g-import-not-at-top
# Map Python 2's unicode method to encode a string as bytes in python 3.
try:
  unicode('')  # See whether unicode class is available (Python < 3)
except NameError:
  unicode = str  # pylint: disable=redefined-builtin,invalid-name
# Input filename if it isn't set.
DEFAULT_INPUT_FILENAME = 'app/google-services.json'
# Output filename if it isn't set.
DEFAULT_OUTPUT_FILENAME = 'res/values/googleservices.xml'
# Input filename for .plist files, if it isn't set.
DEFAULT_PLIST_INPUT_FILENAME = 'GoogleService-Info.plist'
# Output filename for .json files, if it isn't set.
DEFAULT_JSON_OUTPUT_FILENAME = 'google-services-desktop.json'
OAUTH_CLIENT_TYPE_ANDROID_APP = 1
OAUTH_CLIENT_TYPE_WEB = 3
def read_xml_value(xml_node):
  """Utility method for reading values from the plist XML.
  Args:
    xml_node: An ElementTree node, that contains a value.
  Returns:
    The value of the node, or None, if it could not be read.
  """
  if xml_node.tag == 'string':
    return xml_node.text
  elif xml_node.tag == 'integer':
    return int(xml_node.text)
  elif xml_node.tag == 'real':
    return float(xml_node.text)
  elif xml_node.tag == 'false':
    return 0
  elif xml_node.tag == 'true':
    return 1
  else:
    # other types of input are ignored.  (data, dates, arrays, etc.)
    return None
def construct_plist_dictionary(xml_root):
  """Constructs a dictionary of values based on the contents of a plist file.
  Args:
    xml_root: An ElementTree node, that represents the root of the xml file
              that is to be parsed.  (Which should be a dictionary containing
              key-value pairs of the properties that need to be extracted.)
  Returns:
    A dictionary, containing key-value pairs for all (supported) entries in the
    node.
  """
  xml_dict = xml_root.find('dict')
  if xml_dict is None:
    return None
  plist_dict = {}
  i = 0
  while i < len(xml_dict):
    if xml_dict[i].tag == 'key':
      key = xml_dict[i].text
      i += 1
      if i < len(xml_dict):
        value = read_xml_value(xml_dict[i])
        if value is not None:
          plist_dict[key] = value
    i += 1
  return plist_dict
def construct_google_services_json(xml_dict):
  """Constructs a google services json file from a dictionary.
  Args:
    xml_dict: A dictionary of all the key/value pairs that are needed for the
              output json file.
  Returns:
    A string representing the output json file.
  """
  try:
    json_struct = {
        'project_info': {
            'project_number': xml_dict['GCM_SENDER_ID'],
            'firebase_url': xml_dict['DATABASE_URL'],
            'project_id': xml_dict['PROJECT_ID'],
            'storage_bucket': xml_dict['STORAGE_BUCKET']
        },
        'client': [{
            'client_info': {
                'mobilesdk_app_id': xml_dict['GOOGLE_APP_ID'],
                'android_client_info': {
                    'package_name': xml_dict['BUNDLE_ID']
                }
            },
            'oauth_client': [{
                'client_id': xml_dict['CLIENT_ID'],
            }],
            'api_key': [{
                'current_key': xml_dict['API_KEY']
            }],
            'services': {
                'analytics_service': {
                    'status': xml_dict['IS_ANALYTICS_ENABLED']
                },
                'appinvite_service': {
                    'status': xml_dict['IS_APPINVITE_ENABLED']
                }
            }
        },],
        'configuration_version':
            '1'
    }
    return json.dumps(json_struct, indent=2)
  except KeyError as e:
    sys.stderr.write('Could not find key in plist file: [%s]\n' % (e.args[0]))
    return None
def convert_plist_to_json(plist_string, input_filename):
  """Converts an input plist string into a .json file and saves it.
  Args:
    plist_string:    The contents of the loaded plist file.
    input_filename:  The file name that the plist data was read from.
  Returns:
    the converted string, or None if there were errors.
  """
  try:
    root = ElementTree.fromstring(plist_string)
  except ElementTree.ParseError:
    sys.stderr.write('Error parsing file %s.\n'
                     'It does not appear to be valid XML.\n' % (input_filename))
    return None
  plist_dict = construct_plist_dictionary(root)
  if plist_dict is None:
    sys.stderr.write('In file %s, could not locate a top-level \'dict\' '
                     'element.\n'
                     'File format should be plist XML, with a top-level '
                     'dictionary containing project settings as key-value '
                     'pairs.\n' % (input_filename))
    return None
  json_string = construct_google_services_json(plist_dict)
  return json_string
def gen_string(parent, name, text):
  """Generate one <string /> element and put into the list of keeps.
  Args:
    parent:  The object that will hold the string.
    name:    The name to store the string under.
    text:    The text of the string.
  """
  if text:
    prev = parent.get('tools:keep', '')
    if prev:
      prev += ','
    parent.set('tools:keep', prev + '@string/' + name)
    child = ElementTree.SubElement(parent, 'string', {
        'name': name,
        'translatable': 'false'
    })
    child.text = text
def indent(elem, level=0):
  """Recurse through XML tree and add indentation.
  Args:
    elem:  The element to recurse over
    level: The current indentation level.
  """
  i = '\n' + level*'  '
  if elem is not None:
    if not elem.text or not elem.text.strip():
      elem.text = i + '  '
    if not elem.tail or not elem.tail.strip():
      elem.tail = i
    for elem in elem:
      indent(elem, level+1)
    if not elem.tail or not elem.tail.strip():
      elem.tail = i
  else:
    if level and (not elem.tail or not elem.tail.strip()):
      elem.tail = i
def argv_as_unicode_win32():
  """Returns unicode command line arguments on windows.
  """
  get_command_line_w = ctypes.cdll.kernel32.GetCommandLineW
  get_command_line_w.restype = ctypes.wintypes.LPCWSTR
  # CommandLineToArgvW parses the Unicode command line
  command_line_to_argv_w = ctypes.windll.shell32.CommandLineToArgvW
  command_line_to_argv_w.argtypes = [
      ctypes.wintypes.LPCWSTR,
      ctypes.POINTER(ctypes.c_int)
  ]
  command_line_to_argv_w.restype = ctypes.POINTER(
      ctypes.wintypes.LPWSTR)
  argc = ctypes.c_int(0)
  argv = command_line_to_argv_w(get_command_line_w(), argc)
  # Strip the python executable from the arguments if it exists
  # (It would be listed as the first argument on the windows command line, but
  # not in the arguments to the python script)
  sys_argv_len = len(sys.argv)
  return [unicode(argv[i]) for i in
          range(argc.value - sys_argv_len, argc.value)]
def main():
  parser = argparse.ArgumentParser(
      description=((
          'Converts a Firebase %s into %s similar to the Gradle plugin, or '
          'converts a Firebase %s into a %s suitible for use on desktop apps.' %
          (DEFAULT_INPUT_FILENAME, DEFAULT_OUTPUT_FILENAME,
           DEFAULT_PLIST_INPUT_FILENAME, DEFAULT_JSON_OUTPUT_FILENAME))))
  parser.add_argument('-i', help='Override input file name',
                      metavar='FILE', required=False)
  parser.add_argument('-o', help='Override destination file name',
                      metavar='FILE', required=False)
  parser.add_argument('-p', help=('Package ID to select within the set of '
                                  'packages in the input file.  If this is '
                                  'not specified, the first package in the '
                                  'input file is selected.'))
  parser.add_argument('-l', help=('List all package IDs referenced by the '
                                  'input file.  If this is specified, '
                                  'the output file is not created.'),
                      action='store_true', default=False, required=False)
  parser.add_argument('-f', help=('Print project fields from the input file '
                                  'in the form \'name=value\\n\' for each '
                                  'field.  If this is specified, the output '
                                  'is not created.'),
                      action='store_true', default=False, required=False)
  parser.add_argument(
      '--plist',
      help=(
          'Specifies a plist file to convert to a JSON configuration file. '
          'If this is enabled, the script will expect a .plist file as input, '
          'which it will convert into %s file.  The output file is '
          '*not* suitable for use with Firebase on Android.' %
          (DEFAULT_JSON_OUTPUT_FILENAME)),
      action='store_true',
      default=False,
      required=False)
  # python 2 on Windows doesn't handle unicode arguments well, so we need to
  # pre-process the command line arguments before trying to parse them.
  if platform.system() == 'Windows':
    sys.argv = argv_as_unicode_win32()
  args = parser.parse_args()
  if args.plist:
    input_filename = DEFAULT_PLIST_INPUT_FILENAME
    output_filename = DEFAULT_JSON_OUTPUT_FILENAME
  else:
    input_filename = DEFAULT_INPUT_FILENAME
    output_filename = DEFAULT_OUTPUT_FILENAME
  if args.i:
    # Encode the input string (type unicode) as a normal string (type str)
    # using the 'utf-8' encoding so that it can be worked with the same as
    # input names from other sources (like the defaults).
    input_filename_raw = args.i.encode('utf-8')
    # Decode the filename to a unicode string using the 'utf-8' encoding to
    # properly handle filepaths with unicode characters in them.
    input_filename = input_filename_raw.decode('utf-8')
  if args.o:
    output_filename = args.o
  with open(input_filename, 'r') as ifile:
    file_string = ifile.read()
  json_string = None
  if args.plist:
    json_string = convert_plist_to_json(file_string, input_filename)
    if json_string is None:
      return 1
    jsobj = json.loads(json_string)
  else:
    jsobj = json.loads(file_string)
  root = ElementTree.Element('resources')
  root.set('xmlns:tools', 'http://schemas.android.com/tools')
  project_info = jsobj.get('project_info')
  if project_info:
    gen_string(root, 'firebase_database_url', project_info.get('firebase_url'))
    gen_string(root, 'gcm_defaultSenderId', project_info.get('project_number'))
    gen_string(root, 'google_storage_bucket',
               project_info.get('storage_bucket'))
    gen_string(root, 'project_id', project_info.get('project_id'))
  if args.f:
    if not project_info:
      sys.stderr.write('No project info found in %s.' % input_filename)
      return 1
    for field, value in sorted(project_info.items()):
      sys.stdout.write('%s=%s\n' % (field, value))
    return 0
  packages = set()
  client_list = jsobj.get('client')
  if client_list:
    # Search for the user specified package in the file.
    selected_package_name = ''
    selected_client = client_list[0]
    find_package_name = args.p
    for client in client_list:
      package_name = client.get('client_info', {}).get(
          'android_client_info', {}).get('package_name', '')
      if not package_name:
        package_name = client.get('oauth_client', {}).get(
            'android_info', {}).get('package_name', '')
      if package_name:
        if not selected_package_name:
          selected_package_name = package_name
          selected_client = client
        if package_name == find_package_name:
          selected_package_name = package_name
          selected_client = client
        packages.add(package_name)
    if args.p and selected_package_name != find_package_name:
      sys.stderr.write('No packages found in %s which match the package '
                       'name %s\n'
                       '\n'
                       'Found the following:\n'
                       '%s\n' % (input_filename, find_package_name,
                                 '\n'.join(packages)))
      return 1
    client_api_key = selected_client.get('api_key')
    if client_api_key:
      client_api_key0 = client_api_key[0]
      gen_string(root, 'google_api_key', client_api_key0.get('current_key'))
      gen_string(root, 'google_crash_reporting_api_key',
                 client_api_key0.get('current_key'))
    client_info = selected_client.get('client_info')
    if client_info:
      gen_string(root, 'google_app_id', client_info.get('mobilesdk_app_id'))
    # Only include the first matching OAuth client ID per type.
    client_id_web_parsed = False
    client_id_android_parsed = False
    oauth_client_list = selected_client.get('oauth_client')
    if oauth_client_list:
      for oauth_client in oauth_client_list:
        client_type = oauth_client.get('client_type')
        client_id = oauth_client.get('client_id')
        if not (client_type and client_id): continue
        if (client_type == OAUTH_CLIENT_TYPE_WEB and
            not client_id_web_parsed):
          gen_string(root, 'default_web_client_id', client_id)
          client_id_web_parsed = True
        if (client_type == OAUTH_CLIENT_TYPE_ANDROID_APP and
            not client_id_android_parsed):
          gen_string(root, 'default_android_client_id', client_id)
          client_id_android_parsed = True
    services = selected_client.get('services')
    if services:
      ads_service = services.get('ads_service')
      if ads_service:
        gen_string(root, 'test_banner_ad_unit_id',
                   ads_service.get('test_banner_ad_unit_id'))
        gen_string(root, 'test_interstitial_ad_unit_id',
                   ads_service.get('test_interstitial_ad_unit_id'))
      analytics_service = services.get('analytics_service')
      if analytics_service:
        analytics_property = analytics_service.get('analytics_property')
        if analytics_property:
          gen_string(root, 'ga_trackingId',
                     analytics_property.get('tracking_id'))
      # enable this once we have an example if this service being present
      # in the json data:
      maps_service_enabled = False
      if maps_service_enabled:
        maps_service = services.get('maps_service')
        if maps_service:
          maps_api_key = maps_service.get('api_key')
          if maps_api_key:
            for k in range(0, len(maps_api_key)):
              # generates potentially multiple of these keys, which is
              # the same behavior as the java plugin.
              gen_string(root, 'google_maps_key',
                         maps_api_key[k].get('maps_api_key'))
  tree = ElementTree.ElementTree(root)
  indent(root)
  if args.l:
    for package in sorted(packages):
      if package:
        sys.stdout.write(package + '\n')
  else:
    path = os.path.dirname(output_filename)
    if path and not os.path.exists(path):
      os.makedirs(path)
    if not args.plist:
      tree.write(output_filename, 'utf-8', True)
    else:
      with open(output_filename, 'w') as ofile:
        ofile.write(json_string)
  return 0
if __name__ == '__main__':
  sys.exit(main())
Assets/Firebase/Editor/generate_xml_from_google_services_json.py.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8f18ed76c0f04ce0a65736104f913ef8
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/generate_xml_from_google_services_json.py
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/network_request.exe.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d3cd5d0a941c4cdc8ab4b1b684b05191
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/network_request.exe
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Editor/network_request.py
New file
@@ -0,0 +1,416 @@
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Wrapper script which makes a network request.
Basic Usage: network_request.py post
                                --url <url>
                                --header <header>  (optional, support multiple)
                                --body <body>       (optional)
                                --timeout <secs>    (optional)
                                --verbose           (optional)
"""
import argparse
import inspect
import logging
import socket
import sys
# pylint: disable=g-import-not-at-top
# pylint: disable=g-importing-member
try:
  from six.moves.http_client import HTTPSConnection
  from six.moves.http_client import HTTPConnection
  from six.moves.http_client import HTTPException
except ImportError:
  from http.client import HTTPSConnection
  from http.client import HTTPConnection
  from http.client import HTTPException
try:
  from six.moves.urllib.parse import urlparse
except ImportError:
  from urllib.parse import urlparse
# pylint: enable=g-import-not-at-top
# pylint: enable=g-importing-member
# Set up logger as soon as possible
formatter = logging.Formatter('[%(levelname)s] %(message)s')
handler = logging.StreamHandler(stream=sys.stdout)
handler.setFormatter(formatter)
handler.setLevel(logging.INFO)
logger = logging.getLogger(__name__)
logger.addHandler(handler)
logger.setLevel(logging.INFO)
# Custom exit codes for known issues.
# System exit codes in python are valid from 0 - 256, so we will map some common
# ones here to understand successes and failures.
# Uses lower ints to not collide w/ HTTP status codes that the script may return
EXIT_CODE_SUCCESS = 0
EXIT_CODE_SYS_ERROR = 1
EXIT_CODE_INVALID_REQUEST_VALUES = 2
EXIT_CODE_GENERIC_HTTPLIB_ERROR = 3
EXIT_CODE_HTTP_TIMEOUT = 4
EXIT_CODE_HTTP_REDIRECT_ERROR = 5
EXIT_CODE_HTTP_NOT_FOUND_ERROR = 6
EXIT_CODE_HTTP_SERVER_ERROR = 7
EXIT_CODE_HTTP_UNKNOWN_ERROR = 8
MAX_EXIT_CODE = 8
# All used http verbs
POST = 'POST'
def unwrap_kwarg_namespace(func):
  """Transform a Namespace object from argparse into proper args and kwargs.
  For a function that will be delegated to from argparse, inspect all of the
  argments and extract them from the Namespace object.
  Args:
    func: the function that we are wrapping to modify behavior
  Returns:
    a new function that unwraps all of the arguments in a namespace and then
    delegates to the passed function with those args.
  """
  # When we move to python 3, getfullargspec so that we can tell the
  # difference between args and kwargs -- then this could be used for functions
  # that have both args and kwargs
  if 'getfullargspec' in dir(inspect):
    argspec = inspect.getfullargspec(func)
  else:
    argspec = inspect.getargspec(func)  # Python 2 compatibility.
  def wrapped(argparse_namespace=None, **kwargs):
    """Take a Namespace object and map it to kwargs.
    Inspect the argspec of the passed function. Loop over all the args that
    are present in the function and try to map them by name to arguments in the
    namespace. For keyword arguments, we do not require that they be present
    in the Namespace.
    Args:
      argparse_namespace: an arparse.Namespace object, the result of calling
        argparse.ArgumentParser().parse_args()
      **kwargs: keyword arguments that may be passed to the original function
    Returns:
      The return of the wrapped function from the parent.
    Raises:
      ValueError in the event that an argument is passed to the cli that is not
      in the set of named kwargs
    """
    if not argparse_namespace:
      return func(**kwargs)
    reserved_namespace_keywords = ['func']
    new_kwargs = {}
    args = argspec.args or []
    for arg_name in args:
      passed_value = getattr(argparse_namespace, arg_name, None)
      if passed_value is not None:
        new_kwargs[arg_name] = passed_value
    for namespace_key in vars(argparse_namespace).keys():
      # ignore namespace keywords that have been set not passed in via cli
      if namespace_key in reserved_namespace_keywords:
        continue
      # make sure that we haven't passed something we should be processing
      if namespace_key not in args:
        raise ValueError('CLI argument "{}" does not match any argument in '
                         'function {}'.format(namespace_key, func.__name__))
    return func(**new_kwargs)
  wrapped.__name__ = func.__name__
  return wrapped
class NetworkRequest(object):
  """A container for an network request object.
  This class holds on to all of the attributes necessary for making a
  network request via httplib.
  """
  def __init__(self, url, method, headers, body, timeout):
    self.url = url.lower()
    self.parsed_url = urlparse(self.url)
    self.method = method
    self.headers = headers
    self.body = body
    self.timeout = timeout
    self.is_secure_connection = self.is_secure_connection()
  def execute_request(self):
    """"Execute the request, and get a response.
    Returns:
      an HttpResponse object from httplib
    """
    if self.is_secure_connection:
      conn = HTTPSConnection(self.get_hostname(), timeout=self.timeout)
    else:
      conn = HTTPConnection(self.get_hostname(), timeout=self.timeout)
    conn.request(self.method, self.url, self.body, self.headers)
    response = conn.getresponse()
    return response
  def get_hostname(self):
    """Return the hostname for the url."""
    return self.parsed_url.netloc
  def is_secure_connection(self):
    """Checks for a secure connection of https.
    Returns:
      True if the scheme is "https"; False if "http"
    Raises:
      ValueError when the scheme does not match http or https
    """
    scheme = self.parsed_url.scheme
    if scheme == 'http':
      return False
    elif scheme == 'https':
      return True
    else:
      raise ValueError('The url scheme is not "http" nor "https"'
                       ': {}'.format(scheme))
def parse_colon_delimited_options(option_args):
  """Parses a key value from a string.
  Args:
      option_args: Key value string delimited by a color, ex: ("key:value")
  Returns:
      Return an array with the key as the first element and value as the second
  Raises:
      ValueError: If the key value option is not formatted correctly
  """
  options = {}
  if not option_args:
    return options
  for single_arg in option_args:
    values = single_arg.split(':')
    if len(values) != 2:
      raise ValueError('An option arg must be a single key/value pair '
                       'delimited by a colon - ex: "thing_key:thing_value"')
    key = values[0].strip()
    value = values[1].strip()
    options[key] = value
  return options
def make_request(request):
  """Makes a synchronous network request and return the HTTP status code.
  Args:
    request: a well formulated request object
  Returns:
    The HTTP status code of the network request.
    '1' maps to invalid request headers.
  """
  logger.info('Sending network request -')
  logger.info('\tUrl: %s', request.url)
  logger.debug('\tMethod: %s', request.method)
  logger.debug('\tHeaders: %s', request.headers)
  logger.debug('\tBody: %s', request.body)
  try:
    response = request.execute_request()
  except socket.timeout:
    logger.exception(
        'Timed out post request to %s in %d seconds for request body: %s',
        request.url, request.timeout, request.body)
    return EXIT_CODE_HTTP_TIMEOUT
  except (HTTPException, socket.error):
    logger.exception(
        'Encountered generic exception in posting to %s with request body %s',
        request.url, request.body)
    return EXIT_CODE_GENERIC_HTTPLIB_ERROR
  status = response.status
  headers = response.getheaders()
  logger.info('Received Network response -')
  logger.info('\tStatus code: %d', status)
  logger.debug('\tResponse headers: %s', headers)
  if status < 200 or status > 299:
    logger.error('Request (%s) failed with status code %d\n', request.url,
                 status)
  # If we wanted this script to support get, we need to
  # figure out what mechanism we intend for capturing the response
  return status
@unwrap_kwarg_namespace
def post(url=None, header=None, body=None, timeout=5, verbose=False):
  """Sends a post request.
  Args:
      url: The url of the request
      header: A list of headers for the request
      body: The body for the request
      timeout: Timeout in seconds for the request
      verbose: Should debug logs be displayed
  Returns:
      Return an array with the key as the first element and value as the second
  """
  if verbose:
    handler.setLevel(logging.DEBUG)
    logger.setLevel(logging.DEBUG)
  try:
    logger.info('Parsing headers: %s', header)
    headers = parse_colon_delimited_options(header)
  except ValueError:
    logging.exception('Could not parse the parameters with "--header": %s',
                      header)
    return EXIT_CODE_INVALID_REQUEST_VALUES
  try:
    request = NetworkRequest(url, POST, headers, body, float(timeout))
  except ValueError:
    logger.exception('Invalid request values passed into the script.')
    return EXIT_CODE_INVALID_REQUEST_VALUES
  status = make_request(request)
  # View exit code after running to get the http status code: 'echo $?'
  return status
def get_argsparser():
  """Returns the argument parser.
  Returns:
    Argument parser for the script.
  """
  parser = argparse.ArgumentParser(
      description='The script takes in the arguments of a network request. '
      'The network request is sent and the http status code will be'
      'returned as the exit code.')
  subparsers = parser.add_subparsers(help='Commands:')
  post_parser = subparsers.add_parser(
      post.__name__, help='{} help'.format(post.__name__))
  post_parser.add_argument(
      '--url',
      help='Request url. Ex: https://www.google.com/somePath/',
      required=True,
      dest='url')
  post_parser.add_argument(
      '--header',
      help='Request headers as a space delimited list of key '
      'value pairs. Ex: "key1:value1 key2:value2"',
      action='append',
      required=False,
      dest='header')
  post_parser.add_argument(
      '--body',
      help='The body of the network request',
      required=True,
      dest='body')
  post_parser.add_argument(
      '--timeout',
      help='The timeout in seconds',
      default=10.0,
      required=False,
      dest='timeout')
  post_parser.add_argument(
      '--verbose',
      help='Should verbose logging be outputted',
      action='store_true',
      default=False,
      required=False,
      dest='verbose')
  post_parser.set_defaults(func=post)
  return parser
def map_http_status_to_exit_code(status_code):
  """Map an http status code to the appropriate exit code.
  Exit codes in python are valid from 0-256, so we want to map these to
  predictable exit codes within range.
  Args:
    status_code: the input status code that was output from the network call
                 function
  Returns:
    One of our valid exit codes declared at the top of the file or a generic
    unknown error code
  """
  if status_code <= MAX_EXIT_CODE:
    return status_code
  if status_code > 199 and status_code < 300:
    return EXIT_CODE_SUCCESS
  if status_code == 302:
    return EXIT_CODE_HTTP_REDIRECT_ERROR
  if status_code == 404:
    return EXIT_CODE_HTTP_NOT_FOUND_ERROR
  if status_code > 499:
    return EXIT_CODE_HTTP_SERVER_ERROR
  return EXIT_CODE_HTTP_UNKNOWN_ERROR
def main():
  """Main function to run the program.
  Parse system arguments and delegate to the appropriate function.
  Returns:
    A status code - either an http status code or a custom error code
  """
  parser = get_argsparser()
  subparser_action = parser.parse_args()
  try:
    return subparser_action.func(subparser_action)
  except ValueError:
    logger.exception('Invalid arguments passed.')
    parser.print_help(sys.stderr)
    return EXIT_CODE_INVALID_REQUEST_VALUES
  return EXIT_CODE_GENERIC_HTTPLIB_ERROR
if __name__ == '__main__':
  exit_code = map_http_status_to_exit_code(main())
  sys.exit(exit_code)
Assets/Firebase/Editor/network_request.py.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e6e32fecbfd44fab946fa160e4861924
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Editor/network_request.py
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 38e6a4362f103734c9918cabb32ed17f
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.Analytics.dll
Binary files differ
Assets/Firebase/Plugins/Firebase.Analytics.dll.mdb
Binary files differ
Assets/Firebase/Plugins/Firebase.Analytics.dll.mdb.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: f22bb7d5145e41b1ace885c60f743673
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.Analytics.dll.mdb
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.Analytics.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 816270c2a2a348e59cb9b7b096a24f50
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.Analytics.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.App.dll
Binary files differ
Assets/Firebase/Plugins/Firebase.App.dll.mdb
Binary files differ
Assets/Firebase/Plugins/Firebase.App.dll.mdb.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: fc0d86fadf7e4dfba6fea54327923f95
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.App.dll.mdb
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.App.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 7311924048bd457bac6d713576c952da
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.App.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.Platform.dll
Binary files differ
Assets/Firebase/Plugins/Firebase.Platform.dll.mdb
Binary files differ
Assets/Firebase/Plugins/Firebase.Platform.dll.mdb.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 657ad9d9048b4c8eb351131596cc9bb8
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.Platform.dll.mdb
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.Platform.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 7d3eec03d7e241a48941e038118c5e6a
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.Platform.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.TaskExtension.dll
Binary files differ
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb
Binary files differ
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.mdb.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 9b97197272244860a9e3f1af9dbb06aa
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.TaskExtension.dll.mdb
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Firebase.TaskExtension.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: f5d4069c578548ba9f199b46d61bf06d
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Firebase.TaskExtension.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/Google.MiniJson.dll
Binary files differ
Assets/Firebase/Plugins/Google.MiniJson.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 3ebb289656f1477fa263e62d36c6e329
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/Google.MiniJson.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/iOS.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6f9eb1fc6fd893846b915961731a311f
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll
Binary files differ
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.mdb
Binary files differ
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.mdb.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 574e602182f34f1da8e5d51ab5addb72
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Analytics.dll.mdb
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/iOS/Firebase.Analytics.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 52718a3a80d44aacb368bcc9d62dd804
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.Analytics.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/iOS/Firebase.App.dll
Binary files differ
Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb
Binary files differ
Assets/Firebase/Plugins/iOS/Firebase.App.dll.mdb.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 439fbfd44af84d1ca6469a0f0f6d24ed
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.App.dll.mdb
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/iOS/Firebase.App.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 5f3feda1a91343759b7eb58a29b492b7
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/iOS/Firebase.App.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2022ff24cc9b0094d848b4c51596f699
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle
Binary files differ
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 35bfcced25264151bd76b628a1dfa989
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppAnalytics.bundle
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll
Binary files differ
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: c48626ae27ed478483ba85fd7c81c04b
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppAnalytics.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so
Binary files differ
Assets/Firebase/Plugins/x86_64/FirebaseCppAnalytics.so.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 590090df30d142acba7e7be939fd2988
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppAnalytics.so
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.bundle
Binary files differ
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.bundle.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 4c0df1fca7564f5db9c26950f6a196e9
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.bundle
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.dll
Binary files differ
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 08d03e05cf5f4f8691fb34509f14359b
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.dll
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so
Binary files differ
Assets/Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 6f297c10afc24fd3aae515a228c42974
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/Plugins/x86_64/FirebaseCppApp-7_1_0.so
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 1
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 0
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dfb3e62f22818cf4a8860a67ac3b2ca6
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 47f4865a52a18ba43b756e0d76417f58
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: be184a45d8eff314d800826fd26cca0d
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3777efda5456a8d47a41c7c62b739852
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2cb86c1485744294389b23d46e33feb6
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 11e31b42aa80a4d46b358f1c620aebaa
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom
New file
@@ -0,0 +1,13 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-analytics-unity</artifactId>
  <version>7.1.0</version>
  <packaging>aar</packaging>
  <dependencies>
  </dependencies>
</project>
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d7d06930909644b2a4bc39e3dacf097d
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.srcaar
Binary files differ
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.srcaar.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f91f99c5090049eba8a32f63f6bdb89d
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.srcaar
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml
New file
@@ -0,0 +1,10 @@
<metadata>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-analytics-unity</artifactId>
  <versioning>
    <release>7.1.0</release>
    <versions><version>7.1.0</version></versions>
    <lastUpdated/>
  </versioning>
</metadata>
Assets/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 291f81d8ae2745cf913a96d116f2e3f7
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-analytics-unity/maven-metadata.xml
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 512f3140346f30c4dba8272fb6502711
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c5e8a729160a8844882cd1e6b94efbab
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom
New file
@@ -0,0 +1,13 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-app-unity</artifactId>
  <version>7.1.0</version>
  <packaging>aar</packaging>
  <dependencies>
  </dependencies>
</project>
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3e5fcb9ef5df4acab9afc3ed706c9d2d
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.srcaar
Binary files differ
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.srcaar.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9235692dc94045638ebd69b08ccc24a0
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.srcaar
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml
New file
@@ -0,0 +1,10 @@
<metadata>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-app-unity</artifactId>
  <versioning>
    <release>7.1.0</release>
    <versions><version>7.1.0</version></versions>
    <lastUpdated/>
  </versioning>
</metadata>
Assets/Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 96337775a7c941d88ea15f8026ad6f8e
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Firebase/m2repository/com/google/firebase/firebase-app-unity/maven-metadata.xml
timeCreated: 1480838400
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 24280d433ad4aaf4789c7139db3f0531
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7408003e939d5634399d5588c44f6cd3
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1936bd0096a369d4a9c6c424b5aed862
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4733d147baf8299429ad3b909849f821
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0babf04295335ea459de357460ea7324
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a272bd708b418f24b82c005b4ebf1073
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8a9fc6ee4a601f04cae6969d96857d4e
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8ff085869393d9347a7bdd57880f9dcb
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.aar
Binary files differ
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.aar.meta
New file
@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: 716df72bd4f08a946b9e3fa4e9ee0cee
labels:
- gpsr
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Android: Android
    second:
      enabled: 0
      settings: {}
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 0
      settings:
        DefaultValueInitialized: true
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom
New file
@@ -0,0 +1,13 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-analytics-unity</artifactId>
  <version>7.1.0</version>
  <packaging>aar</packaging>
  <dependencies>
  </dependencies>
</project>
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b798c8226eba35f45b64c2171b0c5cf8
labels:
- gpsr
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f3a7177c02a3ab44b9452149fbd8d758
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1e9cacca7d0dbf94b9589bd01dd97af0
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.aar
Binary files differ
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.aar.meta
New file
@@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: 9f6b5727ec57fd44e8fcdaf919248fd0
labels:
- gpsr
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Android: Android
    second:
      enabled: 0
      settings: {}
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 0
      settings:
        DefaultValueInitialized: true
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom
New file
@@ -0,0 +1,13 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-app-unity</artifactId>
  <version>7.1.0</version>
  <packaging>aar</packaging>
  <dependencies>
  </dependencies>
</project>
Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: de2e85de532877a489db1439b17cc941
labels:
- gpsr
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/GoogleService-Info.xml
New file
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CLIENT_ID</key>
    <string>468442318367-ocoqrm0kei0gpkrnnq1ql628v4g4dbqd.apps.googleusercontent.com</string>
    <key>REVERSED_CLIENT_ID</key>
    <string>com.googleusercontent.apps.468442318367-ocoqrm0kei0gpkrnnq1ql628v4g4dbqd</string>
    <key>API_KEY</key>
    <string>AIzaSyCgvd3UdcGRQt6xZQ80_FuisiE4f9uhL4c</string>
    <key>GCM_SENDER_ID</key>
    <string>468442318367</string>
    <key>PLIST_VERSION</key>
    <string>1</string>
    <key>BUNDLE_ID</key>
    <string>com.sanxiagame.zmjas</string>
    <key>PROJECT_ID</key>
    <string>sanxiagamezhenmojve-3f07b</string>
    <key>STORAGE_BUCKET</key>
    <string>sanxiagamezhenmojve-3f07b.appspot.com</string>
    <key>IS_ADS_ENABLED</key>
    <false></false>
    <key>IS_ANALYTICS_ENABLED</key>
    <false></false>
    <key>IS_APPINVITE_ENABLED</key>
    <true></true>
    <key>IS_GCM_ENABLED</key>
    <true></true>
    <key>IS_SIGNIN_ENABLED</key>
    <true></true>
    <key>GOOGLE_APP_ID</key>
    <string>1:468442318367:ios:f8b79f49d90e5e4c65b72a</string>
</dict>
</plist>
Assets/GoogleService-Info.xml.meta
New file
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a98659eb5d77398418cff3d3f20fd983
TextScriptImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1fb25de6efea2414a9a288a5741cbf16
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse/Plugins.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0570b9b22e81e2a408821d0bf582c9ff
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse/Plugins/Unity.Compat.dll
Binary files differ
Assets/Parse/Plugins/Unity.Compat.dll.meta
New file
@@ -0,0 +1,25 @@
fileFormatVersion: 2
guid: 015ef18e20f24535830f59eda9e70830
labels:
- gvh
- gvh_dotnet-3.5
- gvh_version-7.1.0
- gvhp_exportpath-Parse/Plugins/Unity.Compat.dll
timeCreated: 1500423342
licenseType: Pro
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        DefaultValueInitialized: true
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse/Plugins/Unity.Tasks.dll
Binary files differ
Assets/Parse/Plugins/Unity.Tasks.dll.meta
New file
@@ -0,0 +1,25 @@
fileFormatVersion: 2
guid: 93324a471a6d44bb8297d17d8b191e52
labels:
- gvh
- gvh_dotnet-3.5
- gvh_version-7.1.0
- gvhp_exportpath-Parse/Plugins/Unity.Tasks.dll
timeCreated: 1500423342
licenseType: Pro
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        DefaultValueInitialized: true
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse/Plugins/dotNet45.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 421a86c4bae3ef9448b182ca8c73632d
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse/Plugins/dotNet45/Unity.Compat.dll
Binary files differ
Assets/Parse/Plugins/dotNet45/Unity.Compat.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 3db0783b58c2429b9bc1f560ba323d05
labels:
- gvh
- gvh_dotnet-4.5
- gvh_version-7.1.0
- gvhp_exportpath-Parse/Plugins/dotNet45/Unity.Compat.dll
timeCreated: 1516145908
licenseType: Pro
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Any:
      enabled: 1
      settings: {}
    Editor:
      enabled: 1
      settings:
        DefaultValueInitialized: true
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 1
      settings: {}
    WebStreamed:
      enabled: 1
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 1
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll
Binary files differ
Assets/Parse/Plugins/dotNet45/Unity.Tasks.dll.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: bd18eee30834e4f71bded96fd14033a9
labels:
- gvh
- gvh_dotnet-4.5
- gvh_version-7.1.0
- gvhp_exportpath-Parse/Plugins/dotNet45/Unity.Tasks.dll
timeCreated: 1500423342
licenseType: Pro
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Any:
      enabled: 1
      settings: {}
    Editor:
      enabled: 1
      settings:
        DefaultValueInitialized: true
    Android:
      enabled: 1
      settings:
        CPU: AnyCPU
    Linux:
      enabled: 1
      settings:
        CPU: x86
    Linux64:
      enabled: 1
      settings:
        CPU: x86_64
    LinuxUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    OSXIntel:
      enabled: 1
      settings:
        CPU: x86
    OSXIntel64:
      enabled: 1
      settings:
        CPU: x86_64
    OSXUniversal:
      enabled: 1
      settings:
        CPU: AnyCPU
    Web:
      enabled: 1
      settings: {}
    WebStreamed:
      enabled: 1
      settings: {}
    Win:
      enabled: 1
      settings:
        CPU: x86
    Win64:
      enabled: 1
      settings:
        CPU: x86_64
    WindowsStoreApps:
      enabled: 1
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/FirebaseApp.androidlib.meta
New file
@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: c491be729680b19468e27973862f5e34
folderAsset: yes
PluginImporter:
  externalObjects: {}
  serializedVersion: 2
  iconMap: {}
  executionOrder: {}
  defineConstraints: []
  isPreloaded: 0
  isOverridable: 0
  isExplicitlyReferenced: 0
  validateReferences: 1
  platformData:
  - first:
      Android: Android
    second:
      enabled: 1
      settings: {}
  - first:
      Any:
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 0
      settings:
        DefaultValueInitialized: true
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml
New file
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.google.firebase.app.unity"
          android:versionCode="1"
          android:versionName="1.0">
</manifest>
Assets/Plugins/Android/FirebaseApp.androidlib/AndroidManifest.xml.meta
New file
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 700773790a91e0c4a90d1c284bbbe9b4
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/FirebaseApp.androidlib/project.properties
New file
@@ -0,0 +1,2 @@
target=android-9
android.library=true
Assets/Plugins/Android/FirebaseApp.androidlib/project.properties.meta
New file
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e9e8ff00d9b666d499793a7f6c84a3f2
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/FirebaseApp.androidlib/res.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: db4af8b0fb3651e41814370154d40f3e
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/FirebaseApp.androidlib/res/values.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6050a3a811289b145923a20602cca1ce
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml
New file
@@ -0,0 +1,10 @@
<?xml version='1.0' encoding='utf-8'?>
<resources tools:keep="@string/gcm_defaultSenderId,@string/google_storage_bucket,@string/project_id,@string/google_api_key,@string/google_crash_reporting_api_key,@string/google_app_id,@string/default_web_client_id" xmlns:tools="http://schemas.android.com/tools">
  <string name="gcm_defaultSenderId" translatable="false">468442318367</string>
  <string name="google_storage_bucket" translatable="false">sanxiagamezhenmojve-3f07b.appspot.com</string>
  <string name="project_id" translatable="false">sanxiagamezhenmojve-3f07b</string>
  <string name="google_api_key" translatable="false">AIzaSyCWGb4y8L28f1hrAe51HJjD-pbf-ghkAXs</string>
  <string name="google_crash_reporting_api_key" translatable="false">AIzaSyCWGb4y8L28f1hrAe51HJjD-pbf-ghkAXs</string>
  <string name="google_app_id" translatable="false">1:468442318367:android:640efc9004ec6a6b65b72a</string>
  <string name="default_web_client_id" translatable="false">468442318367-mq4k7v7enbh74s8o5a0ag2qlv7u4r15m.apps.googleusercontent.com</string>
</resources>
Assets/Plugins/Android/FirebaseApp.androidlib/res/values/google-services.xml.meta
New file
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d75a7ca6dc7719d4ca3e8712fefd612e
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/Android/mainTemplate.gradle
@@ -1,13 +1,48 @@
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
// Android Resolver Repos Start
([rootProject] + (rootProject.subprojects as List)).each { project ->
    project.repositories {
        def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
        maven {
            url "https://dl.google.com/dl/android/maven2/"
        }
        maven {
            url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22
        }
        mavenLocal()
        jcenter()
        mavenCentral()
    }
}
// Android Resolver Repos End
apply plugin: 'com.android.library'
//**APPLY_PLUGINS**
apply from: 'deps.gradle'
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
    implementation 'com.google.android.gms:play-services-base:17.6.0' // Assets/Firebase/Editor/AppDependencies.xml:17
    implementation 'com.google.firebase:firebase-analytics:18.0.2' // Assets/Firebase/Editor/AppDependencies.xml:15
    implementation 'com.google.firebase:firebase-analytics-unity:7.1.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
    implementation 'com.google.firebase:firebase-app-unity:7.1.0' // Assets/Firebase/Editor/AppDependencies.xml:22
    implementation 'com.google.firebase:firebase-common:19.5.0' // Assets/Firebase/Editor/AppDependencies.xml:13
// Android Resolver Dependencies End
**DEPS**}
// Android Resolver Exclusions Start
android {
  packagingOptions {
      exclude ('/lib/arm64-v8a/*' + '*')
      exclude ('/lib/armeabi/*' + '*')
      exclude ('/lib/mips/*' + '*')
      exclude ('/lib/mips64/*' + '*')
      exclude ('/lib/x86/*' + '*')
      exclude ('/lib/x86_64/*' + '*')
  }
}
// Android Resolver Exclusions End
android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '**BUILDTOOLS**'
Assets/Plugins/iOS/Firebase.meta
New file
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aec7da2dd853a6f44861553ac5fc9cdb
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a
Binary files differ
Assets/Plugins/iOS/Firebase/libFirebaseCppAnalytics.a.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: bf523cc64d194963aa7661e7d2944feb
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppAnalytics.a
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a
Binary files differ
Assets/Plugins/iOS/Firebase/libFirebaseCppApp.a.meta
New file
@@ -0,0 +1,76 @@
fileFormatVersion: 2
guid: 601e8e1d2d2744929ede33676cbeccc0
labels:
- gvh
- gvh_version-7.1.0
- gvhp_exportpath-Plugins/iOS/Firebase/libFirebaseCppApp.a
timeCreated: 1480838400
PluginImporter:
  serializedVersion: 1
  iconMap: {}
  executionOrder: {}
  isPreloaded: 0
  platformData:
    Android:
      enabled: 0
      settings:
        CPU: AnyCPU
    Any:
      enabled: 0
      settings: {}
    Editor:
      enabled: 0
      settings:
        CPU: AnyCPU
        DefaultValueInitialized: true
        OS: AnyOS
    Linux:
      enabled: 0
      settings:
        CPU: None
    Linux64:
      enabled: 0
      settings:
        CPU: None
    LinuxUniversal:
      enabled: 0
      settings:
        CPU: None
    OSXIntel:
      enabled: 0
      settings:
        CPU: None
    OSXIntel64:
      enabled: 0
      settings:
        CPU: None
    OSXUniversal:
      enabled: 0
      settings:
        CPU: None
    Web:
      enabled: 0
      settings: {}
    WebStreamed:
      enabled: 0
      settings: {}
    Win:
      enabled: 0
      settings:
        CPU: None
    Win64:
      enabled: 0
      settings:
        CPU: None
    WindowsStoreApps:
      enabled: 0
      settings:
        CPU: AnyCPU
    iOS:
      enabled: 1
      settings:
        CompileFlags:
        FrameworkDependencies:
  userData:
  assetBundleName:
  assetBundleVariant:
Assets/google-services.json
New file
@@ -0,0 +1,46 @@
{
  "project_info": {
    "project_number": "468442318367",
    "project_id": "sanxiagamezhenmojve-3f07b",
    "storage_bucket": "sanxiagamezhenmojve-3f07b.appspot.com"
  },
  "client": [
    {
      "client_info": {
        "mobilesdk_app_id": "1:468442318367:android:640efc9004ec6a6b65b72a",
        "android_client_info": {
          "package_name": "com.sanxiagame.zmjgp"
        }
      },
      "oauth_client": [
        {
          "client_id": "468442318367-mq4k7v7enbh74s8o5a0ag2qlv7u4r15m.apps.googleusercontent.com",
          "client_type": 3
        }
      ],
      "api_key": [
        {
          "current_key": "AIzaSyCWGb4y8L28f1hrAe51HJjD-pbf-ghkAXs"
        }
      ],
      "services": {
        "appinvite_service": {
          "other_platform_oauth_client": [
            {
              "client_id": "468442318367-mq4k7v7enbh74s8o5a0ag2qlv7u4r15m.apps.googleusercontent.com",
              "client_type": 3
            },
            {
              "client_id": "468442318367-1vaamnch021bfoueuaondhb5j4hb530a.apps.googleusercontent.com",
              "client_type": 2,
              "ios_info": {
                "bundle_id": "com.xxx.asdf"
              }
            }
          ]
        }
      }
    }
  ],
  "configuration_version": "1"
}
Assets/google-services.json.meta
New file
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9b50b2d24a5ab4c4da67365ead779486
TextScriptImporter:
  externalObjects: {}
  userData:
  assetBundleName:
  assetBundleVariant:
ProjectSettings/AndroidResolverDependencies.xml
New file
@@ -0,0 +1,30 @@
<dependencies>
  <packages>
    <package>com.google.android.gms:play-services-base:17.6.0</package>
    <package>com.google.firebase:firebase-analytics:18.0.2</package>
    <package>com.google.firebase:firebase-analytics-unity:7.1.0</package>
    <package>com.google.firebase:firebase-app-unity:7.1.0</package>
    <package>com.google.firebase:firebase-common:19.5.0</package>
  </packages>
  <files>
    <file>Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.aar</file>
    <file>Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/7.1.0/firebase-analytics-unity-7.1.0.pom</file>
    <file>Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.aar</file>
    <file>Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-app-unity/7.1.0/firebase-app-unity-7.1.0.pom</file>
  </files>
  <settings>
    <setting name="androidAbis" value="armeabi-v7a" />
    <setting name="bundleId" value="com.sanxiagame.zmjgp" />
    <setting name="explodeAars" value="True" />
    <setting name="gradleBuildEnabled" value="True" />
    <setting name="gradlePropertiesTemplateEnabled" value="False" />
    <setting name="gradleTemplateEnabled" value="True" />
    <setting name="installAndroidPackages" value="True" />
    <setting name="localMavenRepoDir" value="Assets/GeneratedLocalRepo" />
    <setting name="packageDir" value="Assets/Plugins/Android" />
    <setting name="patchAndroidManifest" value="True" />
    <setting name="patchMainTemplateGradle" value="True" />
    <setting name="projectExportEnabled" value="False" />
    <setting name="useJetifier" value="False" />
  </settings>
</dependencies>