نصب و راه‌اندازی پوشه در Xcode

پیش‌نیازها

نصب پوشه با استفاده از cocoapods

در Podfile پوشه را برای Target اصلی و Notification Service Extension اضافه کنید:

target 'PusheDemo' do
use_frameworks!
pod 'Pushe', '1.0.5'
target 'PusheDemoTests' do
inherit! :search_paths
# Pods for testing
end
target 'PusheDemoUITests' do
inherit! :search_paths
# Pods for testing
end
end
target 'DemoNotificationServiceExtension' do
use_frameworks!
pod 'Pushe', '1.0.5'
end

سپس با دستور زیر می‌توانید پوشه را نصب کنید.

pod install --repo-update

اضافه‌کردن کد‌های لازم

در فایل Info.plist متناظر با Target برنامه، کلید‌ها و مقادیر زیر را وارد کنید.

keyvaluetype
PusheAppIdدریافتی از کنسول پوشه appIdString
FirebaseAppDelegateProxyEnabledNOBoolean

و در Target مربوط به NotificationServiceExtension:

// NotificationService.swift file
import UserNotifications
import Pushe
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
self.contentHandler = contentHandler
self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = self.bestAttemptContent {
PusheClient.shared.didReceiveNotificationExtensionRequest(mutableContent: bestAttemptContent, contentHandler: contentHandler)
}
}
override func serviceExtensionTimeWillExpire() {
if let contentHandler = self.contentHandler, let bestAttemptContent = self.bestAttemptContent {
contentHandler(bestAttemptContent)
}
}
}

تست و ثبت دستگاه در پوشه

پس از اجرای برنامه و فراخوانی کد رجیستر پوشه، باید در کنسول Xcode لاگ‌های زیر را ببینید (ممکن است به دلیل ارتباط با سرور این پروسه چند ثانیه طول بکشد):

Setting up Pushe ...
apns-token:<APNS_TOKEN>
fcm-token:<FCM_TOKEN>
registering in Pushe ...
📗 -> successfully registered in Pushe


ادامه‌ی کار

(بر روی لینک مورد نظر کلیک کنید)

پروژه‌ی نمونه در گیت‌هاب

بررسی امکانات در نمونه‌ای از قبل طراحی شده دارای تمام امکانات کتابخانه‌ی پوشه

سوالات و مشکلات احتمالی

در صورتی که در یکی از مراحل زیر به مشکلی برخوردید یا هر سوالی در مورد کتابخانه‌ دارید