---
title: "在 iOS SDK 中实现观察者模式"
description: "在 Adapty 中实现观察者模式，以便在 iOS SDK 中追踪用户订阅事件。"
---

如果您已拥有自己的购买基础设施，暂时不打算完全切换到 Adapty，可以了解[观察者模式](observer-vs-full-mode)。在基础形态下，观察者模式提供高级分析功能，以及与归因和分析系统的无缝集成。

如果这已满足您的需求，您只需：
1. 在配置 Adapty SDK 时，将 `observerMode` 参数设置为 `true` 以启用该模式。
2. 将您现有购买基础设施中的交易[上报给 Adapty](report-transactions-observer-mode)。

如果您还需要付费墙和 A/B 测试功能，则需要按照以下说明进行额外配置。

## 观察者模式设置 \{#observer-mode-setup\}

如果您自行处理购买和订阅状态，并使用 Adapty 发送订阅事件和分析数据，请启用观察者模式。

:::important
在观察者模式下运行时，Adapty SDK 不会关闭任何交易，请确保您自行处理交易关闭。
:::

<Tabs groupId="current-os" queryString>
<TabItem value="swiftui" label="SwiftUI">

```swift showLineNumbers

@main
struct YourApp: App {
  init() {
    // Configure Adapty SDK
    let configurationBuilder = AdaptyConfiguration
      .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY") // Get from Adapty dashboard
      .with(observerMode: true) 
      
    let config = configurationBuilder.build()
    
    // Activate Adapty SDK asynchronously
    Task {
      do {
        try await Adapty.activate(with: configurationBuilder)
      } catch {
        // Handle error appropriately for your app
        print("Adapty activation failed: ", error)
      }
    }
    
    var body: some Scene {
      WindowGroup {
        // Your content view
      }
    }
  }
}
```

</TabItem>
<TabItem value="swift" label="UIKit" default>

```swift showLineNumbers

Task {
  do {
    let configurationBuilder = AdaptyConfiguration
      .builder(withAPIKey: "YOUR_PUBLIC_SDK_KEY") // Get from Adapty dashboard
      .with(observerMode: true) 
    
    let config = configurationBuilder.build()
    try await Adapty.activate(with: config)
  } catch {
    // Handle error appropriately for your app
    print("Adapty activation failed: ", error)
  }
}

```

</TabItem>
</Tabs>

参数：

| 参数                        | 描述                                                         |
| --------------------------- | ------------------------------------------------------------ |
| observerMode                | 布尔值，用于控制[观察者模式](observer-vs-full-mode)。默认值为 `false`。 |

## 在观察者模式下使用 Adapty 付费墙 \{#using-adapty-paywalls-in-observer-mode\}

如果您还希望使用 Adapty 的付费墙和 A/B 测试功能，也可以实现——但需要在观察者模式下进行额外配置。除上述步骤外，您还需要完成以下操作：

1. 按照常规方式展示[远程配置付费墙](present-remote-config-paywalls)。对于付费墙编辑工具付费墙，请参考 [iOS](ios-present-paywall-builder-paywalls-in-observer-mode) 的专项配置指南。
3. 将付费墙与购买交易进行[关联](report-transactions-observer-mode)。