add ios
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
|
||||||
#include "Generated.xcconfig"
|
#include "Generated.xcconfig"
|
||||||
|
|||||||
84
ios/Podfile
Normal file
84
ios/Podfile
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
# Uncomment this line to define a global platform for your project
|
||||||
|
# platform :ios, '9.0'
|
||||||
|
|
||||||
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
|
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||||
|
|
||||||
|
project 'Runner', {
|
||||||
|
'Debug' => :debug,
|
||||||
|
'Profile' => :release,
|
||||||
|
'Release' => :release,
|
||||||
|
}
|
||||||
|
|
||||||
|
def parse_KV_file(file, separator='=')
|
||||||
|
file_abs_path = File.expand_path(file)
|
||||||
|
if !File.exists? file_abs_path
|
||||||
|
return [];
|
||||||
|
end
|
||||||
|
generated_key_values = {}
|
||||||
|
skip_line_start_symbols = ["#", "/"]
|
||||||
|
File.foreach(file_abs_path) do |line|
|
||||||
|
next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
|
||||||
|
plugin = line.split(pattern=separator)
|
||||||
|
if plugin.length == 2
|
||||||
|
podname = plugin[0].strip()
|
||||||
|
path = plugin[1].strip()
|
||||||
|
podpath = File.expand_path("#{path}", file_abs_path)
|
||||||
|
generated_key_values[podname] = podpath
|
||||||
|
else
|
||||||
|
puts "Invalid plugin specification: #{line}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
generated_key_values
|
||||||
|
end
|
||||||
|
|
||||||
|
target 'Runner' do
|
||||||
|
# Flutter Pod
|
||||||
|
|
||||||
|
copied_flutter_dir = File.join(__dir__, 'Flutter')
|
||||||
|
copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
|
||||||
|
copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
|
||||||
|
unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
|
||||||
|
# Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
|
||||||
|
# That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
|
||||||
|
# CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
|
||||||
|
|
||||||
|
generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
|
||||||
|
unless File.exist?(generated_xcode_build_settings_path)
|
||||||
|
raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
|
||||||
|
end
|
||||||
|
generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
|
||||||
|
cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
|
||||||
|
|
||||||
|
unless File.exist?(copied_framework_path)
|
||||||
|
FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
|
||||||
|
end
|
||||||
|
unless File.exist?(copied_podspec_path)
|
||||||
|
FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Keep pod path relative so it can be checked into Podfile.lock.
|
||||||
|
pod 'Flutter', :path => 'Flutter'
|
||||||
|
|
||||||
|
# Plugin Pods
|
||||||
|
|
||||||
|
# Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
|
||||||
|
# referring to absolute paths on developers' machines.
|
||||||
|
system('rm -rf .symlinks')
|
||||||
|
system('mkdir -p .symlinks/plugins')
|
||||||
|
plugin_pods = parse_KV_file('../.flutter-plugins')
|
||||||
|
plugin_pods.each do |name, path|
|
||||||
|
symlink = File.join('.symlinks', 'plugins', name)
|
||||||
|
File.symlink(path, symlink)
|
||||||
|
pod name, :path => File.join(symlink, 'ios')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
post_install do |installer|
|
||||||
|
installer.pods_project.targets.each do |target|
|
||||||
|
target.build_configurations.each do |config|
|
||||||
|
config.build_settings['ENABLE_BITCODE'] = 'NO'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
602
ios/Podfile.lock
Normal file
602
ios/Podfile.lock
Normal file
@@ -0,0 +1,602 @@
|
|||||||
|
PODS:
|
||||||
|
- abseil/algorithm (0.20200225.0):
|
||||||
|
- abseil/algorithm/algorithm (= 0.20200225.0)
|
||||||
|
- abseil/algorithm/container (= 0.20200225.0)
|
||||||
|
- abseil/algorithm/algorithm (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/algorithm/container (0.20200225.0):
|
||||||
|
- abseil/algorithm/algorithm
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/base (0.20200225.0):
|
||||||
|
- abseil/base/atomic_hook (= 0.20200225.0)
|
||||||
|
- abseil/base/base (= 0.20200225.0)
|
||||||
|
- abseil/base/base_internal (= 0.20200225.0)
|
||||||
|
- abseil/base/bits (= 0.20200225.0)
|
||||||
|
- abseil/base/config (= 0.20200225.0)
|
||||||
|
- abseil/base/core_headers (= 0.20200225.0)
|
||||||
|
- abseil/base/dynamic_annotations (= 0.20200225.0)
|
||||||
|
- abseil/base/endian (= 0.20200225.0)
|
||||||
|
- abseil/base/errno_saver (= 0.20200225.0)
|
||||||
|
- abseil/base/exponential_biased (= 0.20200225.0)
|
||||||
|
- abseil/base/log_severity (= 0.20200225.0)
|
||||||
|
- abseil/base/malloc_internal (= 0.20200225.0)
|
||||||
|
- abseil/base/periodic_sampler (= 0.20200225.0)
|
||||||
|
- abseil/base/pretty_function (= 0.20200225.0)
|
||||||
|
- abseil/base/raw_logging_internal (= 0.20200225.0)
|
||||||
|
- abseil/base/spinlock_wait (= 0.20200225.0)
|
||||||
|
- abseil/base/throw_delegate (= 0.20200225.0)
|
||||||
|
- abseil/base/atomic_hook (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/base (0.20200225.0):
|
||||||
|
- abseil/base/atomic_hook
|
||||||
|
- abseil/base/base_internal
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/dynamic_annotations
|
||||||
|
- abseil/base/log_severity
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/base/spinlock_wait
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/base/base_internal (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/base/bits (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/config (0.20200225.0)
|
||||||
|
- abseil/base/core_headers (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/dynamic_annotations (0.20200225.0)
|
||||||
|
- abseil/base/endian (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/errno_saver (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/exponential_biased (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/log_severity (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/malloc_internal (0.20200225.0):
|
||||||
|
- abseil/base/base
|
||||||
|
- abseil/base/base_internal
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/dynamic_annotations
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/base/periodic_sampler (0.20200225.0):
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/exponential_biased
|
||||||
|
- abseil/base/pretty_function (0.20200225.0)
|
||||||
|
- abseil/base/raw_logging_internal (0.20200225.0):
|
||||||
|
- abseil/base/atomic_hook
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/log_severity
|
||||||
|
- abseil/base/spinlock_wait (0.20200225.0):
|
||||||
|
- abseil/base/base_internal
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/errno_saver
|
||||||
|
- abseil/base/throw_delegate (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/container/compressed_tuple (0.20200225.0):
|
||||||
|
- abseil/utility/utility
|
||||||
|
- abseil/container/inlined_vector (0.20200225.0):
|
||||||
|
- abseil/algorithm/algorithm
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/throw_delegate
|
||||||
|
- abseil/container/inlined_vector_internal
|
||||||
|
- abseil/memory/memory
|
||||||
|
- abseil/container/inlined_vector_internal (0.20200225.0):
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/container/compressed_tuple
|
||||||
|
- abseil/memory/memory
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/types/span
|
||||||
|
- abseil/memory (0.20200225.0):
|
||||||
|
- abseil/memory/memory (= 0.20200225.0)
|
||||||
|
- abseil/memory/memory (0.20200225.0):
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/meta (0.20200225.0):
|
||||||
|
- abseil/meta/type_traits (= 0.20200225.0)
|
||||||
|
- abseil/meta/type_traits (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/numeric/int128 (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/strings/internal (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/endian
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/strings/str_format (0.20200225.0):
|
||||||
|
- abseil/strings/str_format_internal
|
||||||
|
- abseil/strings/str_format_internal (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/numeric/int128
|
||||||
|
- abseil/strings/strings
|
||||||
|
- abseil/types/span
|
||||||
|
- abseil/strings/strings (0.20200225.0):
|
||||||
|
- abseil/base/base
|
||||||
|
- abseil/base/bits
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/endian
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/base/throw_delegate
|
||||||
|
- abseil/memory/memory
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/numeric/int128
|
||||||
|
- abseil/strings/internal
|
||||||
|
- abseil/time (0.20200225.0):
|
||||||
|
- abseil/time/internal (= 0.20200225.0)
|
||||||
|
- abseil/time/time (= 0.20200225.0)
|
||||||
|
- abseil/time/internal (0.20200225.0):
|
||||||
|
- abseil/time/internal/cctz (= 0.20200225.0)
|
||||||
|
- abseil/time/internal/cctz (0.20200225.0):
|
||||||
|
- abseil/time/internal/cctz/civil_time (= 0.20200225.0)
|
||||||
|
- abseil/time/internal/cctz/time_zone (= 0.20200225.0)
|
||||||
|
- abseil/time/internal/cctz/civil_time (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/time/internal/cctz/time_zone (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/time/internal/cctz/civil_time
|
||||||
|
- abseil/time/time (0.20200225.0):
|
||||||
|
- abseil/base/base
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/numeric/int128
|
||||||
|
- abseil/strings/strings
|
||||||
|
- abseil/time/internal/cctz/civil_time
|
||||||
|
- abseil/time/internal/cctz/time_zone
|
||||||
|
- abseil/types (0.20200225.0):
|
||||||
|
- abseil/types/any (= 0.20200225.0)
|
||||||
|
- abseil/types/bad_any_cast (= 0.20200225.0)
|
||||||
|
- abseil/types/bad_any_cast_impl (= 0.20200225.0)
|
||||||
|
- abseil/types/bad_optional_access (= 0.20200225.0)
|
||||||
|
- abseil/types/bad_variant_access (= 0.20200225.0)
|
||||||
|
- abseil/types/compare (= 0.20200225.0)
|
||||||
|
- abseil/types/optional (= 0.20200225.0)
|
||||||
|
- abseil/types/span (= 0.20200225.0)
|
||||||
|
- abseil/types/variant (= 0.20200225.0)
|
||||||
|
- abseil/types/any (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/types/bad_any_cast
|
||||||
|
- abseil/utility/utility
|
||||||
|
- abseil/types/bad_any_cast (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/types/bad_any_cast_impl
|
||||||
|
- abseil/types/bad_any_cast_impl (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/types/bad_optional_access (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/types/bad_variant_access (0.20200225.0):
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/raw_logging_internal
|
||||||
|
- abseil/types/compare (0.20200225.0):
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/types/optional (0.20200225.0):
|
||||||
|
- abseil/base/base_internal
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/memory/memory
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/types/bad_optional_access
|
||||||
|
- abseil/utility/utility
|
||||||
|
- abseil/types/span (0.20200225.0):
|
||||||
|
- abseil/algorithm/algorithm
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/base/throw_delegate
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/types/variant (0.20200225.0):
|
||||||
|
- abseil/base/base_internal
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/base/core_headers
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- abseil/types/bad_variant_access
|
||||||
|
- abseil/utility/utility
|
||||||
|
- abseil/utility/utility (0.20200225.0):
|
||||||
|
- abseil/base/base_internal
|
||||||
|
- abseil/base/config
|
||||||
|
- abseil/meta/type_traits
|
||||||
|
- BoringSSL-GRPC (0.0.7):
|
||||||
|
- BoringSSL-GRPC/Implementation (= 0.0.7)
|
||||||
|
- BoringSSL-GRPC/Interface (= 0.0.7)
|
||||||
|
- BoringSSL-GRPC/Implementation (0.0.7):
|
||||||
|
- BoringSSL-GRPC/Interface (= 0.0.7)
|
||||||
|
- BoringSSL-GRPC/Interface (0.0.7)
|
||||||
|
- camera (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- cloud_firestore (0.0.1):
|
||||||
|
- Firebase/Core
|
||||||
|
- Firebase/Firestore (~> 6.0)
|
||||||
|
- Flutter
|
||||||
|
- cloud_firestore_web (0.1.0):
|
||||||
|
- Flutter
|
||||||
|
- connectivity (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- Reachability
|
||||||
|
- connectivity_macos (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- device_info (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- downloads_path_provider (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- Firebase/Auth (6.25.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseAuth (~> 6.5.3)
|
||||||
|
- Firebase/Core (6.25.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseAnalytics (= 6.5.1)
|
||||||
|
- Firebase/CoreOnly (6.25.0):
|
||||||
|
- FirebaseCore (= 6.7.1)
|
||||||
|
- Firebase/Firestore (6.25.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseFirestore (~> 1.14.0)
|
||||||
|
- Firebase/Messaging (6.25.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseMessaging (~> 4.4.1)
|
||||||
|
- Firebase/Storage (6.25.0):
|
||||||
|
- Firebase/CoreOnly
|
||||||
|
- FirebaseStorage (~> 3.6.1)
|
||||||
|
- firebase_auth (0.0.1):
|
||||||
|
- Firebase/Auth (~> 6.0)
|
||||||
|
- Firebase/Core
|
||||||
|
- Flutter
|
||||||
|
- firebase_core (0.0.1):
|
||||||
|
- Firebase/Core
|
||||||
|
- Flutter
|
||||||
|
- firebase_core_web (0.1.0):
|
||||||
|
- Flutter
|
||||||
|
- firebase_messaging (0.0.1):
|
||||||
|
- Firebase/Core
|
||||||
|
- Firebase/Messaging
|
||||||
|
- Flutter
|
||||||
|
- firebase_storage (0.0.1):
|
||||||
|
- Firebase/Storage
|
||||||
|
- Flutter
|
||||||
|
- FirebaseAnalytics (6.5.1):
|
||||||
|
- FirebaseCore (~> 6.7)
|
||||||
|
- FirebaseInstallations (~> 1.2)
|
||||||
|
- GoogleAppMeasurement (= 6.5.1)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
||||||
|
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
||||||
|
- GoogleUtilities/Network (~> 6.0)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
||||||
|
- nanopb (~> 1.30905.0)
|
||||||
|
- FirebaseAnalyticsInterop (1.5.0)
|
||||||
|
- FirebaseAuth (6.5.3):
|
||||||
|
- FirebaseAuthInterop (~> 1.0)
|
||||||
|
- FirebaseCore (~> 6.6)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 6.5)
|
||||||
|
- GoogleUtilities/Environment (~> 6.5)
|
||||||
|
- GTMSessionFetcher/Core (~> 1.1)
|
||||||
|
- FirebaseAuthInterop (1.1.0)
|
||||||
|
- FirebaseCore (6.7.1):
|
||||||
|
- FirebaseCoreDiagnostics (~> 1.3)
|
||||||
|
- FirebaseCoreDiagnosticsInterop (~> 1.2)
|
||||||
|
- GoogleUtilities/Environment (~> 6.5)
|
||||||
|
- GoogleUtilities/Logger (~> 6.5)
|
||||||
|
- FirebaseCoreDiagnostics (1.3.0):
|
||||||
|
- FirebaseCoreDiagnosticsInterop (~> 1.2)
|
||||||
|
- GoogleDataTransportCCTSupport (~> 3.1)
|
||||||
|
- GoogleUtilities/Environment (~> 6.5)
|
||||||
|
- GoogleUtilities/Logger (~> 6.5)
|
||||||
|
- nanopb (~> 1.30905.0)
|
||||||
|
- FirebaseCoreDiagnosticsInterop (1.2.0)
|
||||||
|
- FirebaseFirestore (1.14.0):
|
||||||
|
- abseil/algorithm (= 0.20200225.0)
|
||||||
|
- abseil/base (= 0.20200225.0)
|
||||||
|
- abseil/memory (= 0.20200225.0)
|
||||||
|
- abseil/meta (= 0.20200225.0)
|
||||||
|
- abseil/strings/strings (= 0.20200225.0)
|
||||||
|
- abseil/time (= 0.20200225.0)
|
||||||
|
- abseil/types (= 0.20200225.0)
|
||||||
|
- FirebaseAuthInterop (~> 1.0)
|
||||||
|
- FirebaseCore (~> 6.2)
|
||||||
|
- "gRPC-C++ (~> 1.28.0)"
|
||||||
|
- leveldb-library (~> 1.22)
|
||||||
|
- nanopb (~> 1.30905.0)
|
||||||
|
- FirebaseInstallations (1.2.0):
|
||||||
|
- FirebaseCore (~> 6.6)
|
||||||
|
- GoogleUtilities/Environment (~> 6.6)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 6.6)
|
||||||
|
- PromisesObjC (~> 1.2)
|
||||||
|
- FirebaseInstanceID (4.3.4):
|
||||||
|
- FirebaseCore (~> 6.6)
|
||||||
|
- FirebaseInstallations (~> 1.0)
|
||||||
|
- GoogleUtilities/Environment (~> 6.5)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 6.5)
|
||||||
|
- FirebaseMessaging (4.4.1):
|
||||||
|
- FirebaseAnalyticsInterop (~> 1.5)
|
||||||
|
- FirebaseCore (~> 6.6)
|
||||||
|
- FirebaseInstanceID (~> 4.3)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 6.5)
|
||||||
|
- GoogleUtilities/Environment (~> 6.5)
|
||||||
|
- GoogleUtilities/Reachability (~> 6.5)
|
||||||
|
- GoogleUtilities/UserDefaults (~> 6.5)
|
||||||
|
- Protobuf (>= 3.9.2, ~> 3.9)
|
||||||
|
- FirebaseStorage (3.6.1):
|
||||||
|
- FirebaseAuthInterop (~> 1.1)
|
||||||
|
- FirebaseCore (~> 6.6)
|
||||||
|
- GTMSessionFetcher/Core (~> 1.1)
|
||||||
|
- Flutter (1.0.0)
|
||||||
|
- flutter_downloader (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- flutter_plugin_android_lifecycle (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- flutter_ringtone_player (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- google_api_availability (2.0.4):
|
||||||
|
- Flutter
|
||||||
|
- GoogleAppMeasurement (6.5.1):
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
||||||
|
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
||||||
|
- GoogleUtilities/Network (~> 6.0)
|
||||||
|
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
||||||
|
- nanopb (~> 1.30905.0)
|
||||||
|
- GoogleDataTransport (6.1.1)
|
||||||
|
- GoogleDataTransportCCTSupport (3.1.0):
|
||||||
|
- GoogleDataTransport (~> 6.1)
|
||||||
|
- nanopb (~> 1.30905.0)
|
||||||
|
- GoogleUtilities/AppDelegateSwizzler (6.6.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Network
|
||||||
|
- GoogleUtilities/Environment (6.6.0):
|
||||||
|
- PromisesObjC (~> 1.2)
|
||||||
|
- GoogleUtilities/Logger (6.6.0):
|
||||||
|
- GoogleUtilities/Environment
|
||||||
|
- GoogleUtilities/MethodSwizzler (6.6.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/Network (6.6.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- "GoogleUtilities/NSData+zlib"
|
||||||
|
- GoogleUtilities/Reachability
|
||||||
|
- "GoogleUtilities/NSData+zlib (6.6.0)"
|
||||||
|
- GoogleUtilities/Reachability (6.6.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- GoogleUtilities/UserDefaults (6.6.0):
|
||||||
|
- GoogleUtilities/Logger
|
||||||
|
- "gRPC-C++ (1.28.2)":
|
||||||
|
- "gRPC-C++/Implementation (= 1.28.2)"
|
||||||
|
- "gRPC-C++/Interface (= 1.28.2)"
|
||||||
|
- "gRPC-C++/Implementation (1.28.2)":
|
||||||
|
- abseil/container/inlined_vector (= 0.20200225.0)
|
||||||
|
- abseil/memory/memory (= 0.20200225.0)
|
||||||
|
- abseil/strings/str_format (= 0.20200225.0)
|
||||||
|
- abseil/strings/strings (= 0.20200225.0)
|
||||||
|
- abseil/types/optional (= 0.20200225.0)
|
||||||
|
- "gRPC-C++/Interface (= 1.28.2)"
|
||||||
|
- gRPC-Core (= 1.28.2)
|
||||||
|
- "gRPC-C++/Interface (1.28.2)"
|
||||||
|
- gRPC-Core (1.28.2):
|
||||||
|
- gRPC-Core/Implementation (= 1.28.2)
|
||||||
|
- gRPC-Core/Interface (= 1.28.2)
|
||||||
|
- gRPC-Core/Implementation (1.28.2):
|
||||||
|
- abseil/container/inlined_vector (= 0.20200225.0)
|
||||||
|
- abseil/memory/memory (= 0.20200225.0)
|
||||||
|
- abseil/strings/str_format (= 0.20200225.0)
|
||||||
|
- abseil/strings/strings (= 0.20200225.0)
|
||||||
|
- abseil/types/optional (= 0.20200225.0)
|
||||||
|
- BoringSSL-GRPC (= 0.0.7)
|
||||||
|
- gRPC-Core/Interface (= 1.28.2)
|
||||||
|
- gRPC-Core/Interface (1.28.2)
|
||||||
|
- GTMSessionFetcher/Core (1.4.0)
|
||||||
|
- image_picker (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- leveldb-library (1.22)
|
||||||
|
- nanopb (1.30905.0):
|
||||||
|
- nanopb/decode (= 1.30905.0)
|
||||||
|
- nanopb/encode (= 1.30905.0)
|
||||||
|
- nanopb/decode (1.30905.0)
|
||||||
|
- nanopb/encode (1.30905.0)
|
||||||
|
- open_file (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- package_info (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- path_provider (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- path_provider_macos (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- "permission_handler (4.4.0+hotfix.4)":
|
||||||
|
- Flutter
|
||||||
|
- PromisesObjC (1.2.8)
|
||||||
|
- Protobuf (3.12.0)
|
||||||
|
- Reachability (3.2)
|
||||||
|
- shared_preferences (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- url_launcher (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- url_launcher_macos (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
- url_launcher_web (0.0.1):
|
||||||
|
- Flutter
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- camera (from `.symlinks/plugins/camera/ios`)
|
||||||
|
- cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
|
||||||
|
- cloud_firestore_web (from `.symlinks/plugins/cloud_firestore_web/ios`)
|
||||||
|
- connectivity (from `.symlinks/plugins/connectivity/ios`)
|
||||||
|
- connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`)
|
||||||
|
- device_info (from `.symlinks/plugins/device_info/ios`)
|
||||||
|
- downloads_path_provider (from `.symlinks/plugins/downloads_path_provider/ios`)
|
||||||
|
- firebase_auth (from `.symlinks/plugins/firebase_auth/ios`)
|
||||||
|
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
|
||||||
|
- firebase_core_web (from `.symlinks/plugins/firebase_core_web/ios`)
|
||||||
|
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
||||||
|
- firebase_storage (from `.symlinks/plugins/firebase_storage/ios`)
|
||||||
|
- Flutter (from `Flutter`)
|
||||||
|
- flutter_downloader (from `.symlinks/plugins/flutter_downloader/ios`)
|
||||||
|
- flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
|
||||||
|
- flutter_ringtone_player (from `.symlinks/plugins/flutter_ringtone_player/ios`)
|
||||||
|
- google_api_availability (from `.symlinks/plugins/google_api_availability/ios`)
|
||||||
|
- image_picker (from `.symlinks/plugins/image_picker/ios`)
|
||||||
|
- open_file (from `.symlinks/plugins/open_file/ios`)
|
||||||
|
- package_info (from `.symlinks/plugins/package_info/ios`)
|
||||||
|
- path_provider (from `.symlinks/plugins/path_provider/ios`)
|
||||||
|
- path_provider_macos (from `.symlinks/plugins/path_provider_macos/ios`)
|
||||||
|
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
|
||||||
|
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
||||||
|
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
|
||||||
|
- url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
|
||||||
|
- url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- abseil
|
||||||
|
- BoringSSL-GRPC
|
||||||
|
- Firebase
|
||||||
|
- FirebaseAnalytics
|
||||||
|
- FirebaseAnalyticsInterop
|
||||||
|
- FirebaseAuth
|
||||||
|
- FirebaseAuthInterop
|
||||||
|
- FirebaseCore
|
||||||
|
- FirebaseCoreDiagnostics
|
||||||
|
- FirebaseCoreDiagnosticsInterop
|
||||||
|
- FirebaseFirestore
|
||||||
|
- FirebaseInstallations
|
||||||
|
- FirebaseInstanceID
|
||||||
|
- FirebaseMessaging
|
||||||
|
- FirebaseStorage
|
||||||
|
- GoogleAppMeasurement
|
||||||
|
- GoogleDataTransport
|
||||||
|
- GoogleDataTransportCCTSupport
|
||||||
|
- GoogleUtilities
|
||||||
|
- "gRPC-C++"
|
||||||
|
- gRPC-Core
|
||||||
|
- GTMSessionFetcher
|
||||||
|
- leveldb-library
|
||||||
|
- nanopb
|
||||||
|
- PromisesObjC
|
||||||
|
- Protobuf
|
||||||
|
- Reachability
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
camera:
|
||||||
|
:path: ".symlinks/plugins/camera/ios"
|
||||||
|
cloud_firestore:
|
||||||
|
:path: ".symlinks/plugins/cloud_firestore/ios"
|
||||||
|
cloud_firestore_web:
|
||||||
|
:path: ".symlinks/plugins/cloud_firestore_web/ios"
|
||||||
|
connectivity:
|
||||||
|
:path: ".symlinks/plugins/connectivity/ios"
|
||||||
|
connectivity_macos:
|
||||||
|
:path: ".symlinks/plugins/connectivity_macos/ios"
|
||||||
|
device_info:
|
||||||
|
:path: ".symlinks/plugins/device_info/ios"
|
||||||
|
downloads_path_provider:
|
||||||
|
:path: ".symlinks/plugins/downloads_path_provider/ios"
|
||||||
|
firebase_auth:
|
||||||
|
:path: ".symlinks/plugins/firebase_auth/ios"
|
||||||
|
firebase_core:
|
||||||
|
:path: ".symlinks/plugins/firebase_core/ios"
|
||||||
|
firebase_core_web:
|
||||||
|
:path: ".symlinks/plugins/firebase_core_web/ios"
|
||||||
|
firebase_messaging:
|
||||||
|
:path: ".symlinks/plugins/firebase_messaging/ios"
|
||||||
|
firebase_storage:
|
||||||
|
:path: ".symlinks/plugins/firebase_storage/ios"
|
||||||
|
Flutter:
|
||||||
|
:path: Flutter
|
||||||
|
flutter_downloader:
|
||||||
|
:path: ".symlinks/plugins/flutter_downloader/ios"
|
||||||
|
flutter_plugin_android_lifecycle:
|
||||||
|
:path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
|
||||||
|
flutter_ringtone_player:
|
||||||
|
:path: ".symlinks/plugins/flutter_ringtone_player/ios"
|
||||||
|
google_api_availability:
|
||||||
|
:path: ".symlinks/plugins/google_api_availability/ios"
|
||||||
|
image_picker:
|
||||||
|
:path: ".symlinks/plugins/image_picker/ios"
|
||||||
|
open_file:
|
||||||
|
:path: ".symlinks/plugins/open_file/ios"
|
||||||
|
package_info:
|
||||||
|
:path: ".symlinks/plugins/package_info/ios"
|
||||||
|
path_provider:
|
||||||
|
:path: ".symlinks/plugins/path_provider/ios"
|
||||||
|
path_provider_macos:
|
||||||
|
:path: ".symlinks/plugins/path_provider_macos/ios"
|
||||||
|
permission_handler:
|
||||||
|
:path: ".symlinks/plugins/permission_handler/ios"
|
||||||
|
shared_preferences:
|
||||||
|
:path: ".symlinks/plugins/shared_preferences/ios"
|
||||||
|
url_launcher:
|
||||||
|
:path: ".symlinks/plugins/url_launcher/ios"
|
||||||
|
url_launcher_macos:
|
||||||
|
:path: ".symlinks/plugins/url_launcher_macos/ios"
|
||||||
|
url_launcher_web:
|
||||||
|
:path: ".symlinks/plugins/url_launcher_web/ios"
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
abseil: 6c8eb7892aefa08d929b39f9bb108e5367e3228f
|
||||||
|
BoringSSL-GRPC: 8edf627ee524575e2f8d19d56f068b448eea3879
|
||||||
|
camera: d56ad165545ae5a0ffb892376033760a969c68c8
|
||||||
|
cloud_firestore: 4cc700e236ebfe2d5d980e49cb066d202cfee0e9
|
||||||
|
cloud_firestore_web: 9ec3dc7f5f98de5129339802d491c1204462bfec
|
||||||
|
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
|
||||||
|
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
|
||||||
|
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
|
||||||
|
downloads_path_provider: fe0d06888d4b8c055a59edbc2f51f03e63cb0e28
|
||||||
|
Firebase: 5719b4f965f76643241a1bb8244483ff6117db39
|
||||||
|
firebase_auth: d99b993c1405096e66c58211b1cd956c23eed1c5
|
||||||
|
firebase_core: 335c02abd48672b7c83c683df833d0488a72e73e
|
||||||
|
firebase_core_web: d501d8b946b60c8af265428ce483b0fff5ad52d1
|
||||||
|
firebase_messaging: 21344b3b3a7d9d325d63a70e3750c0c798fe1e03
|
||||||
|
firebase_storage: 22966fce4aa6e8848cbaa017df62107cee29f327
|
||||||
|
FirebaseAnalytics: 93565f3f0f0f50a5d8770850bfe6a82eaba5db27
|
||||||
|
FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae
|
||||||
|
FirebaseAuth: 7047aec89c0b17ecd924a550c853f0c27ac6015e
|
||||||
|
FirebaseAuthInterop: a0f37ae05833af156e72028f648d313f7e7592e9
|
||||||
|
FirebaseCore: 6023faeada5afa95a349fccafb40900e32e9ac42
|
||||||
|
FirebaseCoreDiagnostics: 4a773a47bd83bbd5a9b1ccf1ce7caa8b2d535e67
|
||||||
|
FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
|
||||||
|
FirebaseFirestore: deb7242803734c97376278698de097499cf5194f
|
||||||
|
FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa
|
||||||
|
FirebaseInstanceID: cef67c4967c7cecb56ea65d8acbb4834825c587b
|
||||||
|
FirebaseMessaging: 29543feb343b09546ab3aa04d008ee8595b43c44
|
||||||
|
FirebaseStorage: f4f39ae834a7145963b913f54e2f24a9db1d8fac
|
||||||
|
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
|
||||||
|
flutter_downloader: 058b9c41564a90500f67f3e432e3524613a7fd83
|
||||||
|
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
|
||||||
|
flutter_ringtone_player: 15eba85187230b87b2512f0e1b92225618bc03e7
|
||||||
|
google_api_availability: 15fa42a8cd83c0a6738507ffe6e87096f12abcb8
|
||||||
|
GoogleAppMeasurement: 137afe68bfa406c3f4221b9395253d9e5d4654cf
|
||||||
|
GoogleDataTransport: ad884314b81cdb808fb1d23787b367ff8da4e28a
|
||||||
|
GoogleDataTransportCCTSupport: d70a561f7d236af529fee598835caad5e25f6d3d
|
||||||
|
GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1
|
||||||
|
"gRPC-C++": 13d8ccef97d5c3c441b7e3c529ef28ebee86fad2
|
||||||
|
gRPC-Core: 4afa11bfbedf7cdecd04de535a9e046893404ed5
|
||||||
|
GTMSessionFetcher: 6f5c8abbab8a9bce4bb3f057e317728ec6182b10
|
||||||
|
image_picker: 66aa71bc96850a90590a35d4c4a2907b0d823109
|
||||||
|
leveldb-library: 55d93ee664b4007aac644a782d11da33fba316f7
|
||||||
|
nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
|
||||||
|
open_file: 02eb5cb6b21264bd3a696876f5afbfb7ca4f4b7d
|
||||||
|
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
|
||||||
|
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
|
||||||
|
path_provider_macos: f760a3c5b04357c380e2fddb6f9db6f3015897e0
|
||||||
|
permission_handler: 8278954f2382902f63f00dd8828769c0bd6d511b
|
||||||
|
PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6
|
||||||
|
Protobuf: 2793fcd0622a00b546c60e7cbbcc493e043e9bb9
|
||||||
|
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
|
||||||
|
shared_preferences: 1feebfa37bb57264736e16865e7ffae7fc99b523
|
||||||
|
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
|
||||||
|
url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
|
||||||
|
url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: f32fb4e7c14f8b3ca19a369d7be425dd9241af27
|
||||||
|
|
||||||
|
COCOAPODS: 1.9.3
|
||||||
@@ -3,12 +3,14 @@
|
|||||||
archiveVersion = 1;
|
archiveVersion = 1;
|
||||||
classes = {
|
classes = {
|
||||||
};
|
};
|
||||||
objectVersion = 46;
|
objectVersion = 51;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||||
|
2BCB1E06702BEB21CC67037C /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */; };
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||||
|
846AC7DA24839A57005EDC47 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 846AC7D924839A57005EDC47 /* GoogleService-Info.plist */; };
|
||||||
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
|
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
|
||||||
97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
|
97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||||
@@ -32,10 +34,13 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
||||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
||||||
|
32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
||||||
|
4EC225A1B805CDBD5F102E79 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||||
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
||||||
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
||||||
|
846AC7D924839A57005EDC47 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||||
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
@@ -44,6 +49,8 @@
|
|||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
|
C34F2D5F2743A0F46A89234F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
CBE0E10451F10B7105856CCC /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -51,12 +58,23 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
2BCB1E06702BEB21CC67037C /* libPods-Runner.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
86D21D8E012412620B4E6045 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
C34F2D5F2743A0F46A89234F /* Pods-Runner.debug.xcconfig */,
|
||||||
|
CBE0E10451F10B7105856CCC /* Pods-Runner.release.xcconfig */,
|
||||||
|
4EC225A1B805CDBD5F102E79 /* Pods-Runner.profile.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
9740EEB11CF90186004384FC /* Flutter */ = {
|
9740EEB11CF90186004384FC /* Flutter */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -71,10 +89,12 @@
|
|||||||
97C146E51CF9000F007C117D = {
|
97C146E51CF9000F007C117D = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
846AC7D924839A57005EDC47 /* GoogleService-Info.plist */,
|
||||||
9740EEB11CF90186004384FC /* Flutter */,
|
9740EEB11CF90186004384FC /* Flutter */,
|
||||||
97C146F01CF9000F007C117D /* Runner */,
|
97C146F01CF9000F007C117D /* Runner */,
|
||||||
97C146EF1CF9000F007C117D /* Products */,
|
97C146EF1CF9000F007C117D /* Products */,
|
||||||
CF3B75C9A7D2FA2A4C99F110 /* Frameworks */,
|
86D21D8E012412620B4E6045 /* Pods */,
|
||||||
|
DAE0DFCA6468DD1B18DA1D13 /* Frameworks */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
@@ -110,6 +130,14 @@
|
|||||||
name = "Supporting Files";
|
name = "Supporting Files";
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
DAE0DFCA6468DD1B18DA1D13 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
32AB59F1C62AF5CE5121AFEC /* libPods-Runner.a */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
@@ -117,12 +145,15 @@
|
|||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
7B5736D5587E0AC72E154BA7 /* [CP] Check Pods Manifest.lock */,
|
||||||
9740EEB61CF901F6004384FC /* Run Script */,
|
9740EEB61CF901F6004384FC /* Run Script */,
|
||||||
97C146EA1CF9000F007C117D /* Sources */,
|
97C146EA1CF9000F007C117D /* Sources */,
|
||||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||||
97C146EC1CF9000F007C117D /* Resources */,
|
97C146EC1CF9000F007C117D /* Resources */,
|
||||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||||
|
39EACD7450202B9456DD1588 /* [CP] Embed Pods Frameworks */,
|
||||||
|
3F40F0B932775B103C077553 /* [CP] Copy Pods Resources */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
@@ -172,6 +203,7 @@
|
|||||||
files = (
|
files = (
|
||||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
|
||||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
|
||||||
|
846AC7DA24839A57005EDC47 /* GoogleService-Info.plist in Resources */,
|
||||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
|
||||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
|
||||||
);
|
);
|
||||||
@@ -180,6 +212,23 @@
|
|||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
39EACD7450202B9456DD1588 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -194,6 +243,45 @@
|
|||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
||||||
};
|
};
|
||||||
|
3F40F0B932775B103C077553 /* [CP] Copy Pods Resources */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Copy Pods Resources";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
7B5736D5587E0AC72E154BA7 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
@@ -300,18 +388,22 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = M7FNQK9WX4;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcsdev.fcs;
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
@@ -430,18 +522,22 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = M7FNQK9WX4;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcsdev.fcs;
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
@@ -453,18 +549,22 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||||
|
DEVELOPMENT_TEAM = M7FNQK9WX4;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = (
|
LIBRARY_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)/Flutter",
|
"$(PROJECT_DIR)/Flutter",
|
||||||
);
|
);
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.mokkon.fcsdev.fcs;
|
PRODUCT_BUNDLE_IDENTIFIER = "com.mokkon.easycard-dev";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
VERSIONING_SYSTEM = "apple-generic";
|
VERSIONING_SYSTEM = "apple-generic";
|
||||||
};
|
};
|
||||||
|
|||||||
3
ios/Runner.xcworkspace/contents.xcworkspacedata
generated
3
ios/Runner.xcworkspace/contents.xcworkspacedata
generated
@@ -4,4 +4,7 @@
|
|||||||
<FileRef
|
<FileRef
|
||||||
location = "group:Runner.xcodeproj">
|
location = "group:Runner.xcodeproj">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
|
|||||||
36
ios/Runner/GoogleService-Info.plist
Normal file
36
ios/Runner/GoogleService-Info.plist
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<?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>865099544652-okjme55c71n8piiphtjaqk543ngl2n3g.apps.googleusercontent.com</string>
|
||||||
|
<key>REVERSED_CLIENT_ID</key>
|
||||||
|
<string>com.googleusercontent.apps.865099544652-okjme55c71n8piiphtjaqk543ngl2n3g</string>
|
||||||
|
<key>API_KEY</key>
|
||||||
|
<string>AIzaSyCdYfjf7aYtMHMHwS4_pZ2H6lHg0kSVOlk</string>
|
||||||
|
<key>GCM_SENDER_ID</key>
|
||||||
|
<string>865099544652</string>
|
||||||
|
<key>PLIST_VERSION</key>
|
||||||
|
<string>1</string>
|
||||||
|
<key>BUNDLE_ID</key>
|
||||||
|
<string>com.mokkon.easycard-dev</string>
|
||||||
|
<key>PROJECT_ID</key>
|
||||||
|
<string>easy-card-dev</string>
|
||||||
|
<key>STORAGE_BUCKET</key>
|
||||||
|
<string>easy-card-dev.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:865099544652:ios:4dfae368fb05f4cc</string>
|
||||||
|
<key>DATABASE_URL</key>
|
||||||
|
<string>https://easy-card-dev.firebaseio.com</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>fcs</string>
|
<string>FCS</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
|
|||||||
@@ -1,177 +0,0 @@
|
|||||||
import 'smile_painter.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:camera/camera.dart';
|
|
||||||
import 'package:firebase_ml_vision/firebase_ml_vision.dart';
|
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'dart:ui' as ui show Image;
|
|
||||||
import 'utils.dart';
|
|
||||||
|
|
||||||
class FaceDetectionFromLiveCamera extends StatefulWidget {
|
|
||||||
FaceDetectionFromLiveCamera({Key key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
_FaceDetectionFromLiveCameraState createState() =>
|
|
||||||
_FaceDetectionFromLiveCameraState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _FaceDetectionFromLiveCameraState
|
|
||||||
extends State<FaceDetectionFromLiveCamera> {
|
|
||||||
final FaceDetector faceDetector = FirebaseVision.instance.faceDetector();
|
|
||||||
List<Face> faces;
|
|
||||||
CameraController _camera;
|
|
||||||
|
|
||||||
bool _isDetecting = false;
|
|
||||||
CameraLensDirection _direction = CameraLensDirection.back;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_initializeCamera();
|
|
||||||
}
|
|
||||||
|
|
||||||
void _initializeCamera() async {
|
|
||||||
CameraDescription description = await getCamera(_direction);
|
|
||||||
ImageRotation rotation = rotationIntToImageRotation(
|
|
||||||
description.sensorOrientation,
|
|
||||||
);
|
|
||||||
|
|
||||||
_camera = CameraController(
|
|
||||||
description,
|
|
||||||
defaultTargetPlatform == TargetPlatform.iOS
|
|
||||||
? ResolutionPreset.low
|
|
||||||
: ResolutionPreset.medium,
|
|
||||||
);
|
|
||||||
await _camera.initialize();
|
|
||||||
|
|
||||||
_camera.startImageStream((CameraImage image) {
|
|
||||||
if (_isDetecting) return;
|
|
||||||
|
|
||||||
_isDetecting = true;
|
|
||||||
|
|
||||||
detect(
|
|
||||||
image,
|
|
||||||
FirebaseVision.instance
|
|
||||||
.faceDetector(FaceDetectorOptions(
|
|
||||||
mode: FaceDetectorMode.accurate,
|
|
||||||
enableClassification: true))
|
|
||||||
.processImage,
|
|
||||||
rotation)
|
|
||||||
.then(
|
|
||||||
(dynamic result) {
|
|
||||||
setState(() {
|
|
||||||
faces = result;
|
|
||||||
});
|
|
||||||
|
|
||||||
_isDetecting = false;
|
|
||||||
},
|
|
||||||
).catchError(
|
|
||||||
(_) {
|
|
||||||
_isDetecting = false;
|
|
||||||
},
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildResults() {
|
|
||||||
const Text noResultsText = const Text('No results!');
|
|
||||||
const Text multipleFaceText = const Text('Multiple faces!');
|
|
||||||
const Text pleaseSmileText = const Text('Please smile!');
|
|
||||||
|
|
||||||
if (faces == null || _camera == null || !_camera.value.isInitialized) {
|
|
||||||
return noResultsText;
|
|
||||||
}
|
|
||||||
|
|
||||||
CustomPainter painter;
|
|
||||||
|
|
||||||
final Size imageSize = Size(
|
|
||||||
_camera.value.previewSize.height,
|
|
||||||
_camera.value.previewSize.width,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (faces is! List<Face> ||
|
|
||||||
faces.isEmpty ||
|
|
||||||
faces == null ||
|
|
||||||
faces.length == 0) return noResultsText;
|
|
||||||
if (faces.length > 1) return multipleFaceText;
|
|
||||||
var face = faces[0];
|
|
||||||
if (face.smilingProbability == null || face.smilingProbability < 0.8) {
|
|
||||||
return pleaseSmileText;
|
|
||||||
}
|
|
||||||
|
|
||||||
painter = SmilePainterLiveCamera(imageSize, faces);
|
|
||||||
return CustomPaint(
|
|
||||||
painter: painter,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget _buildImage() {
|
|
||||||
return Container(
|
|
||||||
constraints: const BoxConstraints.expand(),
|
|
||||||
child: _camera == null
|
|
||||||
? const Center(
|
|
||||||
child: Text(
|
|
||||||
'Initializing Camera...',
|
|
||||||
style: TextStyle(
|
|
||||||
color: Colors.green,
|
|
||||||
fontSize: 30.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
: Stack(
|
|
||||||
fit: StackFit.expand,
|
|
||||||
children: <Widget>[
|
|
||||||
CameraPreview(_camera),
|
|
||||||
_buildResults(),
|
|
||||||
Positioned(
|
|
||||||
bottom: 0.0,
|
|
||||||
left: 0.0,
|
|
||||||
right: 0.0,
|
|
||||||
child: Container(
|
|
||||||
color: Colors.white,
|
|
||||||
height: 50.0,
|
|
||||||
child: ListView(
|
|
||||||
children: faces
|
|
||||||
.map((face) => Text(
|
|
||||||
"${face.boundingBox.center.toString()}, Smile:${face.smilingProbability}"))
|
|
||||||
.toList(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void _toggleCameraDirection() async {
|
|
||||||
if (_direction == CameraLensDirection.back) {
|
|
||||||
_direction = CameraLensDirection.front;
|
|
||||||
} else {
|
|
||||||
_direction = CameraLensDirection.back;
|
|
||||||
}
|
|
||||||
|
|
||||||
await _camera.stopImageStream();
|
|
||||||
await _camera.dispose();
|
|
||||||
|
|
||||||
setState(() {
|
|
||||||
_camera = null;
|
|
||||||
});
|
|
||||||
|
|
||||||
_initializeCamera();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(
|
|
||||||
title: Text("Face Detection with Smile"),
|
|
||||||
),
|
|
||||||
body: _buildImage(),
|
|
||||||
floatingActionButton: FloatingActionButton(
|
|
||||||
onPressed: _toggleCameraDirection,
|
|
||||||
child: _direction == CameraLensDirection.back
|
|
||||||
? const Icon(Icons.camera_front)
|
|
||||||
: const Icon(Icons.camera_rear),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'dart:io';
|
|
||||||
import 'smile_painter.dart';
|
|
||||||
import 'package:firebase_ml_vision/firebase_ml_vision.dart';
|
|
||||||
import 'dart:ui' as ui show Image;
|
|
||||||
import 'package:image_picker/image_picker.dart';
|
|
||||||
|
|
||||||
class FaceDetectionFromImage extends StatefulWidget {
|
|
||||||
@override
|
|
||||||
_FaceDetectionFromImageState createState() => _FaceDetectionFromImageState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _FaceDetectionFromImageState extends State<FaceDetectionFromImage> {
|
|
||||||
bool loading = true;
|
|
||||||
ui.Image image;
|
|
||||||
List<Face> faces;
|
|
||||||
final FaceDetector faceDetector = FirebaseVision.instance.faceDetector();
|
|
||||||
|
|
||||||
Future<ui.Image> _loadImage(File file) async {
|
|
||||||
final data = await file.readAsBytes();
|
|
||||||
return await decodeImageFromList(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
void pickAndProcessImage() async {
|
|
||||||
final File file = await ImagePicker.pickImage(source: ImageSource.gallery);
|
|
||||||
final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(file);
|
|
||||||
faces = await faceDetector.processImage(visionImage);
|
|
||||||
image = await _loadImage(file);
|
|
||||||
setState(() {
|
|
||||||
loading = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(
|
|
||||||
title: Text('Face detection with Smile'),
|
|
||||||
),
|
|
||||||
body: Center(
|
|
||||||
child: loading
|
|
||||||
? Text('Press The floating Action Button for load image!')
|
|
||||||
: FittedBox(
|
|
||||||
child: SizedBox(
|
|
||||||
width: image.width.toDouble(),
|
|
||||||
height: image.height.toDouble(),
|
|
||||||
child: FacePaint(
|
|
||||||
painter: SmilePainter(image, faces),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
floatingActionButton: FloatingActionButton(
|
|
||||||
onPressed: pickAndProcessImage,
|
|
||||||
child: Icon(Icons.image),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
import 'face_detection_camera.dart';
|
|
||||||
import 'face_detection_image.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class HomeScreen extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(
|
|
||||||
title: Text('Smile To Face App'),
|
|
||||||
),
|
|
||||||
body: Center(
|
|
||||||
child: Column(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: <Widget>[
|
|
||||||
RaisedButton(
|
|
||||||
child: Text('Add Smile to Face from Image'),
|
|
||||||
onPressed: () {
|
|
||||||
Navigator.of(context).push(
|
|
||||||
MaterialPageRoute(
|
|
||||||
builder: (context) => FaceDetectionFromImage(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}),
|
|
||||||
RaisedButton(
|
|
||||||
child: Text('Add Smile to Face from Live Camera'),
|
|
||||||
onPressed: () {
|
|
||||||
Navigator.of(context).push(
|
|
||||||
MaterialPageRoute(
|
|
||||||
builder: (context) => FaceDetectionFromLiveCamera(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'home.dart';
|
|
||||||
|
|
||||||
void main() => runApp(MyApp());
|
|
||||||
|
|
||||||
class MyApp extends StatelessWidget {
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return MaterialApp(
|
|
||||||
title: 'Flutter Demo',
|
|
||||||
theme: ThemeData(
|
|
||||||
primarySwatch: Colors.blue,
|
|
||||||
),
|
|
||||||
home: HomeScreen(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,138 +0,0 @@
|
|||||||
import 'dart:ui' as ui show Image;
|
|
||||||
import 'dart:math' as Math;
|
|
||||||
import 'package:firebase_ml_vision/firebase_ml_vision.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class FacePaint extends CustomPaint {
|
|
||||||
final CustomPainter painter;
|
|
||||||
|
|
||||||
FacePaint({this.painter}) : super(painter: painter);
|
|
||||||
}
|
|
||||||
|
|
||||||
class SmilePainter extends CustomPainter {
|
|
||||||
final ui.Image image;
|
|
||||||
final List<Face> faces;
|
|
||||||
|
|
||||||
SmilePainter(this.image, this.faces);
|
|
||||||
|
|
||||||
@override
|
|
||||||
void paint(Canvas canvas, Size size) {
|
|
||||||
if (image != null) {
|
|
||||||
canvas.drawImage(image, Offset.zero, Paint());
|
|
||||||
}
|
|
||||||
|
|
||||||
final paintRectStyle = Paint()
|
|
||||||
..color = Colors.red
|
|
||||||
..strokeWidth = 30.0
|
|
||||||
..style = PaintingStyle.stroke;
|
|
||||||
|
|
||||||
//Draw Body
|
|
||||||
final paint = Paint()..color = Colors.yellow;
|
|
||||||
|
|
||||||
for (var i = 0; i < faces.length; i++) {
|
|
||||||
final radius =
|
|
||||||
Math.min(faces[i].boundingBox.width, faces[i].boundingBox.height) / 2;
|
|
||||||
final center = faces[i].boundingBox.center;
|
|
||||||
final smilePaint = Paint()
|
|
||||||
..style = PaintingStyle.stroke
|
|
||||||
..strokeWidth = radius / 8;
|
|
||||||
canvas.drawRect(faces[i].boundingBox, paintRectStyle);
|
|
||||||
canvas.drawCircle(center, radius, paint);
|
|
||||||
canvas.drawArc(
|
|
||||||
Rect.fromCircle(
|
|
||||||
center: center.translate(0, radius / 8), radius: radius / 2),
|
|
||||||
0,
|
|
||||||
Math.pi,
|
|
||||||
false,
|
|
||||||
smilePaint);
|
|
||||||
//Draw the eyes
|
|
||||||
canvas.drawCircle(Offset(center.dx - radius / 2, center.dy - radius / 2),
|
|
||||||
radius / 8, Paint());
|
|
||||||
canvas.drawCircle(Offset(center.dx + radius / 2, center.dy - radius / 2),
|
|
||||||
radius / 8, Paint());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool shouldRepaint(SmilePainter oldDelegate) {
|
|
||||||
return image != oldDelegate.image || faces != oldDelegate.faces;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class SmilePainterLiveCamera extends CustomPainter {
|
|
||||||
final Size imageSize;
|
|
||||||
final List<Face> faces;
|
|
||||||
|
|
||||||
SmilePainterLiveCamera(this.imageSize, this.faces);
|
|
||||||
|
|
||||||
@override
|
|
||||||
void paint(Canvas canvas, Size size) {
|
|
||||||
// final paintRectStyle = Paint()
|
|
||||||
// ..color = Colors.red
|
|
||||||
// ..strokeWidth = 10.0
|
|
||||||
// ..style = PaintingStyle.stroke;
|
|
||||||
|
|
||||||
final paint = Paint()..color = Colors.yellow;
|
|
||||||
|
|
||||||
for (var i = 0; i < faces.length; i++) {
|
|
||||||
//Scale rect to image size
|
|
||||||
final rect = _scaleRect(
|
|
||||||
rect: faces[i].boundingBox,
|
|
||||||
imageSize: imageSize,
|
|
||||||
widgetSize: size,
|
|
||||||
);
|
|
||||||
|
|
||||||
//Radius for smile circle
|
|
||||||
final radius = Math.min(rect.width, rect.height) / 2;
|
|
||||||
|
|
||||||
//Center of face rect
|
|
||||||
final Offset center = rect.center;
|
|
||||||
|
|
||||||
final smilePaint = Paint()
|
|
||||||
..style = PaintingStyle.stroke
|
|
||||||
..strokeWidth = radius / 8;
|
|
||||||
|
|
||||||
//Draw rect border
|
|
||||||
//canvas.drawRect(rect, paintRectStyle);
|
|
||||||
|
|
||||||
//Draw body
|
|
||||||
canvas.drawCircle(center, radius, paint);
|
|
||||||
|
|
||||||
//Draw mouth
|
|
||||||
canvas.drawArc(
|
|
||||||
Rect.fromCircle(
|
|
||||||
center: center.translate(0, radius / 8), radius: radius / 2),
|
|
||||||
0,
|
|
||||||
Math.pi,
|
|
||||||
false,
|
|
||||||
smilePaint);
|
|
||||||
|
|
||||||
//Draw the eyes
|
|
||||||
canvas.drawCircle(Offset(center.dx - radius / 2, center.dy - radius / 2),
|
|
||||||
radius / 8, Paint());
|
|
||||||
canvas.drawCircle(Offset(center.dx + radius / 2, center.dy - radius / 2),
|
|
||||||
radius / 8, Paint());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool shouldRepaint(SmilePainterLiveCamera oldDelegate) {
|
|
||||||
return imageSize != oldDelegate.imageSize || faces != oldDelegate.faces;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rect _scaleRect({
|
|
||||||
@required Rect rect,
|
|
||||||
@required Size imageSize,
|
|
||||||
@required Size widgetSize,
|
|
||||||
}) {
|
|
||||||
final double scaleX = widgetSize.width / imageSize.width;
|
|
||||||
final double scaleY = widgetSize.height / imageSize.height;
|
|
||||||
|
|
||||||
return Rect.fromLTRB(
|
|
||||||
rect.left.toDouble() * scaleX,
|
|
||||||
rect.top.toDouble() * scaleY,
|
|
||||||
rect.right.toDouble() * scaleX,
|
|
||||||
rect.bottom.toDouble() * scaleY,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
import 'dart:async';
|
|
||||||
import 'dart:typed_data';
|
|
||||||
import 'dart:ui';
|
|
||||||
import 'package:camera/camera.dart';
|
|
||||||
import 'package:firebase_ml_vision/firebase_ml_vision.dart';
|
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
|
|
||||||
typedef HandleDetection = Future<List<Face>> Function(FirebaseVisionImage image);
|
|
||||||
|
|
||||||
Future<CameraDescription> getCamera(CameraLensDirection dir) async {
|
|
||||||
return await availableCameras().then(
|
|
||||||
(List<CameraDescription> cameras) => cameras.firstWhere(
|
|
||||||
(CameraDescription camera) => camera.lensDirection == dir,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Uint8List concatenatePlanes(List<Plane> planes) {
|
|
||||||
final WriteBuffer allBytes = WriteBuffer();
|
|
||||||
planes.forEach((Plane plane) => allBytes.putUint8List(plane.bytes));
|
|
||||||
return allBytes.done().buffer.asUint8List();
|
|
||||||
}
|
|
||||||
|
|
||||||
FirebaseVisionImageMetadata buildMetaData(
|
|
||||||
CameraImage image,
|
|
||||||
ImageRotation rotation,
|
|
||||||
) {
|
|
||||||
return FirebaseVisionImageMetadata(
|
|
||||||
rawFormat: image.format.raw,
|
|
||||||
size: Size(image.width.toDouble(), image.height.toDouble()),
|
|
||||||
rotation: rotation,
|
|
||||||
planeData: image.planes.map(
|
|
||||||
(Plane plane) {
|
|
||||||
return FirebaseVisionImagePlaneMetadata(
|
|
||||||
bytesPerRow: plane.bytesPerRow,
|
|
||||||
height: plane.height,
|
|
||||||
width: plane.width,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
).toList(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<List<Face>> detect(
|
|
||||||
CameraImage image,
|
|
||||||
HandleDetection handleDetection,
|
|
||||||
ImageRotation rotation,
|
|
||||||
) async {
|
|
||||||
return handleDetection(
|
|
||||||
FirebaseVisionImage.fromBytes(
|
|
||||||
concatenatePlanes(image.planes),
|
|
||||||
buildMetaData(image, rotation),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImageRotation rotationIntToImageRotation(int rotation) {
|
|
||||||
switch (rotation) {
|
|
||||||
case 0:
|
|
||||||
return ImageRotation.rotation0;
|
|
||||||
case 90:
|
|
||||||
return ImageRotation.rotation90;
|
|
||||||
case 180:
|
|
||||||
return ImageRotation.rotation180;
|
|
||||||
default:
|
|
||||||
assert(rotation == 270);
|
|
||||||
return ImageRotation.rotation270;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -218,13 +218,6 @@ packages:
|
|||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "6.0.16"
|
version: "6.0.16"
|
||||||
firebase_ml_vision:
|
|
||||||
dependency: "direct main"
|
|
||||||
description:
|
|
||||||
name: firebase_ml_vision
|
|
||||||
url: "https://pub.dartlang.org"
|
|
||||||
source: hosted
|
|
||||||
version: "0.6.0+2"
|
|
||||||
firebase_storage:
|
firebase_storage:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ dependencies:
|
|||||||
http_server: ^0.9.8+3
|
http_server: ^0.9.8+3
|
||||||
archive: ^2.0.11
|
archive: ^2.0.11
|
||||||
http: ^0.12.0+4
|
http: ^0.12.0+4
|
||||||
firebase_ml_vision: ^0.6.0+2
|
|
||||||
camera: ^0.4.2
|
camera: ^0.4.2
|
||||||
faker: ^1.2.0
|
faker: ^1.2.0
|
||||||
url_launcher: ^5.4.1
|
url_launcher: ^5.4.1
|
||||||
|
|||||||
Reference in New Issue
Block a user