diff --git a/CHANGELOG.md b/CHANGELOG.md index b1d547b..efbdab6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# 3.24.0-beta.2 +- Updates iOS sdk to 3.24.1 + +# 3.24.0-beta.1 +- Updates iOS sdk to 3.24.0 +- Adds `silentPush` initialization option to iOS + +# 3.23.4-beta.2 +- Changed iOS platform target to 12.0 + +# 3.23.4-beta.1 +- Updates iOS and Android sdk to 3.23.4 and 3.23.5, respectively # 3.23.4 - Updates iOS and Android sdk to 3.23.4 and 3.23.5, respectively diff --git a/README.md b/README.md index fe8eec9..076bb33 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,10 @@ Then, see the Flutter package documentation [here](https://radar.com/documentati See an example app in `example/`. +## iOS Installation + +For iOS projects using this plugin, if your iOS deployment target is below 15.0, you must add `use_frameworks!` to your `Podfile`: + ## Support Have questions? We're here to help! Email us at [support@radar.com](mailto:support@radar.com). diff --git a/android/build.gradle b/android/build.gradle index d464401..3a91de3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -31,7 +31,7 @@ android { minSdkVersion 16 targetSdkVersion 31 versionCode 1 - versionName '3.23.4' + versionName '3.24.0-beta.2' } lintOptions { disable 'InvalidPackage' diff --git a/android/src/main/java/io/radar/flutter/RadarFlutterPlugin.java b/android/src/main/java/io/radar/flutter/RadarFlutterPlugin.java index e72023d..457133b 100644 --- a/android/src/main/java/io/radar/flutter/RadarFlutterPlugin.java +++ b/android/src/main/java/io/radar/flutter/RadarFlutterPlugin.java @@ -307,7 +307,7 @@ private static void initialize(MethodCall call, Result result) { String publishableKey = call.argument("publishableKey"); SharedPreferences.Editor editor = mContext.getSharedPreferences("RadarSDK", Context.MODE_PRIVATE).edit(); editor.putString("x_platform_sdk_type", "Flutter"); - editor.putString("x_platform_sdk_version", "3.23.4"); + editor.putString("x_platform_sdk_version", "3.24.0-beta.2"); editor.apply(); Radar.initialize(mContext, publishableKey, null, Radar.RadarLocationServicesProvider.GOOGLE, false, null, null, mActivity); Radar.setReceiver(new RadarFlutterReceiver(channel)); diff --git a/example/.gitignore b/example/.gitignore index f3c2053..e2ac677 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -42,3 +42,6 @@ app.*.map.json # Exceptions to above rules. !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages + +.fvm/ +.fvmrc diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index d57061d..8c6e561 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 13.0 + 12.0 diff --git a/example/ios/Podfile b/example/ios/Podfile index 753f8be..c2e51a0 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -platform :ios, '15.6' +platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -28,8 +28,9 @@ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelpe flutter_ios_podfile_setup target 'Runner' do + use_frameworks! flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - pod 'RadarSDKMotion', '3.23.4' + pod 'RadarSDKMotion', '3.24.1' end post_install do |installer| diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 58b357c..173dafb 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -14,7 +14,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - E0F475EE7DA180B233B26F03 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 80832F7060CA121BF7C5159A /* libPods-Runner.a */; }; + E9202D87BABE3D21C4B8C9C4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BF6B8D2FABC5D8F1A9DD5EE /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -31,13 +31,13 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0BF6B8D2FABC5D8F1A9DD5EE /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 80832F7060CA121BF7C5159A /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 87C188BC246525AC987E390D /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -56,7 +56,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E0F475EE7DA180B233B26F03 /* libPods-Runner.a in Frameworks */, + E9202D87BABE3D21C4B8C9C4 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -66,7 +66,7 @@ 69B467C1459EE0FA7AD9EAAD /* Frameworks */ = { isa = PBXGroup; children = ( - 80832F7060CA121BF7C5159A /* libPods-Runner.a */, + 0BF6B8D2FABC5D8F1A9DD5EE /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -150,6 +150,7 @@ 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 717FBB0054865DEA34CA9827 /* [CP] Copy Pods Resources */, + BA45F2487E261BF5443C5B76 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -277,6 +278,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; + BA45F2487E261BF5443C5B76 /* [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; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -353,9 +371,10 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + STRIP_INSTALLED_PRODUCT = NO; SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -375,7 +394,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -437,10 +456,11 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + STRIP_INSTALLED_PRODUCT = NO; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; @@ -486,9 +506,10 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + STRIP_INSTALLED_PRODUCT = NO; SUPPORTED_PLATFORMS = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -508,7 +529,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -536,7 +557,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/example/lib/main.dart b/example/lib/main.dart index ac3c910..f630f1e 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -69,7 +69,7 @@ class _MyAppState extends State with WidgetsBindingObserver { } Future initRadar() async { - Radar.initialize('prj_test_pk_0000000000000000000000000000000000000000'); + Radar.initialize('prj_test_pk_0000000000000000000000000000000000000000', silentPush: true); Radar.setUserId('flutter'); Radar.setDescription('Flutter'); Radar.setMetadata({'foo': 'bar', 'bax': true, 'qux': 1}); diff --git a/ios/Classes/RadarFlutterPlugin.m b/ios/Classes/RadarFlutterPlugin.m index dd5e7a6..1a584b7 100644 --- a/ios/Classes/RadarFlutterPlugin.m +++ b/ios/Classes/RadarFlutterPlugin.m @@ -157,9 +157,12 @@ - (void)initialize:(FlutterMethodCall *)call withResult:(FlutterResult)result { NSDictionary *argsDict = call.arguments; NSString *publishableKey = argsDict[@"publishableKey"]; + BOOL silentPush = argsDict[@"silentPush"]; [[NSUserDefaults standardUserDefaults] setObject:@"Flutter" forKey:@"radar-xPlatformSDKType"]; - [[NSUserDefaults standardUserDefaults] setObject:@"3.23.4" forKey:@"radar-xPlatformSDKVersion"]; - [Radar initializeWithPublishableKey:publishableKey]; + [[NSUserDefaults standardUserDefaults] setObject:@"3.24.0-beta.2" forKey:@"radar-xPlatformSDKVersion"]; + RadarInitializeOptions *options = [[RadarInitializeOptions alloc] init]; + options.silentPush = silentPush; + [Radar initializeWithPublishableKey:publishableKey options:options]; result(nil); } diff --git a/ios/flutter_radar.podspec b/ios/flutter_radar.podspec index 9bb687a..9ef2e0d 100644 --- a/ios/flutter_radar.podspec +++ b/ios/flutter_radar.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'flutter_radar' - s.version = '3.23.4' + s.version = '3.24.0-beta.2' s.summary = 'Flutter package for Radar, the leading geofencing and location tracking platform' s.description = 'Flutter package for Radar, the leading geofencing and location tracking platform' s.homepage = 'http://example.com' @@ -10,8 +10,8 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'RadarSDK', '3.23.4' - s.platform = :ios, '15.6' + s.dependency 'RadarSDK', '3.24.1' + s.ios.deployment_target = '12.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported. diff --git a/ios/flutter_radar.podspec.template b/ios/flutter_radar.podspec.template index 6aa3fdf..5dd19e9 100644 --- a/ios/flutter_radar.podspec.template +++ b/ios/flutter_radar.podspec.template @@ -11,7 +11,8 @@ Pod::Spec.new do |s| s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' s.dependency 'RadarSDK', '{{ version }}' - s.platform = :ios, '15.6' + s.platform = :ios, '12.0' + s.ios.deployment_target = '12.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported. diff --git a/lib/flutter_radar.dart b/lib/flutter_radar.dart index 163646a..6ae9c4a 100644 --- a/lib/flutter_radar.dart +++ b/lib/flutter_radar.dart @@ -39,10 +39,11 @@ class Radar { static EventsCallback? foregroundEventsCallback; static TokenCallback? foregroundTokenCallback; - static Future initialize(String publishableKey) async { + static Future initialize(String publishableKey, {bool silentPush = false}) async { try { await _channel.invokeMethod('initialize', { 'publishableKey': publishableKey, + 'silentPush': silentPush, }); _channel.setMethodCallHandler(_handleMethodCall); } on PlatformException catch (e) { diff --git a/pubspec.yaml b/pubspec.yaml index d4f7b7f..60122bd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_radar description: Flutter package for Radar, the leading geofencing and location tracking platform -version: 3.23.4 +version: 3.24.0-beta.2 homepage: https://github.com/radarlabs/flutter-radar environment: