通过 Adjust iOS SDK,您可以在 iOS 应用中记录归因、事件以及更多信息。该指南展示了如何将 Adjust SDK 集成至应用。
1. 添加 SDK 至您的项目 要在您的 iOS 应用中使用 Adjust SDK,请先将 SDK 加入 Xcode 项目。
要使用 Swift package manager 添加 SDK:
选择 File --> Swift Packages --> Add Package Dependency 在出现的文本框中输入 SDK 的 GitHub 地址: https://github.com/adjust/ios_sdk
在 Version 下拉菜单中选择要使用的 Adjust SDK 版本。请查看发布页面 ,找到最新版本。 其他安装方法 To add the SDK using Cocoapods, specify the version you want to use in your Podfile
:
# Get pod from repository
如果您在应用中使用的是 web 视图,请添加下列行以加入 Adjust Web Bridge:
pod 'Adjust/AdjustWebBridge' , '~> 5.0.1'
To add the SDK using Carthage, add the following to your Cartfile
:
2. 集成 Adjust SDK 将 Adjust SDK 添加到 Xcode
项目后,您需要将其集成至应用。
在您的项目文件中添加相关导入语句:
To import the Adjust SDK, add the following to your bridging header file:
To import the Adjust SDK, add the following to your AppDelegate.h
file:
#import <AdjustSdk/AdjustSdk.h>
3. 添加 iOS 框架 Adjust SDK 依赖各种框架读取具体设备信息。要启用设备信息读取,请添加对应框架,并将其标记为 可选 。
框架 描述 注意事项 AdSupport.framework
允许读取设备 IDFA。对于操作系统为 iOS 14 及更早版本的设备,添加该框架也会允许读取 LAT 信息。 如果您的应用属于 "儿童" 类别,那么请勿添加该框架。 AdServices.framework
处理 ASA 归因。 StoreKit.framework
允许访问 SKAdNetwork 框架。 若要允许 Adjust 处理 iOS 14 或更新操作版本设备上与 SKAdNetwork 的通讯,那么必须添加该框架。 AppTrackingTransparency.framework
若要允许 Adjust SDK 包装用户 ATT 许可对话,并读取 iOS 14 或更新操作版本设备的许可响应,那么必须添加该框架。 如果您的应用属于 "儿童" 类别,那么请勿添加该框架 WebKit.framework
允许在您的应用中使用 web 视图。 只有在应用使用 web 视图时才有必要
4. 设置 SDK 签名 If you want to use the SDK signature library to secure communications between the Adjust SDK and Adjust's servers, follow the instructions in the SDK signature guide on the Adjust Help Center .
5. (可选) 设置 Adjust Web Bridge 如果您的应用使用的是 web 视图,请务必设置 Adjust Web Bridge,以记录 web 视图中的信息。
将 AdjustBridge
集成到您的应用中 在项目导航中:
打开您的视图控制器 (View Controller) 源文件。 在文件顶端添加 import
导入语句。 在 Web View Delegate 的 viewDidLoad
或 viewWillAppear
方法中,添加下列 AdjustBridge
调用: 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
集成进您的 web 视图 要在 web 视图上使用 Javascript bridge,您就需要配置 bridge。请添加下列 Javascript 代码,初始化 Adjust iOS web bridge:
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig (yourAppToken, environment);
Adjust. initSdk (adjustConfig);
6. 初始化 Adjust SDK 要初始化 Adjust SDK,您需要创建一个 config 对象。该对象包含控制 Adjust SDK 行为的配置选项。发送以下参数能够保证最少的设置:
appToken
: 您的应用识别码。environment
: SDK 运行的环境。将其设为ADJEnvironmentSandbox
。要使用此 config 对象初始化 Adjust SDK:
在您应用委托的 didFinishLaunching
或 didFinishLaunchingWithOptions
方法中声明 config 对象。 将 config 对象的 logLevel
属性设置为 ADJLogLevelVerbose
(详细)。您必须启用 verbose 日志记录,才能调取设备信息。 将 config 对象作为参数发送至initSdk
方法。 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: myAdjustConfig];
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig (yourAppToken, environment);
Adjust. initSdk (adjustConfig);
设置您的 iMessage 应用 如果您的应用面向 iMessage,那么您还需要进行下列额外的配置:
如果您是从源代码添加 Adjust SDK,请确保您已在 iMessage 项目中添加了预处理宏 ADJUST_IM=1
。 如果您将 SDK 作为框架添加,请务必在 Build Phases 项目设置中添加 New Copy Files Phase 。将 AdjustSdkIm.framework
复制到 Frameworks 文件夹。 记录会话 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 来记录应用不同部分的信息。请查看配置参考 和功能指南 准确设置您想记录的内容。
8. 测试 Adjust SDK 完成配置,能通过 Adjust SDK 记录应用相关信息后,您就可以进行测试了。Adjust 为您提供测试控制台 和设备 ID ,方便您测试应用。
请按照测试指南 中的说明操作,确保您的应用能将预期值发送给 Adjust。
9. 针对生产环境构建应用 完成测试后,您就可以针对生产环境构建应用了。为此,请更新您的 config 对象。
更新以下值:
environment
: 将其设为ADJEnvironmentProduction
。logLevel
: 选择日志级别 ,或在 config 对象中传送 allowSuppressLogLevel
参数,以完全禁用日志记录。 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
版本标记 (flag),根据您创建的版本 (调试或生产版本) 情况动态更新 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];