Skip to content

Commit 248c447

Browse files
authored
Merge pull request #344 from Countly/2540_release
2540 release
2 parents b0a5804 + 732452a commit 248c447

27 files changed

+353
-233
lines changed

CHANGELOG.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1-
## XX.XX.XX
2-
* Extended server configuration capabilities of the SDK.
3-
* Added a Content feature method "refreshContentZone" that does a manual refresh.
1+
## 25.4.0
2+
* ! Minor breaking change ! Removed Secure.ANDROID_ID on Android and UIDevice.currentDevice.identifierForVendor on iOS usages in device ID generation. The SDKs now exclusively uses random UUIDs for device ID generation.
3+
* ! Minor breaking change ! SDK now has Server Configuration feature and it is enabled by default. Changes made on SDK Manager > SDK Configuration on your server will affect SDK behavior directly.
4+
5+
* Added `refreshContentZone` method to Content interface for refreshing Content Zone requests.
6+
* Added `setSDKBehaviorSettings(String)` init config method for providing server configuration during first initialization.
7+
8+
* Mitigated an issue on Android that caused PN message data collision if two message with same ID was received.
9+
10+
* Updated underlying Android SDK version to 25.4.0
11+
* Updated underlying iOS SDK version to 25.4.0
12+
* Updated underlying Web SDK version to 25.4.0
413

514
## 25.1.1
615
* Removed Android v1 embedding support

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,6 @@ android {
3838
}
3939

4040
dependencies {
41-
implementation 'ly.count.android:sdk:25.1.1'
41+
implementation 'ly.count.android:sdk:25.4.0'
4242
implementation 'com.google.firebase:firebase-messaging:24.0.3'
4343
}

