# إعداد Swift Package Manager

## المتطلبات

* أنشئ حساب [Pushwoosh](https://pushwoosh.com/) إذا لم يكن لديك حساب بالفعل.
* جهاز Mac بإصدار جديد من Xcode (Apple Silicon فقط).
* شهادة دفع iOS. لمزيد من التفاصيل، انظر: [إعداد iOS](/ar/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)** إلى هدف تطبيقك الرئيسي.

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

5. افتح هدف تطبيقك الرئيسي وتحت **الأطر والمكتبات والمحتوى المضمن (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 في مشروعك.

## إضافة الإمكانيات المطلوبة

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. أحسنت! اكتمل تكوين إمكانيات 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 الخاص بك.
* `Pushwoosh_API_TOKEN`: [رمز واجهة برمجة تطبيقات جهاز Pushwoosh](/ar/developer/api-reference/api-access-token/#device-api-token) الخاص بك

> **مهم:** تأكد من منح الرمز وصولاً إلى التطبيق الصحيح في لوحة تحكم Pushwoosh الخاصة بك. [اعرف المزيد](/ar/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 الخاص بك
</Aside>

3. أحسنت! يمكنك الآن إرسال أول إشعار دفع خاص بك!

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