# การตั้งค่า Swift Package Manager

## ข้อกำหนดเบื้องต้น

* สร้างบัญชี [Pushwoosh](https://pushwoosh.com/) หากคุณยังไม่มี
* เครื่อง Mac ที่มี Xcode เวอร์ชันใหม่ (เฉพาะ Apple Silicon)
* ใบรับรอง iOS Push Certificate ดูรายละเอียดที่: [การกำหนดค่า iOS](/th/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. ป้อน Package 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. ในหน้าจอถัดไป เพื่อเลือก Package ของคุณ ให้เลือก Pushwoosh Package และ **Add Package** ไปยัง Target ของแอปหลักของคุณ

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

5. เปิด Main App 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) และ Target ของแอปหลักของคุณ (2) จากนั้นไปที่แท็บ **Signing and Capabilities**
2. กดปุ่ม **+ Capability** (3) และเลือก **Push Notifications** capability
3. จากนั้น เพิ่ม **Background Modes** capability และทำเครื่องหมายที่ช่อง **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` ของคุณ เพิ่มคีย์ประเภทสตริงต่อไปนี้:

```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`: คือ [Pushwoosh Device API Token](/th/developer/api-reference/api-access-token/#device-api-token) ของคุณ

> **สำคัญ:** ตรวจสอบให้แน่ใจว่าได้ให้สิทธิ์การเข้าถึงแก่โทเค็นสำหรับแอปพลิเคชันที่ถูกต้องใน Pushwoosh Control Panel ของคุณ [เรียนรู้เพิ่มเติม](/th/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 ด้วย Pushwoosh APP ID ของคุณ
</Aside>

3. ยอดเยี่ยม! ตอนนี้คุณสามารถส่ง push notification แรกของคุณได้แล้ว!

<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)