android/src/main/java/ly/count/dart/countly_flutter/CountlyFlutterPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
*/
6868
public class CountlyFlutterPlugin implements MethodCallHandler, FlutterPlugin, ActivityAware, DefaultLifecycleObserver {
6969
private static final String TAG = "CountlyFlutterPlugin";
70-
private final String COUNTLY_FLUTTER_SDK_VERSION_STRING = "25.1.1";
70+
private final String COUNTLY_FLUTTER_SDK_VERSION_STRING = "25.4.0";
7171
private final String COUNTLY_FLUTTER_SDK_NAME = "dart-flutterb-android";
7272
private final String COUNTLY_FLUTTER_SDK_NAME_NO_PUSH = "dart-flutterbnp-android";
7373

example/integration_test/utils.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ void testCommonRequestParams(Map<String, List<String>> requestObject) {
3232
expect(
3333
requestObject['sdk_name']?[0],
3434
"dart-flutterb-${kIsWeb ? 'web' : Platform.isIOS ? 'ios' : 'android'}");
35-
expect(requestObject['sdk_version']?[0], '25.1.1');
35+
expect(requestObject['sdk_version']?[0], '25.4.0');
3636
expect(
3737
requestObject['av']?[0],
3838
kIsWeb

ios/Classes/CountlyFlutterPlugin.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ @interface CountlyPersistency ()
2828

2929
CLYPushTestMode const CLYPushTestModeProduction = @"CLYPushTestModeProduction";
3030

31-
NSString *const kCountlyFlutterSDKVersion = @"25.1.1";
31+
NSString *const kCountlyFlutterSDKVersion = @"25.4.0";
3232
NSString *const kCountlyFlutterSDKName = @"dart-flutterb-ios";
3333
NSString *const kCountlyFlutterSDKNameNoPush = @"dart-flutterbnp-ios";
3434

ios/Classes/CountlyiOS/CHANGELOG.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
## XX.XX.XX
2-
* Deprecated the experimental configuration function enableServerConfiguration and it will do nothing. It is now enabled by default and can be controlled directly from the server.
1+
## 25.4.0
2+
* ! Minor breaking change ! Removed UIDevice.currentDevice.identifierForVendor usage in device id generation. The SDK now exclusively uses random UUIDs for device id generation.
3+
* ! Minor breaking change ! Server Configuration is now enabled by default. Changes made on SDK Manager > SDK Configuration on your server will affect SDK behavior directly.
34

5+
* Added a Content feature method "refreshContentZone" that does a manual refresh.
46
* Extended server configuration capabilities of the SDK.
7+
* Added a config parameter to provide server config in the initialization "sdkBehaviorSettings: NSString".
8+
9+
* Deprecated the experimental configuration function enableServerConfiguration and it will do nothing.
510

611
## 25.1.2
712
* Mitigated an issue where the safe area resolution was not correctly calculated for the content zone on certain iOS devices.

ios/Classes/CountlyiOS/Countly-PL.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'Countly-PL'
3-
s.version = '25.1.1'
3+
s.version = '25.4.0'
44
s.license = { :type => 'MIT', :file => 'LICENSE' }
55
s.summary = 'Countly is an innovative, real-time, open source mobile analytics platform.'
66
s.homepage = 'https://github.com/Countly/countly-sdk-ios'

ios/Classes/CountlyiOS/Countly.m

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ - (void)startWithConfig:(CountlyConfig *)config
9292

9393
config = [self checkAndFixInternalLimitsConfig:config];
9494

95-
[CountlyServerConfig.sharedInstance retrieveServerConfigFromStorage: config.serverConfiguration];
96-
95+
[CountlyServerConfig.sharedInstance retrieveServerConfigFromStorage:config.sdkBehaviorSettings];
96+
9797
CountlyCommon.sharedInstance.maxKeyLength = config.sdkInternalLimits.getMaxKeyLength;
9898
CountlyCommon.sharedInstance.maxValueLength = config.sdkInternalLimits.getMaxValueSize;
9999
CountlyCommon.sharedInstance.maxSegmentationValues = config.sdkInternalLimits.getMaxSegmentationValues;
@@ -167,8 +167,8 @@ - (void)startWithConfig:(CountlyConfig *)config
167167
CountlyDeviceInfo.sharedInstance.customMetrics = [customMetricsTruncated cly_limited:@"Custom metric"];
168168

169169
[Countly.user save];
170-
// If something added related to server config, make sure to check CountlyServerConfig.notifySdkConfigChange
171-
[CountlyServerConfig.sharedInstance fetchServerConfig: config];
170+
// If something added related to server config, make sure to check CountlyServerConfig.notifySdkConfigChange
171+
[CountlyServerConfig.sharedInstance fetchServerConfig:config];
172172

173173
#if (TARGET_OS_IOS)
174174
CountlyFeedbacksInternal.sharedInstance.message = config.starRatingMessage;
@@ -227,9 +227,9 @@ - (void)startWithConfig:(CountlyConfig *)config
227227
if ([config.features containsObject:CLYCrashReporting])
228228
{
229229
CountlyCrashReporter.sharedInstance.isEnabledOnInitialConfig = YES;
230-
231-
if (CountlyServerConfig.sharedInstance.crashReportingEnabled) {
232-
[CountlyCrashReporter.sharedInstance startCrashReporting];
230+
if (CountlyServerConfig.sharedInstance.crashReportingEnabled)
231+
{
232+
[CountlyCrashReporter.sharedInstance startCrashReporting];
233233
}
234234
}
235235

@@ -238,10 +238,10 @@ - (void)startWithConfig:(CountlyConfig *)config
238238
{
239239
// Print deprecation flag for feature
240240
CountlyViewTrackingInternal.sharedInstance.isEnabledOnInitialConfig = YES;
241-
if (CountlyServerConfig.sharedInstance.viewTrackingEnabled) {
241+
if (CountlyServerConfig.sharedInstance.viewTrackingEnabled)
242+
{
242243
[CountlyViewTrackingInternal.sharedInstance startAutoViewTracking];
243244
}
244-
[CountlyViewTrackingInternal.sharedInstance startAutoViewTracking];
245245
}
246246
if (config.automaticViewTrackingExclusionList) {
247247
[CountlyViewTrackingInternal.sharedInstance addAutoViewTrackingExclutionList:config.automaticViewTrackingExclusionList];
@@ -257,7 +257,6 @@ - (void)startWithConfig:(CountlyConfig *)config
257257
if (config.globalViewSegmentation) {
258258
[CountlyViewTrackingInternal.sharedInstance setGlobalViewSegmentation:config.globalViewSegmentation];
259259
}
260-
261260
timer = [NSTimer timerWithTimeInterval:config.updateSessionPeriod target:self selector:@selector(onTimer:) userInfo:nil repeats:YES];
262261
[NSRunLoop.mainRunLoop addTimer:timer forMode:NSRunLoopCommonModes];
263262

@@ -447,7 +446,7 @@ - (void)resume
447446
- (void)applicationDidBecomeActive:(NSNotification *)notification
448447
{
449448
CLY_LOG_D(@"App enters foreground");
450-
[CountlyServerConfig.sharedInstance fetchServerConfigIfTimeIsUp];
449+
[CountlyServerConfig.sharedInstance fetchServerConfigIfTimeIsUp];
451450
[self resume];
452451
}
453452

@@ -861,13 +860,12 @@ - (void)recordEvent:(NSString *)key segmentation:(NSDictionary *)segmentation co
861860
CLY_LOG_W(@"A reserved event detected for key: '%@', event will not be recorded.", key);
862861
return;
863862
}
864-
865863
if (!CountlyServerConfig.sharedInstance.customEventTrackingEnabled)
866864
{
867865
CLY_LOG_D(@"'recordEvent' is aborted: Custom Event Tracking is disabled from server config!");
868866
return;
869867
}
870-
868+
871869
NSDictionary* truncated = [segmentation cly_truncated:@"Event segmentation"];
872870
segmentation = [truncated cly_limited:@"Event segmentation"];
873871

ios/Classes/CountlyiOS/Countly.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'Countly'
3-
s.version = '25.1.1'
3+
s.version = '25.4.0'
44
s.license = { :type => 'MIT', :file => 'LICENSE' }
55
s.summary = 'Countly is an innovative, real-time, open source mobile analytics platform.'
66
s.homepage = 'https://github.com/Countly/countly-sdk-ios'

ios/Classes/CountlyiOS/CountlyCommon.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ @interface CountlyCommon ()
2929
#endif
3030
@end
3131

32-
NSString* const kCountlySDKVersion = @"25.1.1";
32+
NSString* const kCountlySDKVersion = @"25.4.0";
3333
NSString* const kCountlySDKName = @"objc-native-ios";
3434

3535
NSString* const kCountlyErrorDomain = @"ly.count.ErrorDomain";

0 commit comments

Comments
 (0)