# Настройка через Swift Package Manager

## Требования

*   Создайте аккаунт [Pushwoosh](https://pushwoosh.com/), если у вас его еще нет.
*   Компьютер Mac с новой версией Xcode (только Apple Silicon).
*   Push-сертификат для iOS. Подробнее см. в разделе: [Конфигурация iOS](/ru/developer/first-steps/connect-messaging-services/ios-configuration/ios-token-based-configuration/)

## Интеграция

1.  Откройте ваш проект в Xcode и перейдите в **настройки проекта (project's settings)** -> **Package Dependencies** -> и нажмите кнопку **'+'**.

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-1.webp" alt=""/>

2.  Введите следующий URL пакета:

[https://github.com/Pushwoosh/PushwooshVision-XCFramework](https://github.com/Pushwoosh/PushwooshVision-XCFramework)

3.  Настройте **правило зависимости (Dependency Rule)**

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-2.webp" alt=""/>

4.  На следующем экране выберите пакет Pushwoosh и нажмите **Add Package**, чтобы добавить его в основную цель (target) вашего приложения.

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-3.webp" alt=""/>

5.  Откройте основную цель (target) вашего приложения и в разделе **Frameworks, Libraries, and Embedded Content** убедитесь, что Pushwoosh iOS SDK был добавлен.

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-4.webp" alt=""/>

6.  Отлично! Вы только что интегрировали Pushwoosh visionOS SDK в ваш проект.

## Добавьте необходимые возможности (Capabilities)

1.  Выберите корневой проект (1) и основную цель вашего приложения (2), затем перейдите на вкладку **Signing and Capabilities**.
2.  Нажмите кнопку **+ Capability** (3) и выберите возможность **Push Notifications**.
3.  Затем добавьте возможность **Background Modes** и установите флажок **Remote notifications** (4).

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-5.webp" alt=""/>

4.  Отлично! Настройка возможностей (capabilities) в Xcode завершена.

## Добавьте код инициализации Pushwoosh

1.  Добавьте следующий код в ваше приложение

```swift
import SwiftUI
import Pushwoosh

class AppDelegate: NSObject, UIApplicationDelegate, UNUserNotificationCenterDelegate, PWMessagingDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

        Pushwoosh.sharedInstance().registerForPushNotifications()
        Pushwoosh.sharedInstance().delegate = self
        return true
    }

    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        Pushwoosh.sharedInstance().handlePushRegistration(deviceToken)
    }

    func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: any Error) {
        Pushwoosh.sharedInstance().handlePushRegistrationFailure(error)
        print("\(error.localizedDescription)")
    }

    func pushwoosh(_ pushwoosh: Pushwoosh, onMessageOpened message: PWMessage) {
        print("Message opened: \(message.payload!)")
    }

    func pushwoosh(_ pushwoosh: Pushwoosh, onMessageReceived message: PWMessage) {
        print("Message received: \(message.payload!)")
    }
}

@main
struct newdemoApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
```

2.  В ваш файл `Info.plist` добавьте следующие ключи типа string:

```xml
<key>Pushwoosh_APPID</key>
<string>XXXXX-XXXXX</string>

<key>Pushwoosh_API_TOKEN</key>
<string>YOUR_DEVICE_API_TOKEN</string>
```

*   `Pushwoosh_APPID`: ваш код приложения Pushwoosh (Application Code).
*   `Pushwoosh_API_TOKEN`: ваш [токен Device API от Pushwoosh](/ru/developer/api-reference/api-access-token/#device-api-token)

> **Важно:** Убедитесь, что вы предоставили токену доступ к нужному приложению в вашей панели управления Pushwoosh. [Узнать больше](/ru/developer/api-reference/api-access-token/#edit-token)

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-6.webp" alt=""/>

<Aside type="note">
Замените XXXXX-XXXXX на ваш APP ID в Pushwoosh
</Aside>

3.  Отлично! Теперь вы можете отправить ваше первое push-уведомление!

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-7.webp" alt=""/>

<img src="/setting-up-pushwoosh-visionos-sdk-swift-package-manager-setup-8.webp" alt=""/>

### Поделитесь с нами своим мнением

Ваши отзывы помогают нам улучшать наш продукт, поэтому мы будем рады, если вы поделитесь своим мнением о процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь сообщить нам об этом [через эту форму](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).