diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ca1b68..a767a02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ # Changelog All notable changes to this project will be documented in this file. +## [1.3.0] - 2024-08-05 + +### Fixed +- [iOS] Potential issue with slow SDK initialization. +- [iOS] Potential issues with Simple Authentication requests. + +### Added +- We extended a `Synerise.changeClientApiKey(apiKey, config)` method and added new parameter (`config`) that allows adding some initialization parameters. +- We added new parameters to the push.click event: `clickSource`, `actionType`, `url` and `actionButtonTitle`. + +### Changed +- `requestValidationSalt` (Simple Auth) is cleared when `Synerise.changeClientApiKey(apiKey, config)` is invoked without suitable config. +- Update of native SDK's dependencies. +- Improvements to stability. + ## [1.2.0] - 2024-07-15 ### Added diff --git a/README.md b/README.md index a5a35fb..e4d7c4d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Synerise Flutter SDK (synerise-flutter-sdk) (1.2.0) +# Synerise Flutter SDK (synerise-flutter-sdk) (1.3.0) [![Platform](https://img.shields.io/badge/platform-iOS-orange.svg)](https://github.com/synerise/ios-sdk) [![Platform](https://img.shields.io/badge/platform-Android-orange.svg)](https://github.com/synerise/android-sdk) @@ -40,7 +40,7 @@ This will add a line like this to your package's pubspec.yaml (and run an implic ``` dependencies: - synerise_flutter_sdk: ^1.0.2 + synerise_flutter_sdk: ^1.3.0 ``` Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more. diff --git a/android/build.gradle b/android/build.gradle index b3e8085..c5d1dba 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -43,5 +43,5 @@ repositories { } dependencies { - implementation 'com.synerise.sdk:synerise-mobile-sdk:5.19.0' + implementation 'com.synerise.sdk:synerise-mobile-sdk:5.20.0' } \ No newline at end of file diff --git a/android/src/main/java/com/synerise/synerise_flutter_sdk/modules/SyneriseInitializer.java b/android/src/main/java/com/synerise/synerise_flutter_sdk/modules/SyneriseInitializer.java index 167defd..a27461b 100644 --- a/android/src/main/java/com/synerise/synerise_flutter_sdk/modules/SyneriseInitializer.java +++ b/android/src/main/java/com/synerise/synerise_flutter_sdk/modules/SyneriseInitializer.java @@ -7,8 +7,10 @@ import android.util.Log; import com.synerise.sdk.client.Client; +import com.synerise.sdk.client.model.client.Agreements; import com.synerise.sdk.core.Synerise; import com.synerise.sdk.core.types.enums.HostApplicationType; +import com.synerise.sdk.core.types.model.InitializationConfig; import com.synerise.synerise_flutter_sdk.SyneriseConnector; import com.synerise.synerise_flutter_sdk.SyneriseModule; @@ -18,9 +20,10 @@ import io.flutter.plugin.common.MethodChannel; public class SyneriseInitializer implements SyneriseModule { - private static String sdkPluginVersion = "1.2.0"; + private static String sdkPluginVersion = "1.3.0"; private static SyneriseInitializer instance; protected static volatile boolean isInitialized = false; + public SyneriseInitializer() { } @@ -63,7 +66,7 @@ public void initSynerise(Application app, MethodCall call, MethodChannel.Result public void changeApiKey(MethodCall call, MethodChannel.Result result) { Map data = (Map) call.arguments; String apiKey = null; - + InitializationConfig initializationConfig = null; if (data != null && data.containsKey("apiKey")) { apiKey = (String) data.get("apiKey"); } else { @@ -71,8 +74,12 @@ public void changeApiKey(MethodCall call, MethodChannel.Result result) { return; } - Client.changeApiKey(apiKey); - SyneriseModule.executeSuccessResult(true,result); + if (data != null && data.containsKey("config")) { + initializationConfig = configMapper((Map) data.get("config")); + } + + Client.changeApiKey(apiKey, initializationConfig); + SyneriseModule.executeSuccessResult(true, result); } private static void prepareDefaultSettings() { @@ -85,4 +92,16 @@ public static SyneriseInitializer getInstance() { } return instance; } + + private static InitializationConfig configMapper(Map map) { + if (map != null) { + InitializationConfig initializationConfig = new InitializationConfig(); + if (map.containsKey("requestValidationSalt") && map.get("requestValidationSalt") != null) { + initializationConfig.setSalt((String) map.get("requestValidationSalt")); + } + return initializationConfig; + } else { + return null; + } + } } \ No newline at end of file diff --git a/example/ios/Podfile b/example/ios/Podfile index fc7f8f8..c961a20 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -36,19 +36,19 @@ end target 'SyneriseNotificationServiceExtension' do - pod 'SyneriseSDK', '4.18.2' + pod 'SyneriseSDK', '4.19.1' end target 'SyneriseSingleMediaNotificationContentExtension' do - pod 'SyneriseSDK', '4.18.2' + pod 'SyneriseSDK', '4.19.1' end target 'SyneriseCarouselNotificationContentExtension' do - pod 'SyneriseSDK', '4.18.2' + pod 'SyneriseSDK', '4.19.1' end diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 260ed15..1beb317 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -117,10 +117,10 @@ PODS: - nanopb/decode (2.30909.1) - nanopb/encode (2.30909.1) - PromisesObjC (2.4.0) - - synerise_flutter_sdk (1.0.2): + - synerise_flutter_sdk (1.3.0): - Flutter - - SyneriseSDK (= 4.18.2) - - SyneriseSDK (4.18.2) + - SyneriseSDK (= 4.19.1) + - SyneriseSDK (4.19.1) DEPENDENCIES: - firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) @@ -128,7 +128,7 @@ DEPENDENCIES: - firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`) - Flutter (from `Flutter`) - synerise_flutter_sdk (from `.symlinks/plugins/synerise_flutter_sdk/ios`) - - SyneriseSDK (= 4.18.2) + - SyneriseSDK (= 4.19.1) SPEC REPOS: trunk: @@ -173,9 +173,9 @@ SPEC CHECKSUMS: GoogleUtilities: d053d902a8edaa9904e1bd00c37535385b8ed152 nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - synerise_flutter_sdk: a23402bdae88979d8899a4f49cda1b42b2bb06d1 - SyneriseSDK: b688556cf12498cc94459ca90ea002fa3b21b401 + synerise_flutter_sdk: 306fc2419e8bf5b790c360e0c0539801bff4af3d + SyneriseSDK: 3f22378a01be8236f9c3941e48208445b7b11eac -PODFILE CHECKSUM: cb21b30515252236c092dd55ff32693742254343 +PODFILE CHECKSUM: c5a60b1751cae32094dbccc28a827d83bdccd32f COCOAPODS: 1.13.0 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 1c25dc4..874b937 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,18 +7,16 @@ objects = { /* Begin PBXBuildFile section */ - 0ED257B2426E8591C420FEB1 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6EC938BF3E49F8F981508831 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 1EC461730EE25FF6FC1E226A /* Pods_SyneriseSingleMediaNotificationContentExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C914D801716572ADB0ED9D5C /* Pods_SyneriseSingleMediaNotificationContentExtension.framework */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 68A23A563740ECFA8C8B9C7C /* Pods_SyneriseCarouselNotificationContentExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D0D73BCEC9DACEB608B7576 /* Pods_SyneriseCarouselNotificationContentExtension.framework */; }; 8CA4C72129A7667600744EB7 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8CA4C72029A7667500744EB7 /* GoogleService-Info.plist */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 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 */; }; - AC34501DB0190AE8D5FF5F8E /* Pods_SyneriseNotificationServiceExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85658F937C97C82132EED797 /* Pods_SyneriseNotificationServiceExtension.framework */; }; + 9D12EB2C722F2FD2DD9C4936 /* Pods_SyneriseCarouselNotificationContentExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0A1AD4F8C2AC1284B230287 /* Pods_SyneriseCarouselNotificationContentExtension.framework */; }; + AB223C706551AA1C6BC624A3 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81D8E5CF2F648480A925DA54 /* Pods_Runner.framework */; }; C1921F562A4D8C480010BC77 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1921F552A4D8C480010BC77 /* NotificationService.swift */; }; C1921F5A2A4D8C480010BC77 /* SyneriseNotificationServiceExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C1921F532A4D8C480010BC77 /* SyneriseNotificationServiceExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; C1921F662A4D8C720010BC77 /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1921F652A4D8C710010BC77 /* UserNotifications.framework */; }; @@ -29,6 +27,8 @@ C1921F7D2A4D8C840010BC77 /* UserNotificationsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1921F672A4D8C720010BC77 /* UserNotificationsUI.framework */; }; C1921F802A4D8C840010BC77 /* NotificationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1921F7F2A4D8C840010BC77 /* NotificationViewController.swift */; }; C1921F872A4D8C840010BC77 /* SyneriseCarouselNotificationContentExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C1921F7B2A4D8C840010BC77 /* SyneriseCarouselNotificationContentExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + F530BE618AD9C5923B81A539 /* Pods_SyneriseSingleMediaNotificationContentExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2FC89C660DF703722E4B1A94 /* Pods_SyneriseSingleMediaNotificationContentExtension.framework */; }; + F65270120A96A6B3FC1BDC28 /* Pods_SyneriseNotificationServiceExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3EF234B69D7954733A89F401 /* Pods_SyneriseNotificationServiceExtension.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -84,20 +84,18 @@ /* Begin PBXFileReference section */ 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 = ""; }; - 14BBC1C0E5A9C7DF7126CB35 /* 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 = ""; }; - 212F87F4E6FF426BF2DD6DD3 /* Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig"; path = "Target Support Files/Pods-SyneriseCarouselNotificationContentExtension/Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig"; sourceTree = ""; }; - 2AA492BFFABC245C45D6C1A9 /* Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig"; path = "Target Support Files/Pods-SyneriseCarouselNotificationContentExtension/Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig"; sourceTree = ""; }; + 2FC89C660DF703722E4B1A94 /* Pods_SyneriseSingleMediaNotificationContentExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SyneriseSingleMediaNotificationContentExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 404AA2858711F0DC7F66019B /* Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig"; path = "Target Support Files/Pods-SyneriseCarouselNotificationContentExtension/Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig"; sourceTree = ""; }; - 44C990D731F6663B2DA97C66 /* 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 = ""; }; - 68FF4FD3DE19E091E80131E0 /* Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig"; path = "Target Support Files/Pods-SyneriseSingleMediaNotificationContentExtension/Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig"; sourceTree = ""; }; - 69D0B8AB674C2570263C5CF4 /* Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig"; path = "Target Support Files/Pods-SyneriseSingleMediaNotificationContentExtension/Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig"; sourceTree = ""; }; - 6EC938BF3E49F8F981508831 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3EF234B69D7954733A89F401 /* Pods_SyneriseNotificationServiceExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SyneriseNotificationServiceExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 441D097920B7360CFEB4519A /* Pods-SyneriseNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseNotificationServiceExtension.release.xcconfig"; path = "Target Support Files/Pods-SyneriseNotificationServiceExtension/Pods-SyneriseNotificationServiceExtension.release.xcconfig"; sourceTree = ""; }; + 693EC982435869E92E546BE9 /* Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig"; path = "Target Support Files/Pods-SyneriseSingleMediaNotificationContentExtension/Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig"; sourceTree = ""; }; + 6DBF4227A1F9FA10C4D88819 /* 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 = ""; }; + 72C626BCB85B888490F64A2F /* Pods-SyneriseNotificationServiceExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseNotificationServiceExtension.debug.xcconfig"; path = "Target Support Files/Pods-SyneriseNotificationServiceExtension/Pods-SyneriseNotificationServiceExtension.debug.xcconfig"; 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 = ""; }; - 7D0D73BCEC9DACEB608B7576 /* Pods_SyneriseCarouselNotificationContentExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SyneriseCarouselNotificationContentExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 85658F937C97C82132EED797 /* Pods_SyneriseNotificationServiceExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SyneriseNotificationServiceExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7F4622791A866BF9AC190102 /* Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig"; path = "Target Support Files/Pods-SyneriseCarouselNotificationContentExtension/Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig"; sourceTree = ""; }; + 81D8E5CF2F648480A925DA54 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8CA4C72029A7667500744EB7 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 8CA4C72229A767CA00744EB7 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; @@ -108,7 +106,8 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - AE4BECF8658EE9EFE78FB306 /* Pods-SyneriseNotificationServiceExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseNotificationServiceExtension.profile.xcconfig"; path = "Target Support Files/Pods-SyneriseNotificationServiceExtension/Pods-SyneriseNotificationServiceExtension.profile.xcconfig"; sourceTree = ""; }; + A2DCA8B204257A1DBECE3965 /* Pods-SyneriseNotificationServiceExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseNotificationServiceExtension.profile.xcconfig"; path = "Target Support Files/Pods-SyneriseNotificationServiceExtension/Pods-SyneriseNotificationServiceExtension.profile.xcconfig"; sourceTree = ""; }; + A6AAB361B8A7372D1178ABC2 /* 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 = ""; }; C1921F532A4D8C480010BC77 /* SyneriseNotificationServiceExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = SyneriseNotificationServiceExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; C1921F552A4D8C480010BC77 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; C1921F572A4D8C480010BC77 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -123,11 +122,12 @@ C1921F8C2A4D8E120010BC77 /* SyneriseNotificationServiceExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SyneriseNotificationServiceExtension.entitlements; sourceTree = ""; }; C1921F8D2A4D8E1A0010BC77 /* SyneriseSingleMediaNotificationContentExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SyneriseSingleMediaNotificationContentExtension.entitlements; sourceTree = ""; }; C1921F8E2A4D8E220010BC77 /* SyneriseCarouselNotificationContentExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SyneriseCarouselNotificationContentExtension.entitlements; sourceTree = ""; }; - C914D801716572ADB0ED9D5C /* Pods_SyneriseSingleMediaNotificationContentExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SyneriseSingleMediaNotificationContentExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D05EABE4F60BA7FA880A9DEA /* 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 = ""; }; - DE7E989DC6B65489002314E5 /* Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig"; path = "Target Support Files/Pods-SyneriseSingleMediaNotificationContentExtension/Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig"; sourceTree = ""; }; - E369F952CE4CC697CE1872DF /* Pods-SyneriseNotificationServiceExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseNotificationServiceExtension.debug.xcconfig"; path = "Target Support Files/Pods-SyneriseNotificationServiceExtension/Pods-SyneriseNotificationServiceExtension.debug.xcconfig"; sourceTree = ""; }; - FF83C27C269E171427F14565 /* Pods-SyneriseNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseNotificationServiceExtension.release.xcconfig"; path = "Target Support Files/Pods-SyneriseNotificationServiceExtension/Pods-SyneriseNotificationServiceExtension.release.xcconfig"; sourceTree = ""; }; + D18522383186C2BC7D442CF6 /* Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig"; path = "Target Support Files/Pods-SyneriseCarouselNotificationContentExtension/Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig"; sourceTree = ""; }; + D7F72665E4241E2C3125F13B /* 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 = ""; }; + DE7E3A5535F6613BE72F4087 /* Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig"; path = "Target Support Files/Pods-SyneriseSingleMediaNotificationContentExtension/Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig"; sourceTree = ""; }; + E75C1BD432175BE82E06F7AB /* Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig"; path = "Target Support Files/Pods-SyneriseSingleMediaNotificationContentExtension/Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig"; sourceTree = ""; }; + EBB6FFA029E49787A0DD4FB7 /* Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig"; path = "Target Support Files/Pods-SyneriseCarouselNotificationContentExtension/Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig"; sourceTree = ""; }; + F0A1AD4F8C2AC1284B230287 /* Pods_SyneriseCarouselNotificationContentExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SyneriseCarouselNotificationContentExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -135,7 +135,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0ED257B2426E8591C420FEB1 /* Pods_Runner.framework in Frameworks */, + AB223C706551AA1C6BC624A3 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -143,7 +143,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AC34501DB0190AE8D5FF5F8E /* Pods_SyneriseNotificationServiceExtension.framework in Frameworks */, + F65270120A96A6B3FC1BDC28 /* Pods_SyneriseNotificationServiceExtension.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -153,7 +153,7 @@ files = ( C1921F682A4D8C720010BC77 /* UserNotificationsUI.framework in Frameworks */, C1921F662A4D8C720010BC77 /* UserNotifications.framework in Frameworks */, - 1EC461730EE25FF6FC1E226A /* Pods_SyneriseSingleMediaNotificationContentExtension.framework in Frameworks */, + F530BE618AD9C5923B81A539 /* Pods_SyneriseSingleMediaNotificationContentExtension.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -163,7 +163,7 @@ files = ( C1921F7D2A4D8C840010BC77 /* UserNotificationsUI.framework in Frameworks */, C1921F7C2A4D8C840010BC77 /* UserNotifications.framework in Frameworks */, - 68A23A563740ECFA8C8B9C7C /* Pods_SyneriseCarouselNotificationContentExtension.framework in Frameworks */, + 9D12EB2C722F2FD2DD9C4936 /* Pods_SyneriseCarouselNotificationContentExtension.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -173,18 +173,18 @@ 4D9C109DDA251F75A03AF6AD /* Pods */ = { isa = PBXGroup; children = ( - D05EABE4F60BA7FA880A9DEA /* Pods-Runner.debug.xcconfig */, - 44C990D731F6663B2DA97C66 /* Pods-Runner.release.xcconfig */, - 14BBC1C0E5A9C7DF7126CB35 /* Pods-Runner.profile.xcconfig */, - 212F87F4E6FF426BF2DD6DD3 /* Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig */, - 404AA2858711F0DC7F66019B /* Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig */, - 2AA492BFFABC245C45D6C1A9 /* Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig */, - E369F952CE4CC697CE1872DF /* Pods-SyneriseNotificationServiceExtension.debug.xcconfig */, - FF83C27C269E171427F14565 /* Pods-SyneriseNotificationServiceExtension.release.xcconfig */, - AE4BECF8658EE9EFE78FB306 /* Pods-SyneriseNotificationServiceExtension.profile.xcconfig */, - DE7E989DC6B65489002314E5 /* Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig */, - 69D0B8AB674C2570263C5CF4 /* Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig */, - 68FF4FD3DE19E091E80131E0 /* Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig */, + D7F72665E4241E2C3125F13B /* Pods-Runner.debug.xcconfig */, + A6AAB361B8A7372D1178ABC2 /* Pods-Runner.release.xcconfig */, + 6DBF4227A1F9FA10C4D88819 /* Pods-Runner.profile.xcconfig */, + 7F4622791A866BF9AC190102 /* Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig */, + EBB6FFA029E49787A0DD4FB7 /* Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig */, + D18522383186C2BC7D442CF6 /* Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig */, + 72C626BCB85B888490F64A2F /* Pods-SyneriseNotificationServiceExtension.debug.xcconfig */, + 441D097920B7360CFEB4519A /* Pods-SyneriseNotificationServiceExtension.release.xcconfig */, + A2DCA8B204257A1DBECE3965 /* Pods-SyneriseNotificationServiceExtension.profile.xcconfig */, + E75C1BD432175BE82E06F7AB /* Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig */, + DE7E3A5535F6613BE72F4087 /* Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig */, + 693EC982435869E92E546BE9 /* Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -286,10 +286,10 @@ children = ( C1921F652A4D8C710010BC77 /* UserNotifications.framework */, C1921F672A4D8C720010BC77 /* UserNotificationsUI.framework */, - 6EC938BF3E49F8F981508831 /* Pods_Runner.framework */, - 7D0D73BCEC9DACEB608B7576 /* Pods_SyneriseCarouselNotificationContentExtension.framework */, - 85658F937C97C82132EED797 /* Pods_SyneriseNotificationServiceExtension.framework */, - C914D801716572ADB0ED9D5C /* Pods_SyneriseSingleMediaNotificationContentExtension.framework */, + 81D8E5CF2F648480A925DA54 /* Pods_Runner.framework */, + F0A1AD4F8C2AC1284B230287 /* Pods_SyneriseCarouselNotificationContentExtension.framework */, + 3EF234B69D7954733A89F401 /* Pods_SyneriseNotificationServiceExtension.framework */, + 2FC89C660DF703722E4B1A94 /* Pods_SyneriseSingleMediaNotificationContentExtension.framework */, ); name = Frameworks; sourceTree = ""; @@ -301,7 +301,7 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - BE2119793EDBEA688DF0B304 /* [CP] Check Pods Manifest.lock */, + EA799C1C9188460AD0DFA196 /* [CP] Check Pods Manifest.lock */, 9705A1C41CF9048500538489 /* Embed Frameworks */, C1921F5B2A4D8C480010BC77 /* Embed Foundation Extensions */, 9740EEB61CF901F6004384FC /* Run Script */, @@ -309,7 +309,7 @@ 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 262891F47E36A82E30C781FC /* [CP] Embed Pods Frameworks */, + F7FE098B4AED8D03FCE6CDAE /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -327,7 +327,7 @@ isa = PBXNativeTarget; buildConfigurationList = C1921F5F2A4D8C480010BC77 /* Build configuration list for PBXNativeTarget "SyneriseNotificationServiceExtension" */; buildPhases = ( - 61B9FF12227E6B0DBFEE9850 /* [CP] Check Pods Manifest.lock */, + 94DAC65338DB0BCF5BE16F10 /* [CP] Check Pods Manifest.lock */, C1921F4F2A4D8C480010BC77 /* Sources */, C1921F502A4D8C480010BC77 /* Frameworks */, C1921F512A4D8C480010BC77 /* Resources */, @@ -345,7 +345,7 @@ isa = PBXNativeTarget; buildConfigurationList = C1921F732A4D8C720010BC77 /* Build configuration list for PBXNativeTarget "SyneriseSingleMediaNotificationContentExtension" */; buildPhases = ( - 5AAB631B96ED7E46274E00D9 /* [CP] Check Pods Manifest.lock */, + 7DDDA2E464F88D7B20997183 /* [CP] Check Pods Manifest.lock */, C1921F602A4D8C710010BC77 /* Sources */, C1921F612A4D8C710010BC77 /* Frameworks */, C1921F622A4D8C710010BC77 /* Resources */, @@ -363,7 +363,7 @@ isa = PBXNativeTarget; buildConfigurationList = C1921F882A4D8C850010BC77 /* Build configuration list for PBXNativeTarget "SyneriseCarouselNotificationContentExtension" */; buildPhases = ( - 003E6EE6AAA154B2786A8352 /* [CP] Check Pods Manifest.lock */, + 60DCAADF79608F2A2BE1473E /* [CP] Check Pods Manifest.lock */, C1921F772A4D8C840010BC77 /* Sources */, C1921F782A4D8C840010BC77 /* Frameworks */, C1921F792A4D8C840010BC77 /* Resources */, @@ -459,62 +459,45 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 003E6EE6AAA154B2786A8352 /* [CP] Check Pods Manifest.lock */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); + name = "Thin Binary"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-SyneriseCarouselNotificationContentExtension-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; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; }; - 262891F47E36A82E30C781FC /* [CP] Embed Pods Frameworks */ = { + 60DCAADF79608F2A2BE1473E /* [CP] Check Pods Manifest.lock */ = { 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 */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( ); inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Thin Binary"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-SyneriseCarouselNotificationContentExtension-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; + 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; }; - 5AAB631B96ED7E46274E00D9 /* [CP] Check Pods Manifest.lock */ = { + 7DDDA2E464F88D7B20997183 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -536,7 +519,7 @@ 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; }; - 61B9FF12227E6B0DBFEE9850 /* [CP] Check Pods Manifest.lock */ = { + 94DAC65338DB0BCF5BE16F10 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -573,7 +556,7 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - BE2119793EDBEA688DF0B304 /* [CP] Check Pods Manifest.lock */ = { + EA799C1C9188460AD0DFA196 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -595,6 +578,23 @@ 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; }; + F7FE098B4AED8D03FCE6CDAE /* [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 */ @@ -731,7 +731,7 @@ CODE_SIGN_ENTITLEMENTS = Runner.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 9; DEVELOPMENT_TEAM = 34N2Z22TKH; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -739,7 +739,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.0; + MARKETING_VERSION = 1.3.0; PRODUCT_BUNDLE_IDENTIFIER = "com.synerise.sdk.sample-flutter"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -861,7 +861,7 @@ CODE_SIGN_ENTITLEMENTS = Runner.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 9; DEVELOPMENT_TEAM = 34N2Z22TKH; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -869,7 +869,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.0; + MARKETING_VERSION = 1.3.0; PRODUCT_BUNDLE_IDENTIFIER = "com.synerise.sdk.sample-flutter"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -886,7 +886,7 @@ CODE_SIGN_ENTITLEMENTS = Runner.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 4; + CURRENT_PROJECT_VERSION = 9; DEVELOPMENT_TEAM = 34N2Z22TKH; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -894,7 +894,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.0; + MARKETING_VERSION = 1.3.0; PRODUCT_BUNDLE_IDENTIFIER = "com.synerise.sdk.sample-flutter"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -904,7 +904,7 @@ }; C1921F5C2A4D8C480010BC77 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E369F952CE4CC697CE1872DF /* Pods-SyneriseNotificationServiceExtension.debug.xcconfig */; + baseConfigurationReference = 72C626BCB85B888490F64A2F /* Pods-SyneriseNotificationServiceExtension.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -948,7 +948,7 @@ }; C1921F5D2A4D8C480010BC77 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FF83C27C269E171427F14565 /* Pods-SyneriseNotificationServiceExtension.release.xcconfig */; + baseConfigurationReference = 441D097920B7360CFEB4519A /* Pods-SyneriseNotificationServiceExtension.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -991,7 +991,7 @@ }; C1921F5E2A4D8C480010BC77 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AE4BECF8658EE9EFE78FB306 /* Pods-SyneriseNotificationServiceExtension.profile.xcconfig */; + baseConfigurationReference = A2DCA8B204257A1DBECE3965 /* Pods-SyneriseNotificationServiceExtension.profile.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -1034,7 +1034,7 @@ }; C1921F742A4D8C720010BC77 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DE7E989DC6B65489002314E5 /* Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig */; + baseConfigurationReference = E75C1BD432175BE82E06F7AB /* Pods-SyneriseSingleMediaNotificationContentExtension.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -1078,7 +1078,7 @@ }; C1921F752A4D8C720010BC77 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 69D0B8AB674C2570263C5CF4 /* Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig */; + baseConfigurationReference = DE7E3A5535F6613BE72F4087 /* Pods-SyneriseSingleMediaNotificationContentExtension.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -1121,7 +1121,7 @@ }; C1921F762A4D8C720010BC77 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 68FF4FD3DE19E091E80131E0 /* Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig */; + baseConfigurationReference = 693EC982435869E92E546BE9 /* Pods-SyneriseSingleMediaNotificationContentExtension.profile.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -1164,7 +1164,7 @@ }; C1921F892A4D8C850010BC77 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 212F87F4E6FF426BF2DD6DD3 /* Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig */; + baseConfigurationReference = 7F4622791A866BF9AC190102 /* Pods-SyneriseCarouselNotificationContentExtension.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -1208,7 +1208,7 @@ }; C1921F8A2A4D8C850010BC77 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 404AA2858711F0DC7F66019B /* Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig */; + baseConfigurationReference = EBB6FFA029E49787A0DD4FB7 /* Pods-SyneriseCarouselNotificationContentExtension.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -1251,7 +1251,7 @@ }; C1921F8B2A4D8C850010BC77 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2AA492BFFABC245C45D6C1A9 /* Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig */; + baseConfigurationReference = D18522383186C2BC7D442CF6 /* Pods-SyneriseCarouselNotificationContentExtension.profile.xcconfig */; buildSettings = { CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; diff --git a/example/ios/Runner/AppDelegate.m b/example/ios/Runner/AppDelegate.m index 9543b99..05d0815 100644 --- a/example/ios/Runner/AppDelegate.m +++ b/example/ios/Runner/AppDelegate.m @@ -5,18 +5,29 @@ @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - UNNotificationCategory *singleMediaCategory = [UNNotificationCategory categoryWithIdentifier:SNRSingleMediaContentExtensionViewControllerCategoryIdentifier actions:@[] intentIdentifiers:@[] options:0]; - - UNNotificationAction *carouselPreviousAction = [UNNotificationAction actionWithIdentifier:SNRCarouselContentExtensionViewControllerPreviousItemIdentifier title:@"Previous" options:0]; - - UNNotificationAction *carouselGoAction = [UNNotificationAction actionWithIdentifier:SNRCarouselContentExtensionViewControllerChooseItemIdentifier title:@"Go" options:0]; - - UNNotificationAction *carouselNextAction = [UNNotificationAction actionWithIdentifier:SNRCarouselContentExtensionViewControllerNextItemIdentifier title:@"Next" options:0]; - - UNNotificationCategory *carouselCategory = [UNNotificationCategory categoryWithIdentifier:SNRCarouselContentExtensionViewControllerCategoryIdentifier actions:@[carouselPreviousAction, carouselGoAction, carouselNextAction] intentIdentifiers:@[] options:0]; - - [[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:[NSSet setWithObjects:singleMediaCategory, carouselCategory, nil]]; - + [[UNUserNotificationCenter currentNotificationCenter] getNotificationCategoriesWithCompletionHandler:^(NSSet *categories) { + NSMutableArray *categoryIdentifiers = [NSMutableArray arrayWithCapacity:categories.count]; + for (UNNotificationCategory *category in categories) { + [categoryIdentifiers addObject:category.identifier]; + } + + NSMutableSet *mutableCategories = [categories mutableCopy]; + + if ([categoryIdentifiers containsObject:SNRSingleMediaContentExtensionViewControllerCategoryIdentifier] == NO) { + UNNotificationCategory *singleMediaCategory = [UNNotificationCategory categoryWithIdentifier:SNRSingleMediaContentExtensionViewControllerCategoryIdentifier actions:@[] intentIdentifiers:@[] options:0]; + [mutableCategories addObject:singleMediaCategory]; + } + + if ([categoryIdentifiers containsObject:SNRCarouselContentExtensionViewControllerCategoryIdentifier] == NO) { + UNNotificationAction *carouselPreviousAction = [UNNotificationAction actionWithIdentifier:SNRCarouselContentExtensionViewControllerPreviousItemIdentifier title:@"Previous" options:0]; + UNNotificationAction *carouselGoAction = [UNNotificationAction actionWithIdentifier:SNRCarouselContentExtensionViewControllerChooseItemIdentifier title:@"Go" options:0]; + UNNotificationAction *carouselNextAction = [UNNotificationAction actionWithIdentifier:SNRCarouselContentExtensionViewControllerNextItemIdentifier title:@"Next" options:0]; + UNNotificationCategory *carouselCategory = [UNNotificationCategory categoryWithIdentifier:SNRCarouselContentExtensionViewControllerCategoryIdentifier actions:@[carouselPreviousAction, carouselGoAction, carouselNextAction] intentIdentifiers:@[] options:0]; + [mutableCategories addObject:carouselCategory]; + } + + [[UNUserNotificationCenter currentNotificationCenter] setNotificationCategories:mutableCategories]; + }]; [GeneratedPluginRegistrant registerWithRegistry:self]; // Override point for customization after application launch. diff --git a/example/lib/main.dart b/example/lib/main.dart index facb0cf..5b45362 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -243,6 +243,13 @@ class _InitialViewState extends State { ); }, ), + ElevatedButton( + child: const Text('Custom Method Test'), + onPressed: () { + final config = InitializationConfig(requestValidationSalt: "qlksldii"); + Synerise.changeApiKey("6f5b279f-b148-a663-ea89-dab880e1a7ef"); + }, + ), ]))))); } } diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 69da755..d17e0cb 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,6 +1,6 @@ name: synerise_flutter_sdk_example description: Demonstrates how to use the synerise_flutter_sdk plugin. -version: 1.2.0 +version: 1.3.0 # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. diff --git a/ios/Classes/Modules/FSynerise.m b/ios/Classes/Modules/FSynerise.m index 58cafb4..6192ba2 100644 --- a/ios/Classes/Modules/FSynerise.m +++ b/ios/Classes/Modules/FSynerise.m @@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN -static NSString * const sdkPluginVersion = @"1.2.0"; +static NSString * const sdkPluginVersion = @"1.3.0"; @interface FSynerise () @@ -80,7 +80,17 @@ - (void)changeApiKey:(FlutterMethodCall *)call result:(FlutterResult)result { result([self defaultFlutterError]); return; } - [SNRSynerise changeClientApiKey:apiKey]; + + SNRInitializationConfig *initializationConfig = [SNRInitializationConfig new]; + NSDictionary *initializationConfigDictionary = [dictionary getDictionaryForKey:@"config"]; + if (initializationConfigDictionary != nil) { + NSString *requestValidationSalt = [initializationConfigDictionary getStringForKey:@"requestValidationSalt"]; + if (requestValidationSalt != nil) { + initializationConfig.requestValidationSalt = requestValidationSalt; + } + } + + [SNRSynerise changeClientApiKey:apiKey config:initializationConfig]; result([NSNumber numberWithBool:YES]); } diff --git a/ios/synerise_flutter_sdk.podspec b/ios/synerise_flutter_sdk.podspec index 7a2121c..f235da8 100644 --- a/ios/synerise_flutter_sdk.podspec +++ b/ios/synerise_flutter_sdk.podspec @@ -3,11 +3,11 @@ # Run `pod lib lint synerise_flutter_sdk.podspec` to validate before publishing. # -SYNERISE_SDK_FRAMEWORK_VERSION = '4.18.2' +SYNERISE_SDK_FRAMEWORK_VERSION = '4.19.1' Pod::Spec.new do |s| s.name = 'synerise_flutter_sdk' - s.version = '1.0.2' + s.version = '1.3.0' s.summary = 'Synerise SDK plugin for Flutter' s.description = 'Flutter plugin for Synerise SDK' s.homepage = 'http://synerise.com' diff --git a/lib/main/index.dart b/lib/main/index.dart index 7ff64b9..c15b2bb 100644 --- a/lib/main/index.dart +++ b/lib/main/index.dart @@ -5,6 +5,10 @@ export 'package:synerise_flutter_sdk/main/dependencies.dart'; // INITIALIZER export 'package:synerise_flutter_sdk/main/synerise_initializer.dart'; +export 'package:synerise_flutter_sdk/main/initialization_config.dart'; + +//BASE API QUERY +export 'package:synerise_flutter_sdk/model/base_api_query.dart'; // MODULES export 'package:synerise_flutter_sdk/modules/notifications/notifications_impl.dart'; @@ -97,7 +101,4 @@ export 'package:synerise_flutter_sdk/events/push/push_viewed_event.dart'; export 'package:synerise_flutter_sdk/events/recommendation/recommendation_click_event.dart'; export 'package:synerise_flutter_sdk/events/recommendation/recommendation_event.dart'; export 'package:synerise_flutter_sdk/events/recommendation/recommendation_seen_event.dart'; -export 'package:synerise_flutter_sdk/events/recommendation/recommendation_view_event.dart'; - -//BASE API QUERY -export 'package:synerise_flutter_sdk/model/base_api_query.dart'; \ No newline at end of file +export 'package:synerise_flutter_sdk/events/recommendation/recommendation_view_event.dart'; \ No newline at end of file diff --git a/lib/main/initialization_config.dart b/lib/main/initialization_config.dart new file mode 100644 index 0000000..bba528e --- /dev/null +++ b/lib/main/initialization_config.dart @@ -0,0 +1,18 @@ +/// The `InitializationConfig` class represents the initialization configuration with +/// required clientApiKey and optional requestValidationSalt. +class InitializationConfig { + String? requestValidationSalt; + + InitializationConfig({this.requestValidationSalt}); + + /// `InitializationConfig.fromMap(Map map)` is a constructor that takes a `Map` as an argument and + /// creates a new instance of `InitializationConfig` using the values from the `Map`. + InitializationConfig.fromMap(Map map) + : this( + requestValidationSalt: map['requestValidationSalt'] + ); + + Map asMap() => { + 'requestValidationSalt': requestValidationSalt + }; +} \ No newline at end of file diff --git a/lib/synerise.dart b/lib/synerise.dart index 4eda464..ba9d7a9 100644 --- a/lib/synerise.dart +++ b/lib/synerise.dart @@ -41,9 +41,12 @@ class Synerise { /// Args: /// apiKey (String): The `apiKey` parameter is a string that represents the new Profile API key that you /// want to set. - static Future changeApiKey(String apiKey) async { + static Future changeApiKey(String apiKey, [InitializationConfig? config]) async { await Dependencies.methodChannel - .invokeMethod('Synerise/changeApiKey', {"apiKey": apiKey}); + .invokeMethod('Synerise/changeApiKey', { + "apiKey": apiKey, + "config": config?.asMap() + }); } static void onReady(Function() ready) { diff --git a/pubspec.yaml b/pubspec.yaml index d8c28ba..9a4f3ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: synerise_flutter_sdk description: >- Flutter plugin for Synerise SDK. Most up-to-date documentation is available at Synerise Help Center. -version: 1.2.0 +version: 1.3.0 homepage: https://synerise.com documentation: https://help.synerise.com/developers/mobile-sdk/ repository: https://github.com/Synerise/synerise-flutter-sdk