diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fede0b..3be0914 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 1.23.36 (18.11.2024) +* Updated native iOS SDK to fix an issue with opening notifications with action buttons + ## 1.23.35 (16.11.2024) * Some futures were resolved too early, this has been fixed. * Updated native iOS + Android SDKs diff --git a/android/build.gradle b/android/build.gradle index f30bd35..4831d2c 100755 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ group 'com.cleverpush.flutter' -version '1.23.35' +version '1.23.36' buildscript { repositories { diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index 9367d48..7c56964 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 12.0 diff --git a/example/ios/Flutter/Flutter.podspec b/example/ios/Flutter/Flutter.podspec index 29758b7..98e1633 100644 --- a/example/ios/Flutter/Flutter.podspec +++ b/example/ios/Flutter/Flutter.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.license = { :type => 'BSD' } s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } - s.ios.deployment_target = '11.0' + s.ios.deployment_target = '12.0' # Framework linking is handled by Flutter tooling, not CocoaPods. # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs. s.vendored_frameworks = 'path/to/nothing' diff --git a/example/ios/Podfile b/example/ios/Podfile index b9cb4af..25d5b3d 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -2,7 +2,7 @@ # source 'https://github.com/CocoaPods/Specs.git' # Uncomment this line to define a global platform for your project -platform :ios, '11.0' +platform :ios, '12.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index a449ab1..7d25197 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,7 +1,7 @@ PODS: - - CleverPush (1.30.4) - - cleverpush_flutter (1.23.16): - - CleverPush (= 1.30.4) + - CleverPush (1.31.19) + - cleverpush_flutter (1.23.36): + - CleverPush (= 1.31.19) - Flutter - Flutter (1.0.0) @@ -11,7 +11,7 @@ DEPENDENCIES: - Flutter (from `Flutter`) SPEC REPOS: - trunk: + https://github.com/CocoaPods/Specs.git: - CleverPush EXTERNAL SOURCES: @@ -21,10 +21,10 @@ EXTERNAL SOURCES: :path: Flutter SPEC CHECKSUMS: - CleverPush: 63cfd1b9e49850af2acc5647b9ac641dd4fbfff1 - cleverpush_flutter: 38e95abcc7a6edc63b994dbeabb45db9b4f639a9 - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + CleverPush: ef4c4034546a9d99f639df8793be5eeca9f9b3fc + cleverpush_flutter: bab9b1ba4e55667246fc591f0753207bbf793201 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 -PODFILE CHECKSUM: 94b15b543645465f0de57fcffaa649e0ce5860d8 +PODFILE CHECKSUM: 01be41a8c8a5032e06a3944c7867cff11715991f -COCOAPODS: 1.13.0 +COCOAPODS: 1.16.2 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index ad9961b..d42e6b9 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -217,11 +217,11 @@ 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, + 291CB2332982B39300F62F24 /* Embed Foundation Extensions */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 0173D6A6822EC0BA3C6CBC7D /* [CP] Embed Pods Frameworks */, 1E3B8961EC2B69E0443B1028 /* [CP] Copy Pods Resources */, - 291CB2332982B39300F62F24 /* Embed Foundation Extensions */, ); buildRules = ( ); @@ -239,7 +239,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 291CB2292982B39300F62F24 = { @@ -350,10 +350,12 @@ }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -506,7 +508,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -688,7 +690,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -802,7 +804,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -851,7 +853,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index fb2dffc..5e31d3d 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ UIViewControllerBasedStatusBarAppearance + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + diff --git a/example/lib/main.dart b/example/lib/main.dart index 9b7a132..d3a9689 100755 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -25,6 +25,9 @@ class _MyAppState extends State { CleverPush.shared.setShowNotificationsInForeground(false); CleverPush.shared.enableDevelopmentMode(); + // CleverPush Channel ID + await CleverPush.shared.init("CHANNEL_ID", true); + CleverPush.shared .setNotificationReceivedHandler((CPNotificationReceivedResult result) { this.setState(() { @@ -59,9 +62,6 @@ class _MyAppState extends State { CleverPush.shared.setBrandingColor("#ff0000"); - // CleverPush Channel ID - await CleverPush.shared.init("CHANNEL_ID", true); - CleverPush.shared.setChatUrlOpenedHandler((url) { Widget continueButton = TextButton( child: Text("Ok"), @@ -243,6 +243,17 @@ class _MyAppState extends State { child: SingleChildScrollView( child: new Table( children: [ + new TableRow(children: [ + new Container( + child: new Text(_debugLabelString), + alignment: Alignment.center, + ) + ]), + new TableRow(children: [ + Container( + height: 8.0, + ) + ]), new TableRow(children: [ new CleverPushButton( "Show Chat View", () { Navigator.pushNamed(context, '/chat'); @@ -331,17 +342,6 @@ class _MyAppState extends State { new CleverPushButton( "Pull Subscription Attribute Value", _pullSubscriptionAttributeValue, true) ]), - new TableRow(children: [ - Container( - height: 8.0, - ) - ]), - new TableRow(children: [ - new Container( - child: new Text(_debugLabelString), - alignment: Alignment.center, - ) - ]), ], ), ), diff --git a/ios/Classes/CleverPushPlugin.m b/ios/Classes/CleverPushPlugin.m index b76b8ce..678cbb2 100755 --- a/ios/Classes/CleverPushPlugin.m +++ b/ios/Classes/CleverPushPlugin.m @@ -33,6 +33,14 @@ + (void)registerWithRegistrar:(NSObject*)registrar { CPChatViewFlutterFactory* factory = [[CPChatViewFlutterFactory alloc] initWithMessenger:registrar.messenger]; [registrar registerViewFactory:factory withId:@"cleverpush-chat-view"]; + + [registrar addApplicationDelegate:CleverPushPlugin.sharedInstance]; +} + +- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { + CleverPushPlugin.sharedInstance.launchOptions = launchOptions; + + return YES; } - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { diff --git a/ios/Classes/UIApplication+CleverPushFlutterPlugin.m b/ios/Classes/UIApplication+CleverPushFlutterPlugin.m deleted file mode 100755 index 2711adf..0000000 --- a/ios/Classes/UIApplication+CleverPushFlutterPlugin.m +++ /dev/null @@ -1,57 +0,0 @@ -#import -#import -#import - -@interface CleverPushPlugin : NSObject - -+ (instancetype)sharedInstance; -@property (strong, nonatomic) NSDictionary *launchOptions; - -@end - -@implementation UIApplication(CleverPushFlutterPlugin) - -static void injectSelector(Class newClass, SEL newSel, Class addToClass, SEL makeLikeSel) { - Method newMeth = class_getInstanceMethod(newClass, newSel); - IMP imp = method_getImplementation(newMeth); - const char* methodTypeEncoding = method_getTypeEncoding(newMeth); - - BOOL successful = class_addMethod(addToClass, makeLikeSel, imp, methodTypeEncoding); - if (!successful) { - class_addMethod(addToClass, newSel, imp, methodTypeEncoding); - newMeth = class_getInstanceMethod(addToClass, newSel); - - Method orgMeth = class_getInstanceMethod(addToClass, makeLikeSel); - - method_exchangeImplementations(orgMeth, newMeth); - } -} - -+ (void)load { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - method_exchangeImplementations(class_getInstanceMethod(self, @selector(setDelegate:)), class_getInstanceMethod(self, @selector(setCleverPushFlutterDelegate:))); - }); -} - -- (void)setCleverPushFlutterDelegate:(id)delegate { - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - Class delegateClass = [delegate class]; - - injectSelector(self.class, @selector(cleverPushApplication:didFinishLaunchingWithOptions:), - delegateClass, @selector(application:didFinishLaunchingWithOptions:)); - [self setCleverPushFlutterDelegate:delegate]; - }); -} - -- (BOOL)cleverPushApplication:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { - CleverPushPlugin.sharedInstance.launchOptions = launchOptions; - - if ([self respondsToSelector:@selector(cleverPushApplication:didFinishLaunchingWithOptions:)]) { - return [self cleverPushApplication:application didFinishLaunchingWithOptions:launchOptions]; - } - return YES; -} - -@end diff --git a/ios/cleverpush_flutter.podspec b/ios/cleverpush_flutter.podspec index f763df7..c86fd50 100755 --- a/ios/cleverpush_flutter.podspec +++ b/ios/cleverpush_flutter.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'cleverpush_flutter' - s.version = '1.23.35' + s.version = '1.23.36' s.summary = 'CleverPush Flutter SDK' s.description = 'CleverPush' s.homepage = 'https://cleverpush.com' @@ -10,7 +10,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'CleverPush', '1.31.18' + s.dependency 'CleverPush', '1.31.19' s.static_framework = true s.ios.deployment_target = '8.0' end diff --git a/pubspec.yaml b/pubspec.yaml index 4e125bd..ce5327e 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: cleverpush_flutter description: CleverPush -version: 1.23.35 +version: 1.23.36 homepage: https://github.com/cleverpush/cleverpush-flutter-sdk flutter: