diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b4aba2..125e93f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## [0.1.1] - 19/12/2021 + +- Keeping dependencies up-to-date +- More flexibility on hard-coded text messages +- Improving example code + ## [0.1.0] - 16/05/2021 This is a major change as we are forcing an upgrade on the SDK. diff --git a/example/ios/Podfile b/example/ios/Podfile index 6697f0a..1e8c3c9 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -10,78 +10,32 @@ project 'Runner', { 'Release' => :release, } -def parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exists? file_abs_path - return []; +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" 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 + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches end - generated_key_values + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" end +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + target 'Runner' do use_frameworks! use_modular_headers! - # 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 + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) 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 + flutter_additional_ios_build_settings(target) end end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 18abab7..f262df4 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,46 +1,28 @@ PODS: - Flutter (1.0.0) - - in_app_update (0.0.1): - - Flutter - package_info (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: - Flutter (from `Flutter`) - - in_app_update (from `.symlinks/plugins/in_app_update/ios`) - package_info (from `.symlinks/plugins/package_info/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`) EXTERNAL SOURCES: Flutter: :path: Flutter - in_app_update: - :path: ".symlinks/plugins/in_app_update/ios" package_info: :path: ".symlinks/plugins/package_info/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: - Flutter: 0e3d915762c693b495b44d77113d4970485de6ec - in_app_update: 16e877e205f4360264cb536e3a6481f0d90299e1 - package_info: 48b108e75b8802c2d5e126f208ef540561c98aef - url_launcher: a1c0cc845906122c4784c542523d8cacbded5626 - url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313 - url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c + Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 + url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef -PODFILE CHECKSUM: c34e2287a9ccaa606aeceab922830efb9a6ff69a +PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c -COCOAPODS: 1.9.1 +COCOAPODS: 1.9.3 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index e12cbd8..173b9a9 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -227,15 +227,11 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${PODS_ROOT}/../Flutter/Flutter.framework", - "${BUILT_PRODUCTS_DIR}/in_app_update/in_app_update.framework", "${BUILT_PRODUCTS_DIR}/package_info/package_info.framework", "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/in_app_update.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/package_info.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework", ); @@ -316,7 +312,6 @@ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -393,7 +388,6 @@ }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -449,7 +443,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 1d526a1..919434a 100644 --- a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/example/lib/dio.dart b/example/lib/dio.dart index 183303d..3dbe947 100644 --- a/example/lib/dio.dart +++ b/example/lib/dio.dart @@ -27,12 +27,11 @@ class _HomeState extends State { /// response of HTTP request. /// Let's say the statusCode 412 requires you to force update Future.delayed(Duration.zero, () { - if (statusCode == HttpStatus.unauthorized;) { + if (statusCode == HttpStatus.unauthorized) { NativeUpdater.displayUpdateAlert( context, forceUpdate: true, appStoreUrl: '', - playStoreUrl: '', iOSDescription: '', iOSUpdateButtonLabel: 'Upgrade', iOSCloseButtonLabel: 'Exit', @@ -48,7 +47,7 @@ class _HomeState extends State { title: Text('Your App'), ), body: Center( - child: FlatButton( + child: TextButton( onPressed: requestAPI, child: Text('Request API') ), @@ -56,7 +55,7 @@ class _HomeState extends State { ); } - requestAPI() { + requestAPI() async { var dio = Dio(BaseOptions( baseUrl: 'http://httpbin.org/', )); diff --git a/example/lib/main.dart b/example/lib/main.dart index 3f622f6..2b44ad5 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -43,17 +43,18 @@ class _HomeState extends State { context, forceUpdate: true, appStoreUrl: '', - playStoreUrl: '', iOSDescription: '', iOSUpdateButtonLabel: 'Upgrade', iOSCloseButtonLabel: 'Exit', + errorText: "Error", + errorCloseButtonLabel: "Close", + errorSubtitle: "This version of the app isn't legit" ); } else if (serverLatestVersion > localVersion) { NativeUpdater.displayUpdateAlert( context, forceUpdate: false, appStoreUrl: '', - playStoreUrl: '', iOSDescription: '', iOSUpdateButtonLabel: 'Upgrade', iOSIgnoreButtonLabel: 'Next Time', diff --git a/example/pubspec.lock b/example/pubspec.lock index 743b9f3..ca220b7 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -1,69 +1,69 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - archive: + async: dependency: transitive description: - name: archive + name: async url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" - args: + version: "2.7.0" + boolean_selector: dependency: transitive description: - name: args + name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.5.2" - async: + version: "2.1.0" + characters: dependency: transitive description: - name: async + name: characters url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" - boolean_selector: + version: "1.1.0" + charcode: dependency: transitive description: - name: boolean_selector + name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" - charcode: + version: "1.3.1" + clock: dependency: transitive description: - name: charcode + name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.1.0" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" - convert: - dependency: transitive + version: "1.15.0" + cupertino_icons: + dependency: "direct main" description: - name: convert + name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" - crypto: - dependency: transitive + version: "1.0.3" + dio: + dependency: "direct main" description: - name: crypto + name: dio url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" - cupertino_icons: - dependency: "direct main" + version: "4.0.0" + fake_async: + dependency: transitive description: - name: cupertino_icons + name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "1.2.0" flutter: dependency: "direct main" description: flutter @@ -79,76 +79,69 @@ packages: description: flutter source: sdk version: "0.0.0" - image: + http_parser: dependency: transitive description: - name: image + name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "4.0.0" in_app_update: dependency: transitive description: name: in_app_update url: "https://pub.dartlang.org" source: hosted - version: "1.1.7" + version: "2.0.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.10" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.4.0" native_updater: dependency: "direct main" description: path: ".." relative: true source: path - version: "0.0.3" + version: "0.1.0" package_info: dependency: transitive description: name: package_info url: "https://pub.dartlang.org" source: hosted - version: "0.4.0+16" + version: "2.0.2" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" + version: "1.8.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.5" + version: "2.0.0" sky_engine: dependency: transitive description: flutter @@ -160,91 +153,98 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.15" + version: "0.4.1" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.3.0" url_launcher: dependency: transitive description: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "5.4.2" + version: "6.0.6" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "0.0.1+4" + version: "2.0.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.6" + version: "2.0.3" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "0.1.1+1" - vector_math: + version: "2.0.1" + url_launcher_windows: dependency: transitive description: - name: vector_math + name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" - xml: + version: "2.0.0" + vector_math: dependency: transitive description: - name: xml + name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "3.5.0" + version: "2.1.0" sdks: - dart: ">=2.4.0 <3.0.0" - flutter: ">=1.12.8 <2.0.0" + dart: ">=2.12.0 <3.0.0" + flutter: ">=2.0.0" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 76e49c4..4c554ee 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -9,7 +9,8 @@ environment: dependencies: flutter: sdk: flutter - cupertino_icons: ^0.1.3 + cupertino_icons: ^1.0.3 + dio: ^4.0.0 native_updater: path: ../ diff --git a/lib/src/error_material_alert.dart b/lib/src/error_material_alert.dart index 6e75267..ff4cdb7 100644 --- a/lib/src/error_material_alert.dart +++ b/lib/src/error_material_alert.dart @@ -3,10 +3,14 @@ import 'package:flutter/material.dart'; class ErrorMaterialAlert extends StatelessWidget { final String appName; final String description; + final String? errorCloseButtonLabel; + final String? errorSubtitle; ErrorMaterialAlert({ required this.appName, required this.description, + this.errorCloseButtonLabel, + this.errorSubtitle, }); @override @@ -16,7 +20,7 @@ class ErrorMaterialAlert extends StatelessWidget { ); Widget closeButton = TextButton( - child: Text('CLOSE', style: TextStyle(color: Colors.white)), + child: Text(errorCloseButtonLabel ?? 'CLOSE', style: TextStyle(color: Colors.white)), onPressed: () => Navigator.pop(context), style: flatButtonStyle, ); @@ -28,7 +32,7 @@ class ErrorMaterialAlert extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - 'Can\'t perform update.', + errorSubtitle ?? 'Can\'t perform update.', style: TextStyle(color: Colors.grey), ), SizedBox(height: 24.0), diff --git a/lib/src/native_updater.dart b/lib/src/native_updater.dart index 5de7ab0..b7be4bd 100644 --- a/lib/src/native_updater.dart +++ b/lib/src/native_updater.dart @@ -14,12 +14,16 @@ class NativeUpdater { late bool _forceUpdate; late String _appName; String? _appStoreUrl; - String? _playStoreUrl; String? _iOSDescription; String? _iOSUpdateButtonLabel; String? _iOSCloseButtonLabel; String? _iOSIgnoreButtonLabel; String? _iOSAlertTitle; + String? _requireUpdateText; + String? _recommendUpdateText; + String? _errorText; + String? _errorCloseButtonLabel; + String? _errorSubtitle; /// Singleton related static final NativeUpdater _nativeUpdaterInstance = NativeUpdater._internal(); @@ -31,12 +35,16 @@ class NativeUpdater { BuildContext context, { required bool forceUpdate, String? appStoreUrl, - String? playStoreUrl, String? iOSDescription, String? iOSUpdateButtonLabel, String? iOSCloseButtonLabel, String? iOSIgnoreButtonLabel, String? iOSAlertTitle, + String? requireUpdateText, + String? recommendUpdateText, + String? errorText, + String? errorCloseButtonLabel, + String? errorSubtitle, }) async { /// Get current installed version of app final PackageInfo info = await PackageInfo.fromPlatform(); @@ -46,13 +54,16 @@ class NativeUpdater { _nativeUpdaterInstance._forceUpdate = forceUpdate; _nativeUpdaterInstance._appName = info.appName; _nativeUpdaterInstance._appStoreUrl = appStoreUrl; - _nativeUpdaterInstance._playStoreUrl = playStoreUrl; _nativeUpdaterInstance._iOSDescription = iOSDescription; _nativeUpdaterInstance._iOSUpdateButtonLabel = iOSUpdateButtonLabel; _nativeUpdaterInstance._iOSCloseButtonLabel = iOSCloseButtonLabel; _nativeUpdaterInstance._iOSIgnoreButtonLabel = iOSIgnoreButtonLabel; _nativeUpdaterInstance._iOSAlertTitle = iOSAlertTitle; - + _nativeUpdaterInstance._requireUpdateText = requireUpdateText ?? 'requires that you update to the latest version. You cannot use this app until it is updated.'; + _nativeUpdaterInstance._recommendUpdateText = recommendUpdateText ?? 'recommends that you update to the latest version. You can keep using this app while downloading the update.'; + _nativeUpdaterInstance._errorText = errorText; + _nativeUpdaterInstance._errorCloseButtonLabel = errorCloseButtonLabel; + _nativeUpdaterInstance._errorSubtitle = errorSubtitle; /// Show the alert based on current platform if (Platform.isIOS) { _nativeUpdaterInstance._showCupertinoAlertDialog(); @@ -67,10 +78,10 @@ class NativeUpdater { if (_forceUpdate) { selectedDefaultDescription = - '$_appName requires that you update to the latest version. You cannot use this app until it is updated.'; + '$_appName $_requireUpdateText'; } else { selectedDefaultDescription = - '$_appName recommends that you update to the latest version. You can keep using this app while downloading the update.'; + '$_appName $_recommendUpdateText'; } Widget alert = UpdateCupertinoAlert( @@ -94,8 +105,6 @@ class NativeUpdater { } void _showMaterialAlertDialog() async { - developer.log('Playstore URL: ${_playStoreUrl ?? ''}'); - /// In App Update Related try { AppUpdateInfo _updateInfo = await InAppUpdate.checkForUpdate(); @@ -118,7 +127,9 @@ class NativeUpdater { return ErrorMaterialAlert( appName: _appName, description: - 'This version of $_appName was not installed from Google Play Store.', + _errorText ?? 'This version of $_appName was not installed from Google Play Store.', + errorCloseButtonLabel:_errorCloseButtonLabel, + errorSubtitle: _errorSubtitle, ); }, ); diff --git a/lib/src/update_material_alert.dart b/lib/src/update_material_alert.dart index 4adef26..6182dbf 100644 --- a/lib/src/update_material_alert.dart +++ b/lib/src/update_material_alert.dart @@ -12,6 +12,7 @@ class UpdateMaterialAlert extends StatelessWidget { final String updateButtonLabel; final String closeButtonLabel; final String ignoreButtonLabel; + final String newVersionLabel; UpdateMaterialAlert({ required this.forceUpdate, @@ -22,6 +23,7 @@ class UpdateMaterialAlert extends StatelessWidget { required this.updateButtonLabel, required this.closeButtonLabel, required this.ignoreButtonLabel, + this.newVersionLabel = 'New version available' }); @override @@ -42,7 +44,8 @@ class UpdateMaterialAlert extends StatelessWidget { ); Widget updateButton = TextButton( - child: Text(updateButtonLabel.toUpperCase(), style: TextStyle(color: Colors.white)), + child: Text(updateButtonLabel.toUpperCase(), + style: TextStyle(color: Colors.white)), style: flatButtonStyle, onPressed: () => launch(playStoreUrl), ); @@ -55,7 +58,7 @@ class UpdateMaterialAlert extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - 'New version available', + newVersionLabel, style: TextStyle(color: Colors.grey), ), SizedBox(height: 24.0), diff --git a/pubspec.lock b/pubspec.lock index c0fb8cb..1d6f95d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.5.0" + version: "2.6.1" boolean_selector: dependency: transitive description: @@ -99,7 +99,7 @@ packages: name: package_info url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" path: dependency: transitive description: @@ -113,7 +113,7 @@ packages: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" sky_engine: dependency: transitive description: flutter @@ -125,7 +125,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: @@ -160,7 +160,7 @@ packages: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.19" + version: "0.3.0" typed_data: dependency: transitive description: @@ -174,42 +174,42 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "6.0.3" + version: "6.0.10" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.0.4" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.5" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" vector_math: dependency: transitive description: @@ -219,4 +219,4 @@ packages: version: "2.1.0" sdks: dart: ">=2.12.0 <3.0.0" - flutter: ">=1.22.0" + flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index b27c398..d7e0853 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: native_updater description: Flutter package for prompting users to update with a native dialog whether using the app store version or any version at the user's discretion. author: Ofload -version: 0.1.0 +version: 0.1.1 homepage: https://github.com/ofload/native_updater environment: @@ -12,9 +12,9 @@ dependencies: flutter: sdk: flutter # package_info will help us to find current installed version of application. - package_info: ^2.0.0 + package_info: ^2.0.2 # url_launcher will help us to trigger app store / play store url from our app. - url_launcher: ^6.0.3 + url_launcher: ^6.0.10 # Enables In App Updates on Android using the official Android APIs. in_app_update: ^2.0.0