diff --git a/Adjust.podspec b/Adjust.podspec index a8a3f2364..1f8524cd5 100644 --- a/Adjust.podspec +++ b/Adjust.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "Adjust" - s.version = "4.25.2" + s.version = "4.26.0" s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com." s.homepage = "https://github.com/adjust/ios_sdk" s.license = { :type => 'MIT', :file => 'MIT-LICENSE' } s.author = { "Christian Wellenbrock" => "welle@adjust.com" } - s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.25.2" } + s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.26.0" } s.ios.deployment_target = '6.0' s.tvos.deployment_target = '9.0' s.framework = 'SystemConfiguration' diff --git a/Adjust.xcodeproj/project.pbxproj b/Adjust.xcodeproj/project.pbxproj index cf3cb08a1..0d1bcb21e 100644 --- a/Adjust.xcodeproj/project.pbxproj +++ b/Adjust.xcodeproj/project.pbxproj @@ -2302,7 +2302,7 @@ 9679920518BBAE2800394606 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1220; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = "adjust GmbH"; TargetAttributes = { 9615158E1CD2CB2C0022D336 = { diff --git a/Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdk.xcscheme b/Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdk.xcscheme index 99d1a41b9..0faa5f57a 100644 --- a/Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdk.xcscheme +++ b/Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdk.xcscheme @@ -1,6 +1,6 @@ -@property (nonatomic, copy) ADJAttribution *attribution; -@property (nonatomic, strong) ADJTrackingStatusManager *trackingStatusManager; +@property (nonatomic, copy) ADJAttribution * _Nullable attribution; +@property (nonatomic, strong) ADJTrackingStatusManager * _Nullable trackingStatusManager; -- (NSString *)adid; +- (NSString *_Nullable)adid; -- (id)initWithConfig:(ADJConfig *)adjustConfig - savedPreLaunch:(ADJSavedPreLaunch *)savedPreLaunch; +- (id _Nullable)initWithConfig:(ADJConfig *_Nullable)adjustConfig + savedPreLaunch:(ADJSavedPreLaunch * _Nullable)savedPreLaunch; - (void)applicationDidBecomeActive; - (void)applicationWillResignActive; -- (void)trackEvent:(ADJEvent *)event; +- (void)trackEvent:(ADJEvent * _Nullable)event; -- (void)finishedTracking:(ADJResponseData *)responseData; -- (void)launchEventResponseTasks:(ADJEventResponseData *)eventResponseData; -- (void)launchSessionResponseTasks:(ADJSessionResponseData *)sessionResponseData; -- (void)launchSdkClickResponseTasks:(ADJSdkClickResponseData *)sdkClickResponseData; -- (void)launchAttributionResponseTasks:(ADJAttributionResponseData *)attributionResponseData; +- (void)finishedTracking:(ADJResponseData * _Nullable)responseData; +- (void)launchEventResponseTasks:(ADJEventResponseData * _Nullable)eventResponseData; +- (void)launchSessionResponseTasks:(ADJSessionResponseData * _Nullable)sessionResponseData; +- (void)launchSdkClickResponseTasks:(ADJSdkClickResponseData * _Nullable)sdkClickResponseData; +- (void)launchAttributionResponseTasks:(ADJAttributionResponseData * _Nullable)attributionResponseData; - (void)setEnabled:(BOOL)enabled; - (BOOL)isEnabled; - (BOOL)isGdprForgotten; -- (void)appWillOpenUrl:(NSURL*)url withClickTime:(NSDate *)clickTime; -- (void)setDeviceToken:(NSData *)deviceToken; -- (void)setPushToken:(NSString *)deviceToken; +- (void)appWillOpenUrl:(NSURL * _Nullable)url + withClickTime:(NSDate * _Nullable)clickTime; +- (void)setDeviceToken:(NSData * _Nullable)deviceToken; +- (void)setPushToken:(NSString * _Nullable)deviceToken; - (void)setGdprForgetMe; - (void)setTrackingStateOptedOut; - (void)setAskingAttribution:(BOOL)askingAttribution; -- (BOOL)updateAttributionI:(id)selfI attribution:(ADJAttribution *)attribution; -- (void)setAttributionDetails:(NSDictionary *)attributionDetails - error:(NSError *)error; -- (void)setAdServicesAttributionToken:(NSString *)token - error:(NSError *)error; +- (BOOL)updateAttributionI:(id _Nullable)selfI + attribution:(ADJAttribution * _Nullable)attribution; +- (void)setAttributionDetails:(NSDictionary * _Nullable)attributionDetails + error:(NSError * _Nullable)error; +- (void)setAdServicesAttributionToken:(NSString * _Nullable)token + error:(NSError * _Nullable)error; - (void)setOfflineMode:(BOOL)offline; - (void)sendFirstPackages; -- (void)addSessionCallbackParameter:(NSString *)key - value:(NSString *)value; -- (void)addSessionPartnerParameter:(NSString *)key - value:(NSString *)value; -- (void)removeSessionCallbackParameter:(NSString *)key; -- (void)removeSessionPartnerParameter:(NSString *)key; +- (void)addSessionCallbackParameter:(NSString * _Nullable)key + value:(NSString * _Nullable)value; +- (void)addSessionPartnerParameter:(NSString * _Nullable)key + value:(NSString * _Nullable)value; +- (void)removeSessionCallbackParameter:(NSString * _Nullable)key; +- (void)removeSessionPartnerParameter:(NSString * _Nullable)key; - (void)resetSessionCallbackParameters; - (void)resetSessionPartnerParameters; -- (void)trackAdRevenue:(NSString *)soruce payload:(NSData *)payload; +- (void)trackAdRevenue:(NSString * _Nullable)soruce + payload:(NSData * _Nullable)payload; - (void)disableThirdPartySharing; - (void)trackThirdPartySharing:(nonnull ADJThirdPartySharing *)thirdPartySharing; - (void)trackMeasurementConsent:(BOOL)enabled; -- (void)trackSubscription:(ADJSubscription *)subscription; +- (void)trackSubscription:(ADJSubscription * _Nullable)subscription; - (void)updateAttStatusFromUserCallback:(int)newAttStatusFromUser; -- (ADJDeviceInfo *)deviceInfo; -- (ADJActivityState *)activityState; -- (ADJConfig *)adjustConfig; -- (ADJSessionParameters *)sessionParameters; +- (ADJDeviceInfo * _Nullable)deviceInfo; +- (ADJActivityState * _Nullable)activityState; +- (ADJConfig * _Nullable)adjustConfig; +- (ADJSessionParameters * _Nullable)sessionParameters; - (void)teardown; + (void)deleteState; @@ -121,28 +124,28 @@ @interface ADJActivityHandler : NSObject -- (id)initWithConfig:(ADJConfig *)adjustConfig - savedPreLaunch:(ADJSavedPreLaunch *)savedPreLaunch; +- (id _Nullable)initWithConfig:(ADJConfig * _Nullable)adjustConfig + savedPreLaunch:(ADJSavedPreLaunch * _Nullable)savedPreLaunch; -- (void)addSessionCallbackParameterI:(ADJActivityHandler *)selfI - key:(NSString *)key - value:(NSString *)value; +- (void)addSessionCallbackParameterI:(ADJActivityHandler * _Nullable)selfI + key:(NSString * _Nullable)key + value:(NSString * _Nullable)value; -- (void)addSessionPartnerParameterI:(ADJActivityHandler *)selfI - key:(NSString *)key - value:(NSString *)value; -- (void)removeSessionCallbackParameterI:(ADJActivityHandler *)selfI - key:(NSString *)key; -- (void)removeSessionPartnerParameterI:(ADJActivityHandler *)selfI - key:(NSString *)key; -- (void)resetSessionCallbackParametersI:(ADJActivityHandler *)selfI; -- (void)resetSessionPartnerParametersI:(ADJActivityHandler *)selfI; +- (void)addSessionPartnerParameterI:(ADJActivityHandler * _Nullable)selfI + key:(NSString * _Nullable)key + value:(NSString * _Nullable)value; +- (void)removeSessionCallbackParameterI:(ADJActivityHandler * _Nullable)selfI + key:(NSString * _Nullable)key; +- (void)removeSessionPartnerParameterI:(ADJActivityHandler * _Nullable)selfI + key:(NSString * _Nullable)key; +- (void)resetSessionCallbackParametersI:(ADJActivityHandler * _Nullable)selfI; +- (void)resetSessionPartnerParametersI:(ADJActivityHandler * _Nullable)selfI; @end @interface ADJTrackingStatusManager : NSObject -- (instancetype)initWithActivityHandler:(ADJActivityHandler *)activityHandler; +- (instancetype _Nullable)initWithActivityHandler:(ADJActivityHandler * _Nullable)activityHandler; - (void)checkForNewAttStatus; - (void)updateAttStatusFromUserCallback:(int)newAttStatusFromUser; @@ -154,5 +157,5 @@ @end -extern NSString * const ADJiAdPackageKey; -extern NSString * const ADJAdServicesPackageKey; +extern NSString * _Nullable const ADJiAdPackageKey; +extern NSString * _Nullable const ADJAdServicesPackageKey; diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index 922e8e6ce..dc28062f7 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -2708,29 +2708,8 @@ - (void)checkConversionValue:(ADJResponseData *)responseData { if (!conversionValue) { return; } - - id logger = [ADJAdjustFactory logger]; - - Class skAdNetwork = NSClassFromString(@"SKAdNetwork"); - if (skAdNetwork == nil) { - [logger warn:@"StoreKit framework not found in user's app (SKAdNetwork not found)"]; - return; - } - SEL updateConversionValueSelector = NSSelectorFromString(@"updateConversionValue:"); - if ([skAdNetwork respondsToSelector:updateConversionValueSelector]) { - NSInteger intValue = [conversionValue integerValue]; - - NSMethodSignature *conversionValueMethodSignature = [skAdNetwork methodSignatureForSelector:updateConversionValueSelector]; - NSInvocation *conversionInvocation = [NSInvocation invocationWithMethodSignature:conversionValueMethodSignature]; - [conversionInvocation setSelector:updateConversionValueSelector]; - [conversionInvocation setTarget:skAdNetwork]; - - [conversionInvocation setArgument:&intValue atIndex:2]; - [conversionInvocation invoke]; - - [logger verbose:@"Call to SKAdNetwork's updateConversionValue: method made with value %d", intValue]; - } + [ADJUtil updateSkAdNetworkConversionValue:conversionValue]; } - (void)updateAttStatusFromUserCallback:(int)newAttStatusFromUser { diff --git a/Adjust/ADJPackageBuilder.h b/Adjust/ADJPackageBuilder.h index d64772fd1..f5c6d23b9 100644 --- a/Adjust/ADJPackageBuilder.h +++ b/Adjust/ADJPackageBuilder.h @@ -18,71 +18,71 @@ @interface ADJPackageBuilder : NSObject -@property (nonatomic, copy) NSString *deeplink; +@property (nonatomic, copy) NSString * _Nullable deeplink; -@property (nonatomic, copy) NSDate *clickTime; +@property (nonatomic, copy) NSDate * _Nullable clickTime; -@property (nonatomic, copy) NSDate *purchaseTime; +@property (nonatomic, copy) NSDate * _Nullable purchaseTime; -@property (nonatomic, strong) NSDictionary *attributionDetails; +@property (nonatomic, strong) NSDictionary * _Nullable attributionDetails; -@property (nonatomic, strong) NSDictionary *deeplinkParameters; +@property (nonatomic, strong) NSDictionary * _Nullable deeplinkParameters; -@property (nonatomic, copy) ADJAttribution *attribution; +@property (nonatomic, copy) ADJAttribution * _Nullable attribution; -- (id)initWithDeviceInfo:(ADJDeviceInfo *)deviceInfo - activityState:(ADJActivityState *)activityState - config:(ADJConfig *)adjustConfig - sessionParameters:(ADJSessionParameters *)sessionParameters - trackingStatusManager:(ADJTrackingStatusManager *)trackingStatusManager - createdAt:(double)createdAt; +- (id _Nullable)initWithDeviceInfo:(ADJDeviceInfo * _Nullable)deviceInfo + activityState:(ADJActivityState * _Nullable)activityState + config:(ADJConfig * _Nullable)adjustConfig + sessionParameters:(ADJSessionParameters * _Nullable)sessionParameters + trackingStatusManager:(ADJTrackingStatusManager * _Nullable)trackingStatusManager + createdAt:(double)createdAt; -- (ADJActivityPackage *)buildSessionPackage:(BOOL)isInDelay; +- (ADJActivityPackage * _Nullable)buildSessionPackage:(BOOL)isInDelay; -- (ADJActivityPackage *)buildEventPackage:(ADJEvent *)event +- (ADJActivityPackage * _Nullable)buildEventPackage:(ADJEvent * _Nullable)event isInDelay:(BOOL)isInDelay; -- (ADJActivityPackage *)buildInfoPackage:(NSString *)infoSource; +- (ADJActivityPackage * _Nullable)buildInfoPackage:(NSString * _Nullable)infoSource; -- (ADJActivityPackage *)buildAdRevenuePackage:(NSString *)source payload:(NSData *)payload; +- (ADJActivityPackage * _Nullable)buildAdRevenuePackage:(NSString * _Nullable)source payload:(NSData * _Nullable)payload; -- (ADJActivityPackage *)buildClickPackage:(NSString *)clickSource; +- (ADJActivityPackage * _Nullable)buildClickPackage:(NSString * _Nullable)clickSource; -- (ADJActivityPackage *)buildClickPackage:(NSString *)clickSource - token:(NSString *)token - errorCodeNumber:(NSNumber *)errorCodeNumber; +- (ADJActivityPackage * _Nullable)buildClickPackage:(NSString * _Nullable)clickSource + token:(NSString * _Nullable)token + errorCodeNumber:(NSNumber * _Nullable)errorCodeNumber; -- (ADJActivityPackage *)buildAttributionPackage:(NSString *)initiatedBy; +- (ADJActivityPackage * _Nullable)buildAttributionPackage:(NSString * _Nullable)initiatedBy; -- (ADJActivityPackage *)buildGdprPackage; +- (ADJActivityPackage * _Nullable)buildGdprPackage; -- (ADJActivityPackage *)buildDisableThirdPartySharingPackage; +- (ADJActivityPackage * _Nullable)buildDisableThirdPartySharingPackage; -- (ADJActivityPackage *)buildThirdPartySharingPackage:(nonnull ADJThirdPartySharing *)thirdPartySharing; +- (ADJActivityPackage * _Nullable)buildThirdPartySharingPackage:(nonnull ADJThirdPartySharing *)thirdPartySharing; -- (ADJActivityPackage *)buildMeasurementConsentPackage:(BOOL)enabled; +- (ADJActivityPackage * _Nullable)buildMeasurementConsentPackage:(BOOL)enabled; -- (ADJActivityPackage *)buildSubscriptionPackage:(ADJSubscription *)subscription - isInDelay:(BOOL)isInDelay; +- (ADJActivityPackage * _Nullable)buildSubscriptionPackage:( ADJSubscription * _Nullable)subscription + isInDelay:(BOOL)isInDelay; -+ (void)parameters:(NSMutableDictionary *)parameters - setDictionary:(NSDictionary *)dictionary - forKey:(NSString *)key; ++ (void)parameters:(NSMutableDictionary * _Nullable)parameters + setDictionary:(NSDictionary * _Nullable)dictionary + forKey:(NSString * _Nullable)key; -+ (void)parameters:(NSMutableDictionary *)parameters - setString:(NSString *)value - forKey:(NSString *)key; ++ (void)parameters:(NSMutableDictionary * _Nullable)parameters + setString:(NSString * _Nullable)value + forKey:(NSString * _Nullable)key; -+ (void)parameters:(NSMutableDictionary *)parameters ++ (void)parameters:(NSMutableDictionary * _Nullable)parameters setInt:(int)value - forKey:(NSString *)key; + forKey:(NSString * _Nullable)key; -+ (void)parameters:(NSMutableDictionary *)parameters ++ (void)parameters:(NSMutableDictionary * _Nullable)parameters setDate1970:(double)value - forKey:(NSString *)key; + forKey:(NSString * _Nullable)key; -+ (BOOL)isAdServicesPackage:(ADJActivityPackage *)activityPackage; ++ (BOOL)isAdServicesPackage:(ADJActivityPackage * _Nullable)activityPackage; @end // TODO change to ADJ... -extern NSString * const ADJAttributionTokenParameter; +extern NSString * _Nullable const ADJAttributionTokenParameter; diff --git a/Adjust/ADJUtil.h b/Adjust/ADJUtil.h index 372e4f97e..e79c9cc10 100644 --- a/Adjust/ADJUtil.h +++ b/Adjust/ADJUtil.h @@ -121,4 +121,6 @@ typedef void (^isInactiveInjected)(BOOL); + (NSString *)enforceParameterLength:(NSString *)parameter withMaxlength:(NSUInteger)maxLength; ++ (void)updateSkAdNetworkConversionValue:(NSNumber *)conversionValue; + @end diff --git a/Adjust/ADJUtil.m b/Adjust/ADJUtil.m index 86a7ef3e7..26f7ed294 100644 --- a/Adjust/ADJUtil.m +++ b/Adjust/ADJUtil.m @@ -37,7 +37,7 @@ static CTTelephonyNetworkInfo *networkInfo = nil; #endif -static NSString * const kClientSdk = @"ios4.25.2"; +static NSString * const kClientSdk = @"ios4.26.0"; static NSString * const kDeeplinkParam = @"deep_link="; static NSString * const kSchemeDelimiter = @"://"; static NSString * const kDefaultScheme = @"AdjustUniversalScheme"; @@ -1096,4 +1096,29 @@ + (NSString *)enforceParameterLength:(NSString *)parameter return expandedParameter; } ++ (void)updateSkAdNetworkConversionValue:(NSNumber *)conversionValue { + id logger = [ADJAdjustFactory logger]; + + Class skAdNetwork = NSClassFromString(@"SKAdNetwork"); + if (skAdNetwork == nil) { + [logger warn:@"StoreKit framework not found in user's app (SKAdNetwork not found)"]; + return; + } + + SEL updateConversionValueSelector = NSSelectorFromString(@"updateConversionValue:"); + if ([skAdNetwork respondsToSelector:updateConversionValueSelector]) { + NSInteger intValue = [conversionValue integerValue]; + + NSMethodSignature *conversionValueMethodSignature = [skAdNetwork methodSignatureForSelector:updateConversionValueSelector]; + NSInvocation *conversionInvocation = [NSInvocation invocationWithMethodSignature:conversionValueMethodSignature]; + [conversionInvocation setSelector:updateConversionValueSelector]; + [conversionInvocation setTarget:skAdNetwork]; + + [conversionInvocation setArgument:&intValue atIndex:2]; + [conversionInvocation invoke]; + + [logger verbose:@"Call to SKAdNetwork's updateConversionValue: method made with value %d", intValue]; + } +} + @end diff --git a/Adjust/Adjust.h b/Adjust/Adjust.h index 794af6b56..022e0c642 100644 --- a/Adjust/Adjust.h +++ b/Adjust/Adjust.h @@ -2,7 +2,7 @@ // Adjust.h // Adjust // -// V4.25.2 +// V4.26.0 // Created by Christian Wellenbrock (wellle) on 23rd July 2013. // Copyright © 2012-2017 Adjust GmbH. All rights reserved. // @@ -291,6 +291,8 @@ extern NSString * __nonnull const ADJUrlStrategyChina; + (int)appTrackingAuthorizationStatus; ++ (void)updateConversionValue:(NSInteger)conversionValue; + /** * Obtain singleton Adjust object. */ @@ -354,4 +356,6 @@ extern NSString * __nonnull const ADJUrlStrategyChina; - (int)appTrackingAuthorizationStatus; +- (void)updateConversionValue:(NSInteger)conversionValue; + @end diff --git a/Adjust/Adjust.m b/Adjust/Adjust.m index 6181294f9..b0004b5fb 100644 --- a/Adjust/Adjust.m +++ b/Adjust/Adjust.m @@ -262,6 +262,12 @@ + (int)appTrackingAuthorizationStatus { } } ++ (void)updateConversionValue:(NSInteger)conversionValue { + @synchronized (self) { + [[Adjust getInstance] updateConversionValue:conversionValue]; + } +} + + (ADJAttribution *)attribution { @synchronized (self) { return [[Adjust getInstance] attribution]; @@ -565,6 +571,10 @@ - (int)appTrackingAuthorizationStatus { return [[UIDevice currentDevice] adjATTStatus]; } +- (void)updateConversionValue:(NSInteger)conversionValue { + [ADJUtil updateSkAdNetworkConversionValue:[NSNumber numberWithInteger:conversionValue]]; +} + - (ADJAttribution *)attribution { if (![self checkActivityHandler]) { return nil; diff --git a/AdjustBridge/AdjustBridge.m b/AdjustBridge/AdjustBridge.m index 66cd588df..650b73780 100644 --- a/AdjustBridge/AdjustBridge.m +++ b/AdjustBridge/AdjustBridge.m @@ -439,6 +439,13 @@ - (void)loadWKWebViewBridge:(WKWebView *)wkWebView responseCallback([NSNumber numberWithInt:[Adjust appTrackingAuthorizationStatus]]); }]; + [self.bridgeRegister registerHandler:@"adjust_updateConversionValue" handler:^(id data, WVJBResponseCallback responseCallback) { + if (![data isKindOfClass:[NSNumber class]]) { + return; + } + [Adjust updateConversionValue:[(NSNumber *)data integerValue]]; + }]; + [self.bridgeRegister registerHandler:@"adjust_adid" handler:^(id data, WVJBResponseCallback responseCallback) { if (responseCallback == nil) { return; diff --git a/AdjustBridge/AdjustBridgeRegister.m b/AdjustBridge/AdjustBridgeRegister.m index 533422f42..40a31cb7a 100644 --- a/AdjustBridge/AdjustBridgeRegister.m +++ b/AdjustBridge/AdjustBridgeRegister.m @@ -156,6 +156,11 @@ + (NSString *)adjust_js { WebViewJavascriptBridge.callHandler('adjust_appTrackingAuthorizationStatus', null, callback); } }, + updateConversionValue: function(conversionValue) { + if (WebViewJavascriptBridge) { + WebViewJavascriptBridge.callHandler('adjust_updateConversionValue', conversionValue, null); + } + }, getAdid: function(callback) { if (WebViewJavascriptBridge) { WebViewJavascriptBridge.callHandler('adjust_adid', null, callback); @@ -241,7 +246,7 @@ + (NSString *)adjust_js { if (this.sdkPrefix) { return this.sdkPrefix; } else { - return 'web-bridge4.25.2'; + return 'web-bridge4.26.0'; } }, setTestOptions: function(testOptions) { diff --git a/AdjustTests/AdjustTestApp/AdjustTestApp.xcodeproj/project.pbxproj b/AdjustTests/AdjustTestApp/AdjustTestApp.xcodeproj/project.pbxproj index 9d235ba5d..58cf04d2f 100644 --- a/AdjustTests/AdjustTestApp/AdjustTestApp.xcodeproj/project.pbxproj +++ b/AdjustTests/AdjustTestApp/AdjustTestApp.xcodeproj/project.pbxproj @@ -460,7 +460,7 @@ 6F08421F2007769F00568A31 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1220; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = adjust; TargetAttributes = { 6F0842262007769F00568A31 = { diff --git a/AdjustTests/AdjustTestLibrary/AdjustTestLibrary.xcodeproj/project.pbxproj b/AdjustTests/AdjustTestLibrary/AdjustTestLibrary.xcodeproj/project.pbxproj index d3fd5b62a..1a6f3e293 100644 --- a/AdjustTests/AdjustTestLibrary/AdjustTestLibrary.xcodeproj/project.pbxproj +++ b/AdjustTests/AdjustTestLibrary/AdjustTestLibrary.xcodeproj/project.pbxproj @@ -251,7 +251,7 @@ 6F0842042007766700568A31 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1220; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = adjust; TargetAttributes = { 20E71745203B162B0073AC91 = { diff --git a/AdjustTests/AdjustUnitTests/ADJPackageFields.m b/AdjustTests/AdjustUnitTests/ADJPackageFields.m index 1e9f2382f..d5f3a8627 100644 --- a/AdjustTests/AdjustUnitTests/ADJPackageFields.m +++ b/AdjustTests/AdjustUnitTests/ADJPackageFields.m @@ -16,7 +16,7 @@ - (id) init { // default values self.appToken = @"qwerty123456"; - self.clientSdk = @"ios4.25.2"; + self.clientSdk = @"ios4.26.0"; self.suffix = @""; self.environment = @"sandbox"; diff --git a/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/project.pbxproj b/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/project.pbxproj index ccd3bbd99..6de2987dc 100644 --- a/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/project.pbxproj +++ b/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/project.pbxproj @@ -474,7 +474,7 @@ 6F7AF61E211878B900F730B2 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1220; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = adjust; TargetAttributes = { 6F7AF625211878B900F730B2 = { diff --git a/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/xcshareddata/xcschemes/AdjustWebBridgeTestApp.xcscheme b/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/xcshareddata/xcschemes/AdjustWebBridgeTestApp.xcscheme index 0850107c1..3ba07743d 100644 --- a/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/xcshareddata/xcschemes/AdjustWebBridgeTestApp.xcscheme +++ b/AdjustTests/AdjustWebBridgeTestApp/AdjustWebBridgeTestApp.xcodeproj/xcshareddata/xcschemes/AdjustWebBridgeTestApp.xcscheme @@ -1,6 +1,6 @@ 4.25.2' +pod 'Adjust', '~> 4.26.0' ``` or: ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.25.2' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.0' ``` --- @@ -360,6 +361,14 @@ In case you don't want the Adjust SDK to automatically communicate with SKAdNetw [adjustConfig deactivateSKAdNetworkHandling]; ``` +### Update SKAdNetwork conversion value + +As of iOS SDK v4.26.0 you can use Adjust SDK wrapper method `updateConversionValue:` to update SKAdNetwork conversion value for your user: + +```objc +[Adjust updateConversionValue:6]; +``` + ### Event tracking You can use adjust to track events. Lets say you want to track every tap on a particular button. You would create a new event token in your [dashboard], which has an associated event token - looking something like `abc123`. In your button's `buttonDown` method you would then add the following lines to track the tap: diff --git a/VERSION b/VERSION index 526650444..06edb3873 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.25.2 +4.26.0 diff --git a/doc/chinese/README.md b/doc/chinese/README.md index 7decf6952..0efa800ce 100644 --- a/doc/chinese/README.md +++ b/doc/chinese/README.md @@ -76,13 +76,13 @@ Read this in other languages: [English][en-readme], [中文][zh-readme], [日本 如果您正在使用[CocoaPods][cocoapods],您可以将以下代码行添加至 `Podfile`,然后继续进行[此步骤](#sdk-integrate): ```ruby -pod 'Adjust', '~> 4.25.2' +pod 'Adjust', '~> 4.26.0' ``` 或: ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.25.2' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.0' ``` --- diff --git a/doc/english/migrate.md b/doc/english/migrate.md index 72228fbcf..ecdd48a58 100644 --- a/doc/english/migrate.md +++ b/doc/english/migrate.md @@ -1,4 +1,4 @@ -## Migrate your Adjust SDK for iOS to v4.25.2 from v3.4.0 +## Migrate your Adjust SDK for iOS to v4.26.0 from v3.4.0 ### Initial setup diff --git a/doc/english/web_views.md b/doc/english/web_views.md index 09ff5c071..1920a33b4 100644 --- a/doc/english/web_views.md +++ b/doc/english/web_views.md @@ -64,7 +64,7 @@ We will describe the steps to integrate the Adjust SDK into your iOS project. We If you're using [CocoaPods][cocoapods], you can add the following line to your `Podfile` and continue from [this step](#sdk-integrate): ```ruby -pod 'Adjust/WebBridge', '~> 4.25.2' +pod 'Adjust/WebBridge', '~> 4.26.0' ``` --- diff --git a/doc/japanese/README.md b/doc/japanese/README.md index f3e551619..1ec513f84 100644 --- a/doc/japanese/README.md +++ b/doc/japanese/README.md @@ -25,13 +25,13 @@ adjust SDKをiOSプロジェクトに連携する手順を説明します。 [こちらの手順](#sdk-integrate)に進んでください。 ```ruby -pod 'Adjust', '~> 4.25.2' +pod 'Adjust', '~> 4.26.0' ``` または ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.25.2' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.0' ``` --- diff --git a/doc/korean/README.md b/doc/korean/README.md index 5a84bf1de..84eaeb912 100644 --- a/doc/korean/README.md +++ b/doc/korean/README.md @@ -76,13 +76,13 @@ iOS 개발용 Xcode를 사용한다는 가정하에 iOS 프로젝트에 Adjust S [CocoaPods][cocoapods]를 사용하는 경우, 다음 내용을 `Podfile`에 추가한 후 [해당 단계](#sdk-integrate)를 완료하세요. ```ruby -pod 'Adjust', '~> 4.25.2' +pod 'Adjust', '~> 4.26.0' ``` 또는: ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.25.2' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.0' ``` --- diff --git a/doc/korean/web_views.md b/doc/korean/web_views.md index 4d82a47f9..3570f6639 100644 --- a/doc/korean/web_views.md +++ b/doc/korean/web_views.md @@ -64,7 +64,7 @@ iOS 개발용 Xcode를 사용한다는 가정하에 iOS 프로젝트에 Adjust S [CocoaPods][cocoapods]를 사용하는 경우, 다음 내용을 'Podfile'에 추가한 후 [해당 단계](#sdk-integrate)를 완료하세요. ```ruby -pod 'Adjust/WebBridge', '~> 4.25.2' +pod 'Adjust/WebBridge', '~> 4.26.0' ``` --- diff --git a/doc/migrate.md b/doc/migrate.md index 72228fbcf..ecdd48a58 100644 --- a/doc/migrate.md +++ b/doc/migrate.md @@ -1,4 +1,4 @@ -## Migrate your Adjust SDK for iOS to v4.25.2 from v3.4.0 +## Migrate your Adjust SDK for iOS to v4.26.0 from v3.4.0 ### Initial setup diff --git a/examples/AdjustExample-FbPixel/AdjustExample-FbPixel.xcodeproj/project.pbxproj b/examples/AdjustExample-FbPixel/AdjustExample-FbPixel.xcodeproj/project.pbxproj index 843da3d04..f16e7d29e 100644 --- a/examples/AdjustExample-FbPixel/AdjustExample-FbPixel.xcodeproj/project.pbxproj +++ b/examples/AdjustExample-FbPixel/AdjustExample-FbPixel.xcodeproj/project.pbxproj @@ -379,7 +379,7 @@ 9D9D1526212EB3920081445E /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1220; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = "Adjust GmbH"; TargetAttributes = { 9D9D152D212EB3920081445E = { diff --git a/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/project.pbxproj b/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/project.pbxproj index a2d19770e..025a6dc6e 100644 --- a/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/project.pbxproj +++ b/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/project.pbxproj @@ -343,7 +343,7 @@ 963909341BCBFCF300A2E8A4 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1220; + LastUpgradeCheck = 1240; ORGANIZATIONNAME = adjust; TargetAttributes = { 9639093B1BCBFCF300A2E8A4 = { diff --git a/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/xcshareddata/xcschemes/AdjustExample-ObjC.xcscheme b/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/xcshareddata/xcschemes/AdjustExample-ObjC.xcscheme index 359453f3c..6c15a64c7 100644 --- a/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/xcshareddata/xcschemes/AdjustExample-ObjC.xcscheme +++ b/examples/AdjustExample-ObjC/AdjustExample-ObjC.xcodeproj/xcshareddata/xcschemes/AdjustExample-ObjC.xcscheme @@ -1,6 +1,6 @@