Skip to content

Commit

Permalink
Merge pull request #356 from Countly/staging
Browse files Browse the repository at this point in the history
Staging 24.7.6
  • Loading branch information
turtledreams authored Nov 4, 2024
2 parents e4177ac + 693e51a commit fa92c8f
Show file tree
Hide file tree
Showing 54 changed files with 3,460 additions and 692 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build the SDK

permissions:
checks: write
pull-requests: write

on:
push:
branches:
- master
- staging
pull_request:
branches:
- master
- staging
jobs:
build:
runs-on: macos-${{ matrix.env.os_version }}
strategy:
fail-fast: false
matrix:
env:
[
{os_version: 14, sdk: "macosx14.5"},
{os_version: 14, sdk: "iphoneos17.5"},
{os_version: 14, sdk: "appletvos17.5"},
{os_version: 14, sdk: "watchos10.5"},
{os_version: 14, sdk: "xros1.2"},
{os_version: 12, sdk: "iphoneos16.2"},
{os_version: 12, sdk: "macosx13.1"},
{os_version: 12, sdk: "appletvos16.1"},
{os_version: 12, sdk: "watchos9.1"},
{os_version: 13, sdk: "iphoneos17.2"},
{os_version: 13, sdk: "macosx14.2"},
{os_version: 13, sdk: "appletvos17.2"},
{os_version: 13, sdk: "watchos10.2"},
{os_version: 13, sdk: "xros1.0"},
{os_version: 15, sdk: "xros2.0"}
]
steps:
# To check the github context
- name: Checkout SDK code
uses: actions/checkout@v4

- name: Build for the sdk ${{ matrix.env.sdk }} on macOS ${{ matrix.env.os_version }}
run: xcodebuild -project Countly.xcodeproj build -sdk ${{ matrix.env.sdk }}

- name: Run the tests for the sdk ${{ matrix.env.sdk }} on macOS ${{ matrix.env.os_version }}
run: echo good #xcodebuild -project Countly.xcodeproj test -destination ${{ matrix.env.destination }} -scheme CountlyTests
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ Thumbs.db
Countly.xcodeproj/project.xcworkspace/
Countly.xcodeproj/xcuserdata/
.build
build
.swiftpm
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,47 @@
## 24.7.6
* Mitigated an issue with experimental visibility tracking and previous name recording, ensuring they’re included even when no segmentation is provided in event or view recording.

## 24.7.5
* Mitigated an issue with content action json parsing due to json encoding
* Mitigated an issue where pausing a view resulted in a '0' view duration.
* Mitigated an issue where an internal timer was not reset when going to foreground for `autoStoppedViews`
* Mitigated an issue for `autoStoppedViews` could have not started when multiple views were open at the same time while going to foreground

## 24.7.4
* Added visionOS build support
* Added `CountlyFeedbacks:` interface with new view methods (Access with `Countly.sharedInstance.feedback`):
* Method to present feedback widget (wih an optional widget selector(name, ID or tag) string and a Callback):
* `presentNPS`
* `presentSurvey`
* `presentRating`
* `getAvailableFeedbackWidgets` method to retrieve available feedback widgets with a completion handler.

* Mitigated an issue with the feedback widget URL encoding on iOS 16 and earlier, which prevented the widget from displaying
* Mitigated an issue with content fetch URL encoding on iOS 16 and earlier, which caused the request to fail

* Deprecated `getFeedbackWidgets` method, you should use `[feedback getAvailableFeedbackWidgets:]` method instead

## 24.7.3
* Added current view names to event segmentation based on the `enablePreviousNameRecording` (Experimental!)
* Updated the SDK to ensure compatibility with the latest server response models

## 24.7.2
* Automatic view pause/resumes are changed with stop/start for better data consistency.
* Added the config interface 'experimental' to group experimental features.
* Added a flag (enablePreviousNameRecording) to add previous event and view names as segmentation. (Experimental!)
* Added a flag (enableVisibilityTracking) to add app visibility info to views
* Added Content feature methods:
- enterContentZone, to start Content checks(Experimental!)
- exitContentZone, to stop content checks (Experimental!)

## 24.7.1
* Added `enableTemporaryDeviceIDMode` config and post-initialization methods to enable temporary device ID mode
* Orientation info is now also sent during initialization
* Mitigated an issue where consent information was not sent when no consent was given during initialization
* Mitigated an issue where a session could have started if the SDK was initialized on the background and automatic session tracking was enabled
* Mitigated an issue where a session did not end when session consent was removed
* Mitigated an issue where disabling location did not work

## 24.7.0
* Implemented automatic sending of user properties to the server without requiring an explicit call to the `save` method
* Added `setID` method for changing device ID based on the device ID type
Expand Down
4 changes: 2 additions & 2 deletions Countly-PL.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'Countly-PL'
s.version = '24.7.0'
s.version = '24.7.6'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.summary = 'Countly is an innovative, real-time, open source mobile analytics platform.'
s.homepage = 'https://github.com/Countly/countly-sdk-ios'
Expand All @@ -17,7 +17,7 @@ Pod::Spec.new do |s|

s.subspec 'Core' do |core|
core.source_files = '*.{h,m}'
core.public_header_files = 'Countly.h', 'CountlyUserDetails.h', 'CountlyConfig.h', 'CountlyFeedbackWidget.h', 'CountlyRCData.h', 'CountlyRemoteConfig.h', 'CountlyViewTracking.h', 'CountlyExperimentInformation.h', 'CountlyAPMConfig.h', 'CountlySDKLimitsConfig.h', 'Resettable.h', "CountlyCrashesConfig.h", "CountlyCrashData.h"
core.public_header_files = 'Countly.h', 'CountlyUserDetails.h', 'CountlyConfig.h', 'CountlyFeedbackWidget.h', 'CountlyRCData.h', 'CountlyRemoteConfig.h', 'CountlyViewTracking.h', 'CountlyExperimentInformation.h', 'CountlyAPMConfig.h', 'CountlySDKLimitsConfig.h', 'Resettable.h', "CountlyCrashesConfig.h", "CountlyCrashData.h", "CountlyContentBuilder.h", "CountlyExperimentalConfig.h", "CountlyContentConfig.h", "CountlyFeedbacks.h"
core.preserve_path = 'countly_dsym_uploader.sh'
core.ios.frameworks = ['Foundation', 'UIKit', 'UserNotifications', 'CoreLocation', 'WebKit', 'CoreTelephony', 'WatchConnectivity']
end
Expand Down
33 changes: 27 additions & 6 deletions Countly.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
#import "CountlyRemoteConfig.h"
#import "CountlyFeedbackWidget.h"
#import "CountlyViewTracking.h"
#import "CountlyContentBuilder.h"
#import "CountlyFeedbacks.h"
#import "Resettable.h"
#if (TARGET_OS_IOS || TARGET_OS_OSX)
#if (TARGET_OS_IOS || TARGET_OS_VISION || TARGET_OS_OSX )
#import <UserNotifications/UserNotifications.h>
#endif

Expand Down Expand Up @@ -186,7 +188,14 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (void)changeDeviceIDWithoutMerge:(NSString * _Nullable)deviceID;

- (void) setID:(NSString *)deviceID;
- (void)setID:(NSString *)deviceID;

/**
* This menthod will enable temporary device ID mode
* @discussion All requests will be on hold, but they will be persistently stored.
* @discussion When in temporary device ID mode, method calls for presenting feedback widgets and updating remote config will be ignored.
*/
- (void)enableTemporaryDeviceIDMode;


#pragma mark - Consents
Expand Down Expand Up @@ -368,7 +377,7 @@ NS_ASSUME_NONNULL_BEGIN


#pragma mark - Push Notification
#if (TARGET_OS_IOS || TARGET_OS_OSX)
#if (TARGET_OS_IOS || TARGET_OS_VISION || TARGET_OS_OSX )
#ifndef COUNTLY_EXCLUDE_PUSHNOTIFICATIONS
/**
* Shows default system dialog that asks for user's permission to display notifications.
Expand Down Expand Up @@ -544,7 +553,7 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (void)recordView:(NSString *)viewName segmentation:(NSDictionary<NSString *, id> *)segmentation DEPRECATED_MSG_ATTRIBUTE("Use '[views startView/startAutoStoppedView:]' method instead!");

#if (TARGET_OS_IOS || TARGET_OS_TV)
#if (TARGET_OS_IOS || TARGET_OS_VISION || TARGET_OS_TV )
/**
* Adds exception for AutoViewTracking.
* @discussion @c UIViewControllers with specified title or class name will be ignored by AutoViewTracking and their appearances and disappearances will not be recorded.
Expand Down Expand Up @@ -585,7 +594,7 @@ NS_ASSUME_NONNULL_BEGIN


#pragma mark - Feedbacks
#if (TARGET_OS_IOS)
#if (TARGET_OS_IOS || TARGET_OS_VISION )
/**
* Shows star-rating dialog manually and executes completion block after user's action.
* @discussion Completion block has a single NSInteger parameter that indicates 1 to 5 star-rating given by user.
Expand Down Expand Up @@ -668,8 +677,20 @@ NS_ASSUME_NONNULL_BEGIN
* @discussion - Current device ID is @c CLYTemporaryDeviceID.
* @param completionHandler A completion handler block to be executed when list is fetched successfully or there is an error.
*/
- (void)getFeedbackWidgets:(void (^)(NSArray <CountlyFeedbackWidget *> * __nullable feedbackWidgets, NSError * __nullable error))completionHandler;
- (void)getFeedbackWidgets:(void (^)(NSArray <CountlyFeedbackWidget *> * __nullable feedbackWidgets, NSError * __nullable error))completionHandler DEPRECATED_MSG_ATTRIBUTE("Use '[feedback getAvailableFeedbackWidgets:]' method instead!");

/**
* This is an experimental feature and it can have breaking changes
* Interface variable to access content functionalities.
* @discussion Content interface for developer to interact with SDK.
*/
- (CountlyContentBuilder *_Nonnull) content;

/**
* Interface variable to access feedback widget functionalities.
* @discussion Feedback widget interface for developer to interact with SDK.
*/
- (CountlyFeedbacks *) feedback;
#endif


Expand Down
Loading

0 comments on commit fa92c8f

Please sign in to comment.