diff --git a/Adjust.podspec b/Adjust.podspec index 15c1165fc..9b6733404 100644 --- a/Adjust.podspec +++ b/Adjust.podspec @@ -1,11 +1,11 @@ Pod::Spec.new do |s| s.name = "Adjust" - s.version = "4.26.1" + s.version = "4.27.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.26.1" } + s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.27.0" } s.ios.deployment_target = '6.0' s.tvos.deployment_target = '9.0' s.framework = 'SystemConfiguration' diff --git a/Adjust/ADJActivityHandler.m b/Adjust/ADJActivityHandler.m index 7dc92a771..d7e266a4f 100644 --- a/Adjust/ADJActivityHandler.m +++ b/Adjust/ADJActivityHandler.m @@ -1725,9 +1725,11 @@ - (BOOL)shouldFetchAdServicesI:(ADJActivityHandler *)selfI { - (void)checkForAdServicesAttributionI:(ADJActivityHandler *)selfI { if (@available(iOS 14.3, tvOS 14.3, *)) { if ([selfI shouldFetchAdServicesI:selfI]) { - NSError *error = nil; - NSString *token = [[UIDevice currentDevice] adjFetchAdServicesAttribution:&error]; - [selfI setAdServicesAttributionToken:token error:error]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSError *error = nil; + NSString *token = [[UIDevice currentDevice] adjFetchAdServicesAttribution:&error]; + [selfI setAdServicesAttributionToken:token error:error]; + }); } } } diff --git a/Adjust/ADJPackageBuilder.m b/Adjust/ADJPackageBuilder.m index 25c135eba..88beba644 100644 --- a/Adjust/ADJPackageBuilder.m +++ b/Adjust/ADJPackageBuilder.m @@ -1088,7 +1088,7 @@ - (NSMutableDictionary *)getMeasurementConsentParameters:(BOOL)enabled { NSString *enableValue = enabled ? @"enable" : @"disable"; [ADJPackageBuilder parameters:parameters setString:enableValue - forKey:@"sharing"]; + forKey:@"measurement"]; if ([self.trackingStatusManager canGetAttStatus]) { [ADJPackageBuilder parameters:parameters setInt:self.trackingStatusManager.attStatus diff --git a/Adjust/ADJRequestHandler.m b/Adjust/ADJRequestHandler.m index c29431937..f15761ac6 100644 --- a/Adjust/ADJRequestHandler.m +++ b/Adjust/ADJRequestHandler.m @@ -183,7 +183,7 @@ - (void)sendNSURLSessionRequest:(NSMutableURLRequest *)request [self.logger debug:@"Request succeeded with current URL strategy"]; [self.urlStrategy resetAfterSuccess]; [self.responseCallback responseCallback:responseData]; - } else if ([self.urlStrategy shouldRetryAfterFailure]) { + } else if ([self.urlStrategy shouldRetryAfterFailure:responseData.activityKind]) { [self.logger debug:@"Request failed with current URL strategy, but it will be retried with new one"]; [self retryWithResponseData:responseData methodTypeInfo:methodTypeInfo]; @@ -260,7 +260,7 @@ - (void)sendNSURLConnectionRequest:(NSMutableURLRequest *)request [self.logger debug:@"succeeded with current url strategy"]; [self.urlStrategy resetAfterSuccess]; [self.responseCallback responseCallback:responseData]; - } else if ([self.urlStrategy shouldRetryAfterFailure]) { + } else if ([self.urlStrategy shouldRetryAfterFailure:responseData.activityKind]) { [self.logger debug:@"failed with current url strategy, but it will retry with new"]; [self retryWithResponseData:responseData methodTypeInfo:methodTypeInfo]; @@ -393,6 +393,9 @@ - (void)handleResponseWithData:(NSData *)data NSString *urlString = [NSString stringWithFormat:@"%@%@%@?%@", urlHostString, self.urlStrategy.extraPath, path, queryStringParameters]; + + [self.logger verbose:@"Sending request to endpoint: %@", + [NSString stringWithFormat:@"%@%@%@", urlHostString, self.urlStrategy.extraPath, path]]; // [self.logger verbose:@"requestForGetPackage with urlString: %@", urlString]; diff --git a/Adjust/ADJUrlStrategy.h b/Adjust/ADJUrlStrategy.h index 146c9c66a..771297a55 100644 --- a/Adjust/ADJUrlStrategy.h +++ b/Adjust/ADJUrlStrategy.h @@ -19,6 +19,6 @@ - (NSString *)getUrlHostStringByPackageKind:(ADJActivityKind)activityKind; - (void)resetAfterSuccess; -- (BOOL)shouldRetryAfterFailure; +- (BOOL)shouldRetryAfterFailure:(ADJActivityKind)activityKind; @end diff --git a/Adjust/ADJUrlStrategy.m b/Adjust/ADJUrlStrategy.m index 7fb65deda..3bd40b5a3 100644 --- a/Adjust/ADJUrlStrategy.m +++ b/Adjust/ADJUrlStrategy.m @@ -22,6 +22,18 @@ static NSString * const gdprUrlChina = @"https://gdpr.adjust.world"; static NSString * const subscritionUrlChina = @"https://subscription.adjust.world"; +static NSString * const baseUrlEU = @"https://app.eu.adjust.com"; +static NSString * const gdprUrlEU = @"https://gdpr.eu.adjust.com"; +static NSString * const subscriptionUrlEU = @"https://subscription.eu.adjust.com"; + +static NSString * const baseUrlTR = @"https://app.tr.adjust.com"; +static NSString * const gdprUrlTR = @"https://gdpr.tr.adjust.com"; +static NSString * const subscriptionUrlTR = @"https://subscription.tr.adjust.com"; + +static NSString * const baseUrlUS = @"https://app.us.adjust.com"; +static NSString * const gdprUrlUS = @"https://gdpr.us.adjust.com"; +static NSString * const subscriptionUrlUS = @"https://subscription.us.adjust.com"; + @interface ADJUrlStrategy () @property (nonatomic, copy) NSArray *baseUrlChoicesArray; @@ -71,6 +83,8 @@ - (instancetype)initWithUrlStrategyInfo:(NSString *)urlStrategyInfo return @[baseUrlIndia, baseUrl]; } else if ([urlStrategyInfo isEqualToString:ADJUrlStrategyChina]) { return @[baseUrlChina, baseUrl]; + } else if ([urlStrategyInfo isEqualToString:ADJDataResidencyEU]) { + return @[baseUrlEU]; } else { return @[baseUrl, baseUrlIndia, baseUrlChina]; } @@ -82,6 +96,8 @@ - (instancetype)initWithUrlStrategyInfo:(NSString *)urlStrategyInfo return @[gdprUrlIndia, gdprUrl]; } else if ([urlStrategyInfo isEqualToString:ADJUrlStrategyChina]) { return @[gdprUrlChina, gdprUrl]; + } else if ([urlStrategyInfo isEqualToString:ADJDataResidencyEU]) { + return @[gdprUrlEU]; } else { return @[gdprUrl, gdprUrlIndia, gdprUrlChina]; } @@ -93,6 +109,8 @@ - (instancetype)initWithUrlStrategyInfo:(NSString *)urlStrategyInfo return @[subscritionUrlIndia, subscriptionUrl]; } else if ([urlStrategyInfo isEqualToString:ADJUrlStrategyChina]) { return @[subscritionUrlChina, subscriptionUrl]; + } else if ([urlStrategyInfo isEqualToString:ADJDataResidencyEU]) { + return @[subscriptionUrlEU]; } else { return @[subscriptionUrl, subscritionUrlIndia, subscritionUrlChina]; } @@ -125,12 +143,21 @@ - (void)resetAfterSuccess { self.wasLastAttemptSuccess = YES; } -- (BOOL)shouldRetryAfterFailure { - NSUInteger nextChoiceIndex = (self.choiceIndex + 1) % self.baseUrlChoicesArray.count; - self.choiceIndex = nextChoiceIndex; - +- (BOOL)shouldRetryAfterFailure:(ADJActivityKind)activityKind { self.wasLastAttemptSuccess = NO; + NSUInteger choiceListSize; + if (activityKind == ADJActivityKindGdpr) { + choiceListSize = [_gdprUrlChoicesArray count]; + } else if (activityKind == ADJActivityKindSubscription) { + choiceListSize = [_subscriptionUrlChoicesArray count]; + } else { + choiceListSize = [_baseUrlChoicesArray count]; + } + + NSUInteger nextChoiceIndex = (self.choiceIndex + 1) % choiceListSize; + self.choiceIndex = nextChoiceIndex; + BOOL nextChoiceHasNotReturnedToStartingChoice = self.choiceIndex != self.startingChoiceIndex; return nextChoiceHasNotReturnedToStartingChoice; } diff --git a/Adjust/ADJUtil.m b/Adjust/ADJUtil.m index 6258d2395..a4507c4d8 100644 --- a/Adjust/ADJUtil.m +++ b/Adjust/ADJUtil.m @@ -37,7 +37,7 @@ static CTTelephonyNetworkInfo *networkInfo = nil; #endif -static NSString * const kClientSdk = @"ios4.26.1"; +static NSString * const kClientSdk = @"ios4.27.0"; static NSString * const kDeeplinkParam = @"deep_link="; static NSString * const kSchemeDelimiter = @"://"; static NSString * const kDefaultScheme = @"AdjustUniversalScheme"; diff --git a/Adjust/Adjust.h b/Adjust/Adjust.h index 29461674f..9f4fe2899 100644 --- a/Adjust/Adjust.h +++ b/Adjust/Adjust.h @@ -2,7 +2,7 @@ // Adjust.h // Adjust // -// V4.26.1 +// V4.27.0 // Created by Christian Wellenbrock (wellle) on 23rd July 2013. // Copyright © 2012-2017 Adjust GmbH. All rights reserved. // @@ -67,6 +67,7 @@ extern NSString * __nonnull const ADJAdRevenueSourceTapdaq; */ extern NSString * __nonnull const ADJUrlStrategyIndia; extern NSString * __nonnull const ADJUrlStrategyChina; +extern NSString * __nonnull const ADJDataResidencyEU; /** * @brief The main interface to Adjust. diff --git a/Adjust/Adjust.m b/Adjust/Adjust.m index b0004b5fb..208e35343 100644 --- a/Adjust/Adjust.m +++ b/Adjust/Adjust.m @@ -44,6 +44,7 @@ NSString * const ADJUrlStrategyIndia = @"UrlStrategyIndia"; NSString * const ADJUrlStrategyChina = @"UrlStrategyChina"; +NSString * const ADJDataResidencyEU = @"DataResidencyEU"; @implementation AdjustTestOptions @end diff --git a/AdjustBridge/AdjustBridgeRegister.m b/AdjustBridge/AdjustBridgeRegister.m index 0be449c7d..8d0586d64 100644 --- a/AdjustBridge/AdjustBridgeRegister.m +++ b/AdjustBridge/AdjustBridgeRegister.m @@ -246,7 +246,7 @@ + (NSString *)adjust_js { if (this.sdkPrefix) { return this.sdkPrefix; } else { - return 'web-bridge4.26.1'; + return 'web-bridge4.27.0'; } }, setTestOptions: function(testOptions) { @@ -361,6 +361,7 @@ + (NSString *)adjust_js { AdjustConfig.UrlStrategyIndia = 'UrlStrategyIndia'; AdjustConfig.UrlStrategyChina = 'UrlStrategyChina'; + AdjustConfig.DataResidencyEU = 'DataResidencyEU'; AdjustConfig.prototype.registerCallbackHandlers = function() { var registerCallbackHandler = function(callbackName) { diff --git a/AdjustTests/AdjustUnitTests/ADJPackageFields.m b/AdjustTests/AdjustUnitTests/ADJPackageFields.m index 2bacaee4e..4d1d12ed1 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.26.1"; + self.clientSdk = @"ios4.27.0"; self.suffix = @""; self.environment = @"sandbox"; diff --git a/CHANGELOG.md b/CHANGELOG.md index 8441139a4..0dfff7847 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +### Version 4.27.0 (17th March 2021) + +#### Added +- Added data residency feature. Support for EU data residency region is added. You can choose this setting by calling `setUrlStrategy:` method of `ADJConfig` instance with `ADJDataResidencyEU` parameter. + +#### Changed +- Changed the measurement consent parameter name from `sharing` to `measurement`. + +--- + ### Version 4.26.1 (5th February 2021) #### Fixed diff --git a/README.md b/README.md index e938eb69a..f2cd700d5 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Read this in other languages: [English][en-readme], [中文][zh-readme], [日本 * [Deep linking on iOS 9 and later](#deeplinking-setup-new) * [Deferred deep linking scenario](#deeplinking-deferred) * [Reattribution via deep links](#deeplinking-reattribution) + * [Data residency](#data-residency) * [Troubleshooting](#troubleshooting) * [Issues with delayed SDK initialisation](#ts-delayed-init) * [I'm seeing "Adjust requires ARC" error](#ts-arc) @@ -83,13 +84,13 @@ 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', '~> 4.26.1' +pod 'Adjust', '~> 4.27.0' ``` or: ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.1' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.27.0' ``` --- @@ -128,8 +129,8 @@ If you are having `iMessage` app, you can use the Adjust SDK with it as well wit Adjust SDK is able to get additional information in case you link additional iOS frameworks to your app. Please, add following frameworks in case you want to enable Adjust SDK features based on their presence in your app and mark them as optional: - `AdSupport.framework` - This framework is needed so that SDK can access to IDFA value and (prior to iOS 14) LAT information. -- `iAd.framework` - This framework is needed so that SDK can automatically handle attribution for ASA campaings you might be running (to be deprecated in the future in favour of `AdServices.framework`). -- `AdServices.framework` - This framework is needed so that SDK can automatically handle attribution for ASA campaings you might be running. +- `iAd.framework` - This framework is needed so that SDK can automatically handle attribution for ASA campaigns you might be running (to be deprecated in the future in favour of `AdServices.framework`). +- `AdServices.framework` - This framework is needed so that SDK can automatically handle attribution for ASA campaigns you might be running. - `CoreTelephony.framework` - This framework is needed so that SDK can determine current radio access technology. - `StoreKit.framework` - This framework is needed for access to `SKAdNetwork` framework and for Adjust SDK to handle communication with it automatically in iOS 14 or later. - `AppTrackingTransparency.framework` - This framework is needed in iOS 14 and later for SDK to be able to wrap user's tracking consent dialog and access to value of the user's consent to be tracked or not. @@ -1038,6 +1039,12 @@ The call to `appWillOpenUrl` should be done like this to support deep linking re } ``` +### Data residency + +In order to enable data residency feature, make sure to make a call to `setUrlStrategy:` method of the `ADJConfig` instance with one of the following constants: + +- `ADJDataResidencyEU` for EU data residency region. + ## Troubleshooting ### Issues with delayed SDK initialisation diff --git a/VERSION b/VERSION index b02da5e24..02bb6671c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.26.1 +4.27.0 diff --git a/doc/chinese/README.md b/doc/chinese/README.md index 6c4d64b2d..fe04e551c 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.26.1' +pod 'Adjust', '~> 4.27.0' ``` 或: ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.1' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.27.0' ``` --- @@ -111,12 +111,13 @@ github "adjust/ios_sdk" ### 添加 iOS 框架 -如果您关联额外的 iOS 框架到应用中,Adjust SDK 将能获取更多的信息。请根据应用启用 Adjust SDK 功能的情况,添加下列框架: +如果您关联额外的 iOS 框架到应用中,Adjust SDK 将能获取更多的信息。请根据应用启用 Adjust SDK 功能的情况,添加下列框架,并将其标记为 "可选" (optional): -- `AdSupport.framework` - 如果您希望 SDK 能访问 IDFA 值和 (iOS 14 以前) LAT 信息,请添加该框架。 -- `iAd.framework` - 如果您希望 SDK 自动处理您的 ASA 推广活动归因数据,请添加该框架。 -- `CoreTelephony.framework`- 如果您希望 SDK 能辨识当前的无线接入技术,请添加该框架。 -- `StoreKit.framework`- 如果您希望访问 `SKAdNetwork` 框架,同时让 Adjust SDK 在 iOS 14 或未来版本的 iOS 中自动处理与该框架的通讯,请添加该框架。 +- `AdSupport.framework` - 请务必添加该框架,让SDK 能访问 IDFA 值和 (iOS 14 以前的) LAT 信息。 +- `iAd.framework` - 如果您希望 SDK 自动处理您的 ASA 推广活动归因数据,请添加该框架 (未来将替换为 `AdServices.framework`)。 +- `AdServices.framework`- 如果您希望 SDK 自动处理您的 ASA 推广活动归因数据,请添加该框架。 +- `CoreTelephony.framework`- 如果您希望 SDK 能辨识当前的无线接入技术 (radio access),请添加该框架。 +- `StoreKit.framework`- 如果您希望访问 `SKAdNetwork` 框架,同时让 Adjust SDK 在 iOS 14 或未来版本的 iOS 中自动处理与`SKAdNetwork` 的通讯,请添加该框架。 - `AppTrackingTransparency.framework` - 如果您希望 SDK 能在 iOS 14 或未来版本的 iOS 中包装用户的跟踪许可对话框,并访问用户跟踪许可的值,请添加该框架。 ### 集成SDK至您的应用 diff --git a/doc/english/migrate.md b/doc/english/migrate.md index b62a5448b..631bc0024 100644 --- a/doc/english/migrate.md +++ b/doc/english/migrate.md @@ -1,4 +1,4 @@ -## Migrate your Adjust SDK for iOS to v4.26.1 from v3.4.0 +## Migrate your Adjust SDK for iOS to v4.27.0 from v3.4.0 ### Initial setup diff --git a/doc/english/web_views.md b/doc/english/web_views.md index 314305c09..003190867 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.26.1' +pod 'Adjust/WebBridge', '~> 4.27.0' ``` --- diff --git a/doc/japanese/README.md b/doc/japanese/README.md index a96a4764a..5009ef05f 100644 --- a/doc/japanese/README.md +++ b/doc/japanese/README.md @@ -25,13 +25,13 @@ adjust SDKをiOSプロジェクトに連携する手順を説明します。 [こちらの手順](#sdk-integrate)に進んでください。 ```ruby -pod 'Adjust', '~> 4.26.1' +pod 'Adjust', '~> 4.27.0' ``` または ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.1' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.27.0' ``` --- @@ -68,6 +68,7 @@ StaticかDynamicフレームワークを選択し、プロジェクトに追加 - `AdSupport.framework` - SDKがIDFA値および(iOS 14より前の)LAT情報を呼び出せるようにします。 - `iAd.framework` - SDKが実行中のASAキャンペーンのアトリビューションを自動的に処理できるようにします。 +- `AdServices.framework`- SDKが実行中のASAキャンペーンのアトリビューションを自動的に処理できるようにします。 - `CoreTelephony.framework`- SDKが現在のRadio Access Technology(無線アクセス技術)を判別できるようにします。 - `StoreKit.framework`- iOS 14またはそれ以降において、このフレームワークは「SKAdNetwork」のフレームワークにアクセスし、「SKAdNetwork」との通信をAdjust SDKで自動的に処理できるようにします。 - `AppTrackingTransparency.framework` -iOS 14またはそれ以降において、このフレームワークはSDKがトラッキングに対するユーザー同意を確認するダイアログをラップし、ユーザーの許諾状況を示す値にアクセスできるようにします。 diff --git a/doc/japanese/web_views.md b/doc/japanese/web_views.md index 6dedd2209..562ccc707 100644 --- a/doc/japanese/web_views.md +++ b/doc/japanese/web_views.md @@ -103,50 +103,39 @@ setupWebViewJavascriptBridge(function(bridge) { ![][bridge_init_js] -### Basic setup - -HTMLファイル内でadjust Javascriptファイルへの参照を追加してください。 - -```html - - - -``` - -Javascriptファイルへの参照を追加すると、HTMLファイル内で使えるようになり、adjust SDKを初期化することができます。 +### 基本設定 +同じHTMLファイルから、`setupWebViewJavascriptBridge`コールバック内でAdjust SDKを初期化してください。 ```js setupWebViewJavascriptBridge(function(bridge) { // ... - var yourAppToken = '{YourAppToken}' - var environment = AdjustConfig.EnvironmentSandbox - var adjustConfig = new AdjustConfig(bridge, yourAppToken, environment) + var yourAppToken = yourAppToken; + var environment = AdjustConfig.EnvironmentSandbox; + var adjustConfig = new AdjustConfig(yourAppToken, environment); - Adjust.appDidLaunch(adjustConfig) + Adjust.appDidLaunch(adjustConfig); // ... -)} +}); ``` -![][bridge_init_js_xcode] +**注**: Adjust SDKをこの手順に沿って初期化することが非常に重要です。この方法をとらない場合、問題が発生するおそれがありますのでご注意ください。 -`{YourAppToken}`にアプリトークンを入力してください。これはダッシュボードで確認できます。 +`yourAppToken` にアプリトークンを入れてください。これはAdjust管理画面で確認することができます。 -テスト用か本番用かによって、`environment`を以下のいずれかの値に設定してください。 +テスト用かあるいは本番用かによって、environmentを以下のいずれかの値に設定してください。 ```js -var environment = AdjustConfig.EnvironmentSandbox -var environment = AdjustConfig.EnvironmentProduction +var environment = AdjustConfig.EnvironmentSandbox; +var environment = AdjustConfig.EnvironmentProduction; ``` -**重要** この値はどなたかがアプリをテストしている時に限り`AdjustConfig.EnvironmentSandbox`に設定する必要があります。 -アプリを提出する前に、`AdjustConfig.EnvironmentProduction`になっていることを確認してください。 -再び開発しテストをする時に`AdjustConfig.EnvironmentSandbox`に戻してください。 +**重要**: この値はアプリをテストしている時に限り`AdjustConfig.EnvironmentSandbox` に設定する必要があります。 アプリを提出する前に、`AdjustConfig.EnvironmentProduction` になっていることを確認 +してください。 再び開発しテストをする時に`AdjustConfig.EnvironmentSandbox`に戻してください。 -adjustはこの変数を使って実際のトラフィックとテストのトラフィックを判別しています。 -この値は常に正しく設定することが重要です。収益データをトラッキングする際は特にご留意ください。 +Adjustはこのenvironmentを使って実際のトラフィックとテストのトラフィックを判別しています。 この値は常に正しく設定することが重要です。収益データをトラッキングする際は特にご留意ください。 ### AdjustBridgeログ diff --git a/doc/korean/README.md b/doc/korean/README.md index 95b82c339..af28581fa 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.26.1' +pod 'Adjust', '~> 4.27.0' ``` 또는: ```ruby -pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.26.1' +pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.27.0' ``` --- @@ -110,10 +110,11 @@ Apple은 iOS 8을 출시한 후, 임베디드 프레임워크로도 잘 알려 ### iOS 프레임워크 추가 -추가 iOS 프레임워크를 앱에 연결할 경우 Adjust SDK가 추가 정보를 얻을 수 있습니다. Adjust SDK 기능을 활성화하려는 경우 앱의 SDK 기능 유무에 따라 다음 프레임워크를 추가하세요. +추가 iOS 프레임워크를 앱에 연결할 경우 애드저스트 SDK가 추가 정보를 얻을 수 있습니다. 애드저스트 SDK 기능을 활성화하려는 경우 앱의 SDK 기능 유무에 따라 다음의 프레임워크를 추가하고 이를 선택으로 설정하시기 바랍니다. - `AdSupport.framework` - SDK가 IDFA 값 및 (iOS 14 이전 버전) LAT 정보에 액세스하려면 이 프레임워크가 필요합니다. -- `iAd.framework` - SDK가 실행 중인 ASA 캠페인에 대한 속성을 자동으로 처리하려면 이 프레임워크가 필요합니다. +- `iAd.framework` - SDK가 자동으로 ASA 캠페인에 대한 어트리뷰션을 처리하려면 본 프레임워크가 필요합니다. (이후 `AdServices.framework`를 위해 지원 중지 예정) +- `AdServices.framework` - SDK가 자동으로 ASA 캠페인에 대한 어트리뷰션을 처리하려면 본 프레임워크가 필요합니다. - `CoreTelephony.framework` - SDK가 현재의 무선 액세스 기술을 결정하려면 이 프레임워크가 필요합니다. - `StoreKit.framework` - `SKAdNetwork` 프레임워크에 액세스하고 Adjust SDK가 iOS 14 및 이후 버전에서 통신을 자동으로 처리하려면 이 프레임워크가 필요합니다. - `AppTrackingTranspaintency.framework` - iOS 14 및 이후 버전에서 SDK가 사용자의 추적 동의 다이얼로그를 래핑하고, 추적 여부에 대한 사용자의 동의 값에 대한 액세스를 위해 이 프레임워크가 필요합니다. diff --git a/doc/korean/web_views.md b/doc/korean/web_views.md index 47f63becc..c0c6b12da 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.26.1' +pod 'Adjust/WebBridge', '~> 4.27.0' ``` --- diff --git a/doc/migrate.md b/doc/migrate.md index b62a5448b..631bc0024 100644 --- a/doc/migrate.md +++ b/doc/migrate.md @@ -1,4 +1,4 @@ -## Migrate your Adjust SDK for iOS to v4.26.1 from v3.4.0 +## Migrate your Adjust SDK for iOS to v4.27.0 from v3.4.0 ### Initial setup