# Configuração com Swift Package Manager

## Requisitos

* Crie uma conta na [Pushwoosh](https://pushwoosh.com/) se você ainda não tiver uma.
* Um Mac com uma versão recente do Xcode (apenas Apple Silicon).
* Um Certificado Push do iOS. Para mais detalhes, veja: [Configuração do iOS](/pt/developer/first-steps/connect-messaging-services/ios-configuration/ios-token-based-configuration/)

## Integração

1. Abra seu projeto no Xcode e navegue até as **configurações do projeto** -> **Package Dependencies** -> e pressione o botão **'+'**.

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

2. Insira a seguinte URL do Pacote:

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

3. Configure a **Regra de Dependência**

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

4. Na tela seguinte, para escolher seu Pacote, selecione o Pacote Pushwoosh e clique em **Add Package** para o seu Target principal do aplicativo.

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

5. Abra o Target principal do seu aplicativo e, em **Frameworks, Libraries, and Embedded Content**, certifique-se de que o SDK do Pushwoosh para iOS foi adicionado.

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

6. Muito bem! Você acabou de integrar o SDK visionOS da Pushwoosh ao seu projeto.

## Adicionar Capacidades Necessárias

1. Selecione o projeto raiz (1) e o target principal do seu aplicativo (2), depois vá para a aba **Signing and Capabilities**.
2. Pressione o botão **+ Capability** (3) e selecione a capacidade **Push Notifications**.
3. Em seguida, adicione a capacidade **Background Modes** e marque a caixa de seleção **Remote notifications** (4).

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

4. Muito bem! A configuração das capacidades do Xcode está concluída.

## Adicionar o código de inicialização do Pushwoosh

1. Adicione o seguinte código ao seu App

```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. No seu `Info.plist`, adicione as seguintes chaves do tipo string:

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

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

* `Pushwoosh_APPID`: o seu Código de Aplicação Pushwoosh.
* `Pushwoosh_API_TOKEN`: o seu [Token de API de Dispositivo Pushwoosh](/pt/developer/api-reference/api-access-token/#device-api-token)

> **Importante:** Certifique-se de dar ao token acesso à aplicação correta no seu Painel de Controle Pushwoosh. [Saiba mais](/pt/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">
Substitua XXXXX-XXXXX pelo seu ID de APP Pushwoosh
</Aside>

3. Muito bem! Agora você pode enviar sua primeira notificação 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=""/>

### Compartilhe seu feedback conosco

Seu feedback nos ajuda a criar uma experiência melhor, então adoraríamos ouvir de você se tiver algum problema durante o processo de integração do SDK. Se você enfrentar alguma dificuldade, não hesite em compartilhar suas opiniões conosco [através deste formulário](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).