diff --git a/CHANGELOG.md b/CHANGELOG.md index f8f9a306..5f8b23d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ - Added `requestDropAgeHours` initial config property to set a time limit after which the requests would be removed if not sent to the server - Added a call to enroll users to A/B tests when getting a remote config value: 'getValueAndEnroll' - Added a call to enroll users to A/B tests when getting all remote config values: 'getAllValuesAndEnroll' +- Added app version in all API requests. - Fixed sending '--' as carrier name due to platform changes from iOS version 16.4. This version and above will now not send any carrier information due to platform limitations. - Mitigated an issue where users could not enroll to an A/B tests if enrollment request has failed diff --git a/CountlyConfig.h b/CountlyConfig.h index 2c794193..a3387672 100644 --- a/CountlyConfig.h +++ b/CountlyConfig.h @@ -94,6 +94,8 @@ extern CLYMetricKey const CLYMetricKeyLocale; extern CLYMetricKey const CLYMetricKeyHasWatch; extern CLYMetricKey const CLYMetricKeyInstalledWatchApp; +extern NSString* const kCountlyAppVersionKey; + //NOTE: Attribution keys typedef NSString* CLYAttributionKey NS_EXTENSIBLE_STRING_ENUM; extern CLYAttributionKey const CLYAttributionKeyIDFA; diff --git a/CountlyConnectionManager.m b/CountlyConnectionManager.m index 9ed7b54e..d54e60a0 100644 --- a/CountlyConnectionManager.m +++ b/CountlyConnectionManager.m @@ -458,6 +458,9 @@ - (void)sendCrashReport:(NSString *)report immediately:(BOOL)immediately; [CountlyPersistency.sharedInstance saveToFileSync]; + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; + NSString* serverInputEndpoint = [self.host stringByAppendingString:kCountlyEndpointI]; NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:serverInputEndpoint]]; request.HTTPMethod = @"POST"; diff --git a/CountlyDeviceInfo.m b/CountlyDeviceInfo.m index de03282f..396ddc76 100644 --- a/CountlyDeviceInfo.m +++ b/CountlyDeviceInfo.m @@ -33,6 +33,8 @@ CLYMetricKey const CLYMetricKeyHasWatch = @"_has_watch"; CLYMetricKey const CLYMetricKeyInstalledWatchApp = @"_installed_watch_app"; +NSString* const kCountlyAppVersionKey = @"av"; + @interface CountlyDeviceInfo () @property (nonatomic) BOOL isInBackground; #if (TARGET_OS_IOS) diff --git a/CountlyFeedbackWidget.m b/CountlyFeedbackWidget.m index e71e1d35..bb609a22 100644 --- a/CountlyFeedbackWidget.m +++ b/CountlyFeedbackWidget.m @@ -150,6 +150,9 @@ - (NSURLRequest *)dataRequest kCountlyFBKeyPlatform, CountlyDeviceInfo.osName, kCountlyFBKeyShown, @"1", kCountlyFBKeyWidgetID, self.ID]; + + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; @@ -185,6 +188,9 @@ - (NSURLRequest *)displayRequest kCountlyFBKeyAppVersion, CountlyDeviceInfo.appVersion, kCountlyFBKeyPlatform, CountlyDeviceInfo.osName, kCountlyFBKeyWidgetID, self.ID]; + + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; diff --git a/CountlyFeedbacks.m b/CountlyFeedbacks.m index a507a72b..290024b3 100644 --- a/CountlyFeedbacks.m +++ b/CountlyFeedbacks.m @@ -331,6 +331,9 @@ - (NSURLRequest *)widgetCheckURLRequest:(NSString *)widgetID NSString* queryString = [CountlyConnectionManager.sharedInstance queryEssentials]; queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyFBKeyWidgetID, widgetID]; + + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; @@ -361,6 +364,9 @@ - (NSURL *)widgetDisplayURL:(NSString *)widgetID queryString = [queryString stringByAppendingFormat:@"&%@=%@&%@=%@", kCountlyFBKeyWidgetID, widgetID, kCountlyFBKeyAppVersion, CountlyDeviceInfo.appVersion]; + + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; @@ -476,6 +482,9 @@ - (NSURLRequest *)feedbacksRequest kCountlyQSKeyDeviceID, CountlyDeviceInfo.sharedInstance.deviceID.cly_URLEscaped, kCountlyQSKeySDKName, CountlyCommon.sharedInstance.SDKName, kCountlyQSKeySDKVersion, CountlyCommon.sharedInstance.SDKVersion]; + + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; diff --git a/CountlyPersistency.m b/CountlyPersistency.m index 4fe0f7de..85b6cbb9 100644 --- a/CountlyPersistency.m +++ b/CountlyPersistency.m @@ -79,6 +79,9 @@ - (void)addToQueue:(NSString *)queryString if (!queryString.length || [queryString isEqual:NSNull.null]) return; + + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; @synchronized (self) { diff --git a/CountlyRemoteConfigInternal.m b/CountlyRemoteConfigInternal.m index 69c78749..0854e76b 100644 --- a/CountlyRemoteConfigInternal.m +++ b/CountlyRemoteConfigInternal.m @@ -255,14 +255,17 @@ - (NSURLRequest *)remoteConfigRequestForKeys:(NSArray *)keys omitKeys:(NSArray * queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyRCKeyOmitKeys, [omitKeys cly_JSONify]]; } + if (self.enrollABOnRCDownload) { + queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyRCKeyAutoOptIn, @"1"]; + } + if (CountlyConsentManager.sharedInstance.consentForSessions) { queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyQSKeyMetrics, [CountlyDeviceInfo metrics]]; } - if (self.enrollABOnRCDownload) { - queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyRCKeyAutoOptIn, @"1"]; - } + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; @@ -654,10 +657,8 @@ - (NSURLRequest *)downloadVariantsRequest queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyQSKeyMethod, kCountlyRCKeyFetchVariant]; - if (CountlyConsentManager.sharedInstance.consentForSessions) - { - queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyQSKeyMetrics, [CountlyDeviceInfo metrics]]; - } + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; @@ -783,10 +784,8 @@ - (NSURLRequest *)downloadExperimentInfoRequest queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyQSKeyMethod, kCountlyRCKeyFetchExperiments]; - if (CountlyConsentManager.sharedInstance.consentForSessions) - { - queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyQSKeyMetrics, [CountlyDeviceInfo metrics]]; - } + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; @@ -824,10 +823,8 @@ - (NSURLRequest *)enrollInVarianRequestForKey:(NSString *)key variantName:(NSStr queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyRCKeyVariant, variantName.cly_URLEscaped]; } - if (CountlyConsentManager.sharedInstance.consentForSessions) - { - queryString = [queryString stringByAppendingFormat:@"&%@=%@", kCountlyQSKeyMetrics, [CountlyDeviceInfo metrics]]; - } + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; diff --git a/CountlyServerConfig.m b/CountlyServerConfig.m index b5a48de8..300f14e7 100644 --- a/CountlyServerConfig.m +++ b/CountlyServerConfig.m @@ -130,6 +130,9 @@ - (NSURLRequest *)serverConfigRequest kCountlyQSKeySDKName, CountlyCommon.sharedInstance.SDKName, kCountlyQSKeySDKVersion, CountlyCommon.sharedInstance.SDKVersion]; + queryString = [queryString stringByAppendingFormat:@"&%@=%@", + kCountlyAppVersionKey, CountlyDeviceInfo.appVersion]; + queryString = [CountlyConnectionManager.sharedInstance appendChecksum:queryString]; NSMutableString* URL = CountlyConnectionManager.sharedInstance.host.mutableCopy;