Adjust iOS SDK를 사용하면 iOS 앱에서 어트리뷰션, 이벤트 등을 기록할 수 있습니다. 이 가이드에서는 Adjust SDK를 앱과 연동하는 방법이 다루어집니다.
시작에 앞서 SDK v5로 업데이트하기 전에 다음을 수행하시기 바랍니다.
SDK v5는 SDK Signature(SDK 서명) 인증 을 기본적으로 지원합니다. 현재 SDK 서명 라이브러리를 사용하는 경우 먼저 이것을 삭제해야 합니다.
앱이 12.0 보다 낮은 버전의 iOS 또는 tvOS를 대상으로 하는 경우 SDK v5를 사용하려면 앱을 업데이트해야 합니다.
1. 프로젝트에 SDK 추가 iOS 앱에서 Adjust SDK를 사용하려면 우선 Xcode 프로젝트에 Adjust SDK를 추가해야 합니다.
Swift 패키지 매니저를 사용하여 SDK를 추가하는 경우:
File —> Swift Packages —> Add Package Dependency 를 선택합니다.
나타나는 창에 SDK의 GitHub 주소를 입력합니다. https://github.com/adjust/ios_sdk
버전 드롭다운 메뉴에서 사용을 원하는 Adjust SDK 버전을 선택합니다. 최신 버전은 배포 페이지 에서 확인하실 수 있습니다.
대체 설치 방법 Cocoapods를 사용하여 SDK를 추가하려면 Podfile
에서 사용하고자 하는 버전을 명시합니다:
# Get pod from repository
# Get source directly from GitHub
pod 'Adjust' , :git => 'https://github.com/adjust/ios_sdk.git' , :tag => 'v5.0.0'
앱에서 웹뷰를 사용하는 경우 다음을 추가하여 Adjust Web Bridge를 추가해야 합니다:
pod 'Adjust/AdjustWebBridge' , :git => 'https://github.com/adjust/ios_sdk.git' , :tag => 'v5.0.0'
Carthage를 사용하여 SDK를 추가하려면 Cartfile
에 다음을 추가합니다.
2. Adjust SDK 연동 Xcode
프로젝트에 Adjust SDK를 추가하고 나면 앱에 연동해야 합니다.
프로젝트 파일에 관련 가져오기 명령어를 추가합니다.
Adjust SDK를 가져오기하려면 다음을 브리징 헤더 파일에 추가합니다.
Adjust SDK를 가져오기하려면, 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdk/AdjustSdk.h>
3. iOS 프레임워크 추가 Adjust SDK는 특정 기기 정보 액세스를 위해 프레임워크에 의존합니다. 이 정보 읽기를 활성화하려면 프레임워크를 추가하고 프레임워크를 옵션 으로 표시하시기 바랍니다.
프레임워크 설명 참고 사항 AdSupport.framework
디바이스 IDFA에 대한 액세스와, iOS 14 이하 버전의 기기에서 LAT에 대한 액세스도 활성화합니다. 앱이 “아동” 카테고리를 타겟으로 하는 경우 이 프레임워크를 추가하지 않습니다. AdServices.framework
ASA 어트리뷰션을 취급합니다. StoreKit.framework
SKAdNetwork 프레임워크에 대한 액세스를 활성화합니다. Adjust SDK가 iOS 14 이상 버전의 기기에서 SKAdNetwork와의 커뮤니케이션을 처리하도록 허용하기 위해 필요합니다. AppTrackingTransparency.framework
Adjust SDK가 iOS 14 이상 버전의 기기에서 사용자 ATT 동의 다이얼로그 및 액세스 동의 응답을 래핑하도록 허용하기 위해 필요합니다. 앱이 “아동” 카테고리를 타겟으로 하는 경우 이 프레임워크를 추가하지 않습니다. WebKit.framework
애플리케이션의 웹뷰 사용을 활성화합니다. 앱이 웹뷰를 사용하는 경우에만 필요합니다.
4. SDK 서명 설정 SDK v5는 SDK Signature 라이브러리 를 포함합니다. 서명 보호는 기본 설정에 따라 비활성화되어 있습니다. 이를 활성화하려면 서명 검증을 시행 해야 합니다.
5. (선택 사항) Adjust Web Bridge 설정 앱이 웹뷰를 사용하는 경우 Adjust Web Bridge를 설정해 웹뷰 내 활동을 기록해야 합니다.
앱에 AdjustBridge
연동 Project Navigator:
View Controller의 소스 파일을 엽니다.
파일 가장 위에 import
명령어를 추가합니다.
AdjustBridge
에 대해 웹뷰 델리게이트의 viewDidLoad
또는 viewWillAppear
메서드에서 다음의 콜을 추가합니다.
func viewWillAppear ( _ animated: Bool ) {
let webView = WKWebView ( frame : view.bounds)
// add var adjustBridge: AdjustBridge? on your interface
adjustBridge. loadWKWebViewBridge (webView)
#import "<AdjustSdk/AdjustSdk.h>"
- ( void )viewWillAppear:( BOOL )animated {
WKWebView * webView = [[WKWebView alloc ] initWithFrame:self .view.bounds];
// add @property (nonatomic, strong) AdjustBridge *adjustBridge; on your interface
[ self .adjustBridge loadWKWebViewBridge: webView];
AdjustBridge
를 웹뷰에 연동웹뷰에서 자바스크립트 브릿지를 사용하려면 브릿지를 구성해야 합니다. 다음 자바스크립트 코드를 추가하여 Adjust iOS 웹브릿지를 초기화합니다:
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig (yourAppToken, environment);
Adjust. initSdk (adjustConfig);
5. Adjust SDK 초기화 Adjust SDK를 초기화하려면 config 객체를 만들어야 합니다. 이 객체에는 Adjust SDK 행동을 통제하는 구성 옵션이 포함되어 있습니다. 최소 설정을 위한 다음 인수를 전달합니다.
appToken
: Your app’s token .
environment
: The environment you want to run the SDK in. Set this to ADJEnvironmentSandbox
.
이 config 객체로 Adjust SDK 초기화:
앱 델리게이트의 didFinishLaunching
또는 didFinishLaunchingWithOptions
메서드의 config 개체를 선언합니다.
ADJLogLevelVerbose
(verbose)에 config 개체의 logLevel
속성을 설정합니다. 디바이스 정보를 검색하려면 verbose 로깅을 활성화해야 합니다.
initSdk
메서드에 인수로 config 개체를 전달합니다.
func application ( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any ] ? ) -> Bool {
// Override point for customization after application launch.
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox
let adjustConfig = ADJConfig ( appToken : yourAppToken,
environment : environment)
Adjust. initSdk (adjustConfig)
#import <AdjustSdk/AdjustSdk.h>
- ( BOOL )application:(UIApplication * )application didFinishLaunchingWithOptions:( NSDictionary * )launchOptions {
NSString * yourAppToken = @"{YourAppToken}" ;
NSString * environment = ADJEnvironmentSandbox;
ADJConfig * adjustConfig = [[ADJConfig alloc ] initWithAppToken: appToken
environment: environment];
[Adjust initSdk: adjustConfig];
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig (yourAppToken, environment);
Adjust. initSdk (adjustConfig);
iMessage 앱 설정 iMessage 확장 프로그램은 앱과 다른 번들 식별자를 가지며 다른 메모리 공간에서 실행됩니다. 동일한 토큰으로 두 가지를 모두 설정하는 경우 SDK는 혼합 데이터를 반환합니다. 따라서 Adjust 대시보드에서 iMessage 앱 전용으로 별도의 앱을 생성해야 하며, Adjust SDK를 초기화할 때 해당 토큰을 사용해야 합니다.
앱이 iMessage를 타겟으로 하는 경우 설정해야 하는 추가적인 설정이 몇 가지 있습니다.
소스에서 Adjust SDK를 추가한 경우, iMessage 프로젝트 설정에 ADJUST_IM=1
프리프로세서 매크로를 추가합니다.
Adjust SDK를 프레임워크로 추가한 경우, Build Phases 프로젝트 설정에 New Copy Files Phase 를 추가해야 합니다. 프레임워크 폴더에 복사될 AdjustSdkIm.framework
를 설정합니다.
세션 기록 Adjust SDK는 iMessage 앱에서 iOS 시스템 알림을 구독하지 않습니다. 앱이 포그라운드에 진입했거나 나간 경우 Adjust SDK에 알리려면 trackSubsessionStart
및 trackSubsessionEnd
메서드를 콜해야 합니다.
didBecomeActiveWithConversation:
메서드 안의 trackSubsessionStart
에 콜을 추가합니다.
func didBecomeActive ( with conversation: MSConversation) {
// Called when the extension is about to move from the inactive to active state.
// This will happen when the extension is about to present UI.
// Use this method to configure the extension and restore previously stored state.
Adjust. trackSubsessionStart ()
- ( void )didBecomeActiveWithConversation:(MSConversation * )conversation {
// Called when the extension is about to move from the inactive to active state.
// This will happen when the extension is about to present UI.
// Use this method to configure the extension and restore previously stored state.
[Adjust trackSubsessionStart ];
willResignActiveWithConversation:
메서드 안의 trackSubsessionEnd
에 콜을 추가합니다.
func willResignActive ( with conversation: MSConversation) {
// Called when the extension is about to move from the active to inactive state.
// This will happen when the user dismisses the extension, changes to a different
// conversation or quits Messages.
// Use this method to release shared resources, save user data, invalidate timers,
// and store enough state information to restore your extension to its current state
// in case it is terminated later.
Adjust. trackSubsessionEnd ()
- ( void )willResignActiveWithConversation:(MSConversation * )conversation {
// Called when the extension is about to move from the active to inactive state.
// This will happen when the user dismisses the extension, changes to a different
// conversation or quits Messages.
// Use this method to release shared resources, save user data, invalidate timers,
// and store enough state information to restore your extension to its current state
// in case it is terminated later.
[Adjust trackSubsessionEnd ];
config 개체와 초기화 로직을 추가하고 나면 Adjust SDK를 설정해 앱의 다양한 부분에 대한 정보를 기록할 수 있습니다. 구성 참조 및 기능 가이드 를 확인하여 기록할 항목을 정확히 설정합니다.
7. Adjust SDK 테스트 Adjust SDK를 설정해 앱 정보를 기록할 수 있으므로 이제 테스트할 차례입니다. Adjust는 앱 테스트에 도움이 되는 테스팅 콘솔 과 Device API 를 제공합니다.
테스트 가이드 를 따라 Adjust가 앱에서 예상값을 수신하는지 확인합니다.
8. 프로덕션을 위한 앱 빌드 테스트를 완료한 후에 프로덕션을 위한 앱을 빌드할 수 있습니다. 이를 위해 config 객체를 업데이트해야 합니다.
다음 값 업데이트:
environment
: Set this to ADJEnvironmentProduction
.
logLevel
: Choose a logging level , or disable logging completely by passing an allowSuppressLogLevel
argument in your config object.
func application ( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any ] ? ) -> Bool {
// Override point for customization after application launch.
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentProduction
let adjustConfig = ADJConfig (
environment : environment,
adjustConfig ? .logLevel = ADJLogLevel.verbose
Adjust. initSdk (adjustConfig)
#import <AdjustSdk/AdjustSdk.h>
- ( BOOL )application:(UIApplication * )application didFinishLaunchingWithOptions:( NSDictionary * )launchOptions {
NSString * yourAppToken = @"{YourAppToken}" ;
NSString * environment = ADJEnvironmentSandbox;
ADJConfig * adjustConfig = [[ADJConfig alloc ] initWithAppToken: appToken
[adjustConfig setLogLevel: ADJLogLevelVerbose];
[Adjust initSdk: adjustConfig];
디버그 빌드 또는 프로덕션 빌드를 만들지 여부에 따라 Xcode
빌드 플래그를 사용해 config를 동적으로 업데이트할 수 있습니다.
func application ( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any ] ? ) -> Bool {
// Override point for customization after application launch.
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox
let adjustConfig = ADJConfig (
environment : environment)
adjustConfig ? .logLevel = ADJLogLevel.verbose
let environment = ADJEnvironmentProduction
let adjustConfig = ADJConfig (
environment : environment)
adjustConfig ? .logLevel = ADJLogLevel.suppress
Adjust. initSdk (adjustConfig)
#import <AdjustSdk/AdjustSdk.h>
- ( BOOL )application:(UIApplication * )application didFinishLaunchingWithOptions:( NSDictionary * )launchOptions {
NSString * yourAppToken = @"{YourAppToken}" ;
NSString * environment = ADJEnvironmentSandbox;
ADJConfig * adjustConfig = [[ADJConfig alloc ] initWithAppToken: appToken
environment: environment];
[adjustConfig setLogLevel: ADJLogLevelVerbose];
NSString * environment = ADJEnvironmentProduction;
ADJConfig * adjustConfig = [[ADJConfig alloc ] initWithAppToken: appToken
environment: environment];
[adjustConfig setLogLevel: ADJLogLevelSuppress];
[Adjust initSdk: adjustConfig];
Adjust iOS SDK를 사용하면 iOS 앱에서 어트리뷰션, 이벤트 등을 기록할 수 있습니다. 이 가이드에서는 Adjust SDK를 앱과 연동하는 방법이 다루어집니다.
1. 프로젝트에 SDK 추가 iOS 앱에서 Adjust SDK를 사용하려면 우선 Xcode 프로젝트에 Adjust SDK를 추가해야 합니다.
Swift 패키지 매니저를 사용하여 SDK를 추가하는 경우:
File —> Swift Packages —> Add Package Dependency 를 선택합니다.
나타나는 창에 SDK의 GitHub 주소를 입력합니다. https://github.com/adjust/ios_sdk
버전 드롭다운 메뉴에서 사용을 원하는 Adjust SDK 버전을 선택합니다. 최신 버전은 배포 페이지 에서 확인하실 수 있습니다.
대체 설치 방법 Cocoapods를 사용하여 SDK를 추가하려면 Podfile
에서 사용하고자 하는 버전을 명시합니다:
// Get pod from repository
pod 'Adjust', '~> 4.38.4'
// Get source directly from GitHub
pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => 'v4.38.4'
앱에서 웹뷰를 사용하는 경우 다음을 추가하여 Adjust Web Bridge를 추가해야 합니다:
pod 'Adjust/WebBridge', '~> 4.38.4'
Carthage를 사용하여 SDK를 추가하려면 Cartfile
에 다음을 추가합니다.
정적 프레임워크의 배포는 프라이버시 매니페스트 를 포함하지 않기 때문에 버전 4.38.0부터 지원이 중단됩니다.
프로젝트에 Adjust SDK를 프레임워크로 추가하여 연동할 수도 있습니다. 배포 페이지 에서 다음 아카이브를 찾을 수 있습니다.
AdjustSdkStatic.framework.zip
: For devices running iOS 7 and below
AdjustSdkDynamic.framework.zip
: For devices running iOS 8 and above
AdjustSdkTvDynamic.framework.zip
: Dynamic framework for tvOS apps
AdjustSdkTvStatic.framework.zip
: Static framework for tvOS apps
AdjustSdkImDynamic.framework.zip
: Dynamic framework for iMessage apps
AdjustSdkWebBridgeDynamic.framework.zip
: Dynamic framework for web views
필요한 프레임워크를 선택하고 Xcode
프로젝트에 해당 프레임워크를 추가하시기 바랍니다.
배포 페이지에서 아카이브를 다운로드합니다.
컴퓨터에서 아카이브를 압축 해제합니다.
.framework
폴더를 Xcode
프로젝트에 복사합니다.
2. Adjust SDK 연동 Xcode
프로젝트에 Adjust SDK를 추가하고 나면 앱에 연동해야 합니다.
프로젝트 파일에 관련 가져오기 명령어를 추가합니다.
Adjust SDK를 가져오기하려면 다음을 브리징 헤더 파일에 추가합니다.
#import <Adjust/Adjust.h>
Adjust Web Bridge를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다:
Adjust SDK를 가져오기하려면, 다음을 AppDelegate.h
파일에 추가합니다.
#import <Adjust/Adjust.h>
Adjust Web Bridge를 사용하는 경우 AppDelegate.h
파일에 다음을 추가합니다.
관련 가져오기 명령어를 프로젝트 파일에 추가합니다.
Adjust SDK를 가져오기하려면 다음을 브리징 헤더 파일에 추가합니다.
#import <Adjust/Adjust.h>
Adjust Web Bridge를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다:
#import <AdjustSdkWebBridge/AdjustBridge.h>
tvOS 앱에서 Adjust SDK를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다.
#import <AdjustSdkTv/Adjust.h>
iMessage 앱에서 Adjust SDK를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다.
#import <AdjustSdkIm/Adjust.h>
Adjust SDK를 가져오기하려면, 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdk/Adjust.h>
Adjust Web Bridge를 사용하는 경우 AppDelegate.h
파일에 다음을 추가합니다.
#import <AdjustSdkWebBridge/AdjustBridge.h>
tvOS 앱에서 Adjust SDK를 사용하는 경우, 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdkTv/Adjust.h>
iMessage 앱에서 Adjust SDK를 사용하는 경우 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdkIm/Adjust.h>
관련 가져오기 명령어를 프로젝트 파일에 추가합니다.
Adjust SDK를 가져오기하려면 다음을 브리징 헤더 파일에 추가합니다.
#import <Adjust/Adjust.h>
Adjust Web Bridge를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다:
#import <AdjustSdkWebBridge/AdjustBridge.h>
tvOS 앱에서 Adjust SDK를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다.
#import <AdjustSdkTv/Adjust.h>
iMessage 앱에서 Adjust SDK를 사용하는 경우, 다음을 브리징 헤더 파일에 추가합니다.
#import <AdjustSdkIm/Adjust.h>
Adjust SDK를 가져오기하려면, 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdk/Adjust.h>
Adjust Web Bridge를 사용하는 경우 AppDelegate.h
파일에 다음을 추가합니다.
#import <AdjustSdkWebBridge/AdjustBridge.h>
tvOS 앱에서 Adjust SDK를 사용하는 경우, 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdkTv/Adjust.h>
iMessage 앱에서 Adjust SDK를 사용하는 경우 다음을 AppDelegate.h
파일에 추가합니다.
#import <AdjustSdkIm/Adjust.h>
3. iOS 프레임워크 추가 Adjust SDK는 특정 기기 정보 액세스를 위해 프레임워크에 의존합니다. 이 정보 읽기를 활성화하려면 프레임워크를 추가하고 프레임워크를 옵션 으로 표시하시기 바랍니다.
프레임워크 설명 참고 사항 AdSupport.framework
디바이스 IDFA에 대한 액세스와, iOS 14 이하 버전의 기기에서 LAT에 대한 액세스도 활성화합니다. 앱이 “아동” 카테고리를 타겟으로 하는 경우 이 프레임워크를 추가하지 않습니다. AdServices.framework
ASA 어트리뷰션을 취급합니다. StoreKit.framework
SKAdNetwork 프레임워크에 대한 액세스를 활성화합니다. Adjust SDK가 iOS 14 이상 버전의 기기에서 SKAdNetwork와의 커뮤니케이션을 처리하도록 허용하기 위해 필요합니다. AppTrackingTransparency.framework
Adjust SDK가 iOS 14 이상 버전의 기기에서 사용자 ATT 동의 다이얼로그 및 액세스 동의 응답을 래핑하도록 허용하기 위해 필요합니다. 앱이 “아동” 카테고리를 타겟으로 하는 경우 이 프레임워크를 추가하지 않습니다. WebKit.framework
애플리케이션의 웹뷰 사용을 활성화합니다. 앱이 웹뷰를 사용하는 경우에만 필요합니다.
4. Adjust SDK 초기화 Adjust SDK를 초기화하려면 config 객체를 만들어야 합니다. 이 객체에는 Adjust SDK 행동을 통제하는 구성 옵션이 포함되어 있습니다. 최소 설정을 위한 다음 인수를 전달합니다.
appToken
: Your app’s token .
environment
: The environment you want to run the SDK in. Set this to ADJEnvironmentSandbox
.
이 config 객체로 Adjust SDK 초기화:
앱 델리게이트의 didFinishLaunching
또는 didFinishLaunchingWithOptions
메서드의 config 개체를 선언합니다.
ADJLogLevelVerbose
(verbose)에 config 개체의 logLevel
속성을 설정합니다. 디바이스 정보를 검색하려면 verbose 로깅을 활성화해야 합니다.
appDidLaunch
메서드에 인수로 config 개체를 전달합니다.
func application ( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any ] ? ) -> Bool {
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let myAdjustConfig = ADJConfig (
environment : environment)
myAdjustConfig ? .logLevel = ADJLogLevel.verbose
Adjust. appDidLaunch (myAdjustConfig)
- ( BOOL )application:(UIApplication * )application didFinishLaunchingWithOptions:( NSDictionary * )launchOptions {
NSString * yourAppToken = @"{YourAppToken}" ;
NSString * environment = ADJEnvironmentSandbox;
* myAdjustConfig = [ADJConfig configWithAppToken: yourAppToken
environment: environment];
[myAdjustConfig setLogLevel: ADJLogLevelVerbose];
[Adjust appDidLaunch: myAdjustConfig];
iMessage 앱 설정 iMessage 확장 프로그램은 앱과 다른 번들 식별자를 가지며 다른 메모리 공간에서 실행됩니다. 동일한 토큰으로 두 가지를 모두 설정하는 경우 SDK는 혼합 데이터를 반환합니다. 따라서 Adjust 대시보드에서 iMessage 앱 전용으로 별도의 앱을 생성해야 하며, Adjust SDK를 초기화할 때 해당 토큰을 사용해야 합니다.
앱이 iMessage를 타겟으로 하는 경우 설정해야 하는 추가적인 설정이 몇 가지 있습니다.
소스에서 Adjust SDK를 추가한 경우, iMessage 프로젝트 설정에 ADJUST_IM=1
프리프로세서 매크로를 추가합니다.
Adjust SDK를 프레임워크로 추가한 경우, Build Phases 프로젝트 설정에 New Copy Files Phase 를 추가해야 합니다. 프레임워크 폴더에 복사될 AdjustSdkIm.framework
를 설정합니다.
세션 기록 Adjust SDK는 iMessage 앱에서 iOS 시스템 알림을 구독하지 않습니다. 앱이 포그라운드에 진입했거나 나간 경우 Adjust SDK에 알리려면 trackSubsessionStart
및 trackSubsessionEnd
메서드를 콜해야 합니다.
didBecomeActiveWithConversation:
메서드 안의 trackSubsessionStart
에 콜을 추가합니다.
func didBecomeActive ( with conversation: MSConversation) {
// Called when the extension is about to move from the inactive to active state.
// This will happen when the extension is about to present UI.
// Use this method to configure the extension and restore previously stored state.
Adjust. trackSubsessionStart ()
- ( void )didBecomeActiveWithConversation:(MSConversation * )conversation {
// Called when the extension is about to move from the inactive to active state.
// This will happen when the extension is about to present UI.
// Use this method to configure the extension and restore previously stored state.
[Adjust trackSubsessionStart ];
willResignActiveWithConversation:
메서드 안의 trackSubsessionEnd
에 콜을 추가합니다.
func willResignActive ( with conversation: MSConversation) {
// Called when the extension is about to move from the active to inactive state.
// This will happen when the user dismisses the extension, changes to a different
// conversation or quits Messages.
// Use this method to release shared resources, save user data, invalidate timers,
// and store enough state information to restore your extension to its current state
// in case it is terminated later.
Adjust. trackSubsessionEnd ()
- ( void )willResignActiveWithConversation:(MSConversation * )conversation {
// Called when the extension is about to move from the active to inactive state.
// This will happen when the user dismisses the extension, changes to a different
// conversation or quits Messages.
// Use this method to release shared resources, save user data, invalidate timers,
// and store enough state information to restore your extension to its current state
// in case it is terminated later.
[Adjust trackSubsessionEnd ];
Adjust Web Bridge 설정 앱이 웹뷰를 사용하는 경우 Adjust Web Bridge를 설정해 웹뷰 내 활동을 기록해야 합니다.
앱에 AdjustBridge
연동 Project Navigator:
View Controller의 소스 파일을 엽니다.
파일 가장 위에 import
명령어를 추가합니다.
AdjustBridge
에 대해 웹뷰 델리게이트의 viewDidLoad
또는 viewWillAppear
메서드에서 다음의 콜을 추가합니다.
func viewWillAppear ( _ animated: Bool ) {
let webView = WKWebView ( frame : view.bounds)
// add var adjustBridge: AdjustBridge? on your interface
adjustBridge. loadWKWebViewBridge (webView)
// optionally you can add a web view delegate so that you can also capture its events
// adjustBridge.loadWKWebViewBridge(webView, wkWebViewDelegate: self as? WKNavigationDelegate?);
// or #import <AdjustSdkWebBridge/AdjustBridge.h>
- ( void )viewWillAppear:( BOOL )animated {
WKWebView * webView = [[WKWebView alloc ] initWithFrame:self .view.bounds];
// add @property (nonatomic, strong) AdjustBridge *adjustBridge; on your interface
[ self .adjustBridge loadWKWebViewBridge: webView];
// optionally you can add a web view delegate so that you can also capture its events
// [self.adjustBridge loadWKWebViewBridge:webView wkWebViewDelegate:(id<wknavigationdelegate>)self];
AdjustBridge
인스턴스의 bridgeRegister
속성을 설정하여 포함된 WebViewJavascriptBridge
를 사용할 수도 있습니다. 자세한 사용 방법은 라이브러리 문서 를 참조하시기 바랍니다.
AdjustBridge
를 웹뷰에 연동웹뷰에서 자바스크립트 브릿지를 사용하려면 브릿지를 구성해야 합니다. 다음 자바스크립트 코드를 추가하여 Adjust iOS 웹브릿지를 초기화합니다:
function setupWebViewJavascriptBridge ( callback ) {
if (window.WebViewJavascriptBridge) {
return callback (WebViewJavascriptBridge);
if (window.WVJBCallbacks) {
return window.WVJBCallbacks. push (callback);
window.WVJBCallbacks = [callback];
var WVJBIframe = document. createElement ( "iframe" );
WVJBIframe.style.display = "none" ;
WVJBIframe.src = "https://**bridge_loaded**" ;
document.documentElement. appendChild (WVJBIframe);
document.documentElement. removeChild (WVJBIframe);
setupWebViewJavascriptBridge ( function ( bridge ) {
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig (yourAppToken, environment);
Adjust. appDidLaunch (adjustConfig);
config 개체와 초기화 로직을 추가하고 나면 Adjust SDK를 설정해 앱의 다양한 부분에 대한 정보를 기록할 수 있습니다. SDK 설정 기능과 기록 기능에 대한 안내를 확인하고 기록하고 싶은 내용을 정확히 설정해 보십시오.
6. Adjust SDK 테스트 Adjust SDK를 설정해 앱 정보를 기록할 수 있으므로 이제 테스트할 차례입니다. Adjust는 앱 테스트에 도움이 되는 테스팅 콘솔 과 Device API 를 제공합니다.
테스트 가이드 를 따라 Adjust가 앱에서 예상값을 수신하는지 확인합니다.
7. 프로덕션을 위한 앱 빌드 테스트를 완료한 후에 프로덕션을 위한 앱을 빌드할 수 있습니다. 이를 위해 config 객체를 업데이트해야 합니다.
다음 값 업데이트:
environment
: Set this to ADJEnvironmentProduction
.
logLevel
: Choose a logging level , or disable logging completely by passing an allowSuppressLogLevel
argument in your config object.
func application ( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any ] ? ) -> Bool {
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentProduction as? String
let myAdjustConfig = ADJConfig (
environment : environment,
allowSuppressLogLevel : true )
myAdjustConfig ? .logLevel = ADJLogLevelSuppress
Adjust. appDidLaunch (myAdjustConfig)
- ( BOOL )application:(UIApplication * )application didFinishLaunchingWithOptions:( NSDictionary * )launchOptions {
NSString * yourAppToken = @"{YourAppToken}" ;
NSString * environment = ADJEnvironmentProduction;
* myAdjustConfig = [ADJConfig configWithAppToken: yourAppToken
allowSuppressLogLevel:YES ];
[myAdjustConfig setLogLevel: ADJLogLevelSuppress];
[Adjust appDidLaunch: myAdjustConfig];
디버그 빌드 또는 프로덕션 빌드를 만들지 여부에 따라 Xcode
빌드 플래그를 사용해 config를 동적으로 업데이트할 수 있습니다.
func application ( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any ] ? ) -> Bool {
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let myAdjustConfig = ADJConfig (
environment : environment)
myAdjustConfig ? .logLevel = ADJLogLevel.verbose
let environment = ADJEnvironmentProduction as? String
let myAdjustConfig = ADJConfig (
environment : environment,
allowSuppressLogLevel : true )
myAdjustConfig ? .logLevel = ADJLogLevel.suppress
Adjust. appDidLaunch (myAdjustConfig)
- ( BOOL )application:(UIApplication * )application didFinishLaunchingWithOptions:( NSDictionary * )launchOptions {
NSString * yourAppToken = @"{YourAppToken}" ;
NSString * environment = ADJEnvironmentSandbox;
* myAdjustConfig = [ADJConfig configWithAppToken: yourAppToken
environment: environment];
[myAdjustConfig setLogLevel: ADJLogLevelVerbose];
NSString * environment = ADJEnvironmentProduction;
* myAdjustConfig = [ADJConfig configWithAppToken: yourAppToken
allowSuppressLogLevel:YES ];
[myAdjustConfig setLogLevel: ADJLogLevelSuppress];
[Adjust appDidLaunch: myAdjustConfig];