s-3.664-0.699-5.062-2.099c-1.397-1.398-2.097-3.087-2.097-5.065s0.699-3.667,2.097-5.065c1.397-1.399,3.085-2.099,5.062-2.099 s3.664,0.699,5.062,2.099C223.888,120.556,224.587,122.244,224.587,124.223z"/>

آی او اس

ایجاد پروژه در XCode و افزودن امکان ارسال پوش نوتیفیکیشن

  • برای برنامه‌نویسی و توسعه محصولات اپل نیاز است از سیستم‌عامل انحصاری اپل و محیط توسعه انحصاری آن که XCode‍ نام دارد استفاده کنید.
  • نرم‌افزار XCode را باز کرده و پروژه iOS خود را در آن ایجاد کنید. توجه داشته باشید برای استفاده از امکان ارسال پوش نوتیفیکیشن و حتی تست آن نیاز است حساب کاربری اپل داشته باشید که برایتان سالانه ۹۹ دلار هزینه دارد. البته می‌توانید لاگین کردن حساب برنامه‌نویسی را به تعویق بیندازید و پروژه را بدون آن ایجاد کنید.
  • برای استفاده از سرویس پوشه لازم است از نسخه‌های ۹ به بعد iOS استفاده کنید. روی فایل آبی رنگ به نام برنامه تان کلیک کنید و در صفحه بازشده زبانه General را انتخاب کنید. مقدار عبارت Deployment Target را از مقادیر پس از نسخه 9.0 انتخاب کنید. و اگر در بخش Signing نیاز بود حساب کاربری با اپل ارتباطی یابد باید آن را نیز تأیید کنید. توجه داشته باشید که اگر می‌خواهید پوش نوتیفیکیشن را تست کنید باید از یک دستگاه خارجی استفاده کنید و نه یک شبیه‌ساز داخلی، که در گوشه بالا سمت چپ صفحه می‌توانید آن را انتخاب کنید.

    در صورتی که در بعضی گام‌ها به ایرادی برخوردید Clean کردن پروژه خالی از لطف نیست. برای آن می‌توانید از میانبر Command+Shift+K استفاده کنید. سپس برنامه خود را بیلد کرده یا اجرا کنید.

    فعال کردن قابلیت دریافت نوتیفیکیشن و فعالیت برنامه در پس‌زمینه

  • در نوار سمت چپ صفحه از میان Targetهای پروژه، برنامه تان و سپس زبانه Capabilities را انتخاب کنید. بخش Background Modes را فعال کنید و در آن تیک Remote notifications را بزنید.

  • بخش Push Notifications را نیز فعال کنید. می‌توانید مشاهده کنید که تیک آن زده می‌شود و این قابلیت به App ID شما افزوده می‌شود.
  • اگر به حساب کاربری اپل خود بروید و روی App IDs‍ کلیک کنید می‌توانید تنظیمات برنامه تان را مشاهده کرده و ویرایش کنید.

فعال کردن سرویس نوتیفیکیشن

باید برای برنامه تان یک سرویس نوتیفیکیشن بسازید و در غیر این صورت امکان ارسال Rich Media به کاربرانتان را نخواهید داشت. این امکان جدیدی است که اپل از نسخه ۱۰ به بعد iOS در اختیار برنامه‌نویسان قرار داده و با فعال کردن آن می‌توانید رسانه‌های غنی‌تری مانند عکس و فیلم و موسیقی را برای کاربرانتان ارسال کنید.

  • مطابق شکل روی Target پروژه خود کلیک کنید.
  • در صفحه بازشده Notification Service Extension را انتخاب کنید.
  • نام آن را NotificationService بگذارید. توجه داشته باشید که Team روی همان حساب کاربری خودتان است و نباید آن را تغییر دهید. دکمه Finish را بزنید.
  • در اعلان بازشده دکمه لغو Cancel را بزنید تا در حالت دیباگ Debug بمانید.
  • مطابق شکل یک فولدر به نام NotificationService در پروژه تان ایجاد می‌شود. این فایل را دانلود کرده و آن را با فایل NotificationService.swift موجود در پروژه تان جایگزین کنید.
  • برای دسترسی به بعضی فایل‌ها در پروژه XCode نیاز است روی آن راست کلیک کرده و مطابق شکل گزینه Show in Finder را انتخاب کنید.
توجه داشته باشید که در پنجره ی ایجاد نوتیفیکیشن سرویس،‌ قسمت Team بصورت پیش فرض نام مربوط به شناسه توسعه‌دهنده developer ID شما را نشان می‌دهد و مقدار آن را نباید تغییر بدهید.

افزودن پیش‌نیازهای پوشه به پروژه

  • برای افزودن کتابخانه به پروژه‌‌های آی‌او‌اس می‌توانید از CocoaPods استفاده کنید که چیزی است شبیه به Gradle برای توسعه اندروید. اگر آن را ندارید، ترمینال مک را باز کنید و دستور زیر را در آن اجرا کنید. ‍‍‍‍
sudo gem install cocoapods
  • سپس دستور زیر را اجرا کنید که دقایقی نیز زمان می‌برد.
pod setup

نسخه فعلی کتابخانه پوشه، برای ارسال پوش نوتیفیکیشن از GCM برای نگهداری داده‌هایش از SQLite و برای دریافتن یک شناسه یکتا برای دستگاه کاربرانتان از SwiftKeychainWrapper استفاده می‌کند.

  • در ترمینال به مسیر اصلی یا همان root پروژه تان بروید و با دستور زیر pod را در پروژه تان راه‌اندازی کنید.
pod init
  • فایلی با نام Podfile در پروژه شما ایجاد می‌شود. آن را باز کنید و مطابق شکل بعد از دستور !use_frameworks این سه خط زیر را با رعایت فاصله indentation به آن اضافه کنید.
توجه داشته باشید که پس از اجرای دستور pod install فایل‌هایی در پروژه تان ایجاد می‌شود که یکی از آن‌ها فایلی با پسوند xcworkspace و به نام برنامه تان است. صفحه XCode خود را ببندید و از این پس با این فایل پروژه تان را باز کنید.
pod 'Google/CloudMessaging'
pod 'SQLite.swift', '~> 0.11.5'
pod 'SwiftKeychainWrapper'
  • این فایل را ذخیره کرده و دستور زیر را در مسیر اصلی پروژه اجرا کنید.
    pod install
البته احتمالا دسترسی آی‌پی شما به این امکان محدود شده باشد و لازم است از ابزارهای رفع تحریم مانند proxychains استفاده کنید و یا می‌توانید به کمک شکن نیز DNS خود را تغییر دهید.

افزودن کتابخانه پوشه به پروژه

آخرین نسخه کتابخانه پوشه را که سازگار با نسخه ۴ سویفت است می‌توانید از این لینک دانلود کنید. سپس آن را unzip کنید. فایل داخل آن Pushe.framework نام دارد.

  • وارد target برنامه خود شوید. زبانه General را انتخاب کنید. در پایین این صفحه ‍Embedded Binaries نمایان است. فایل کتابخانه را بکشید و آن را در کنار NotificationService.appex به کتابخانه‌های پروژه بیفزایید. می‌توانید در بخش پایینی آن که Linked Frameworks and Libraries نام دارد نیز کتابخانه اضافه شده را ببینید.
  • در پنجره بازشده تیک copy items if needed را بزنید و دکمه Finish را بفشارید.
  • حالا می‌توانید فایل اجرایی کتابخانه را ببینید که به پروژه تان افزوده شده.

افزودن کدهای پوشه به پروژه

  • کلاس AppDelegate.swift را در پروژه تان باز کنید و با دستور زیر کتابخانه پوشه را اضافه کنید.
import Pushe
  • دو تابع زیر را به این کلاس اضافه کنید.
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    Pushe.shared.downstreamReceiver(message: userInfo)
}

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    Pushe.shared.startPushe(apnToken: deviceToken, isDevelop: true)
}
در تابع دوم دستور isDevelop به این معنی است که ارسال پوش نوتیفیکیشن در حالت توسعه Developing است. بعد از اینکه تست‌های خود را انجام دادید و برنامه‌تان را برای ریلیز آماده کردید، این مقدار را برابر false بگذارید تا برنامه شما در حالت Production بتواند پوش نوتیفیکیشن دریافت کند.

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

  • در تابع didFinishLaunchWithOptions دستور زیر را اضافه کنید.
Pushe.shared.configPushe()
  • در تابع applicationDidEnterBackground دستور زیر را اضافه کنید.
Pushe.shared.disconnectFromGcm()
  • و در تابع applicationDidBecomeActive دستور زیر را اضافه کنید.
Pushe.shared.connectToGcm()

دریافت اجازه‌نامه از سرویس پوش نوتیفیکیشن اپل

برای دسترسی به کاربران خود به اعتبارنامه ای نیاز دارید که اپل به توسعه‌دهندگان خود می‌دهد.

ایجاد App ID

  • اگر در ابتدای این آموزش پروژه خود را ساخته اید برنامه تان ثبت شده، در پنل حساب کاربری تان موجود است و می‌توانید از این گام بگذرید. در غیر این صورت باید پروژه تان را طبق گام اول به حساب کاربری برنامه‌نویسی تان بیفزایید. وارد حساب کاربری اپل خود شوید. یادآوری می‌کنم که برای استفاده و حتی تست امکانات پیشرفته برنامه‌نویسی مانند ارسال پوش نوتیفیکیشن باید حساب کاربری توسعه‌دهنده داشته باشید.
  • مطابق شکل وارد بخش Certificates, Identifiers & Profiles بشوید.
  • می‌توانید برنامه خود را اینجا ایجاد کنید.
  • یک نام برای برنامه خود در قسمت 1‍ و bundleID برنامه تان را در قسمت 2 مطابق شکل زیر وارد کنید. توجه کنید که حتما از Explicit App ID استفاده کنید. سپس دکمه Continue را بزنید. در اینجا اطلاعات App ID‍ تان را به شما می‌دهد که با زدن دکمه register ثبت برنامه تان پایان می‌گیرد.

ایجاد درخواست اجازه‌نامه Certificate

  • باید یک فایل درخواست اجازه‌نامه بسازیم که به کمک آن برنامه را تست کرده و توسعه دهیم. ابتدا برنامه keychainAccess را باز کنید و مطابق شکل زیر درخواست ساخت این فایل را می‌دهیم.
  • اطلاعات لازم را وارد کرده، تیک گزینه Save to disk را زده و سپس دکمه Continue را بزنید.

  • درخواست اجازه‌نامه را با همان نامی که برایش پیشنهاد شده، ذخیره کنید و در صفحه بعد دکمه Done را بزنید.

تنظیم App ID برای استفاده از پوش نوتیفیکیشن

  • برنامه تان را در لیست App IDs انتخاب کنید. در بخش Application Services دکمه ی Edit‍ مربوط به آن ‍App ID را بزنید.
  • با این کار صفحه ی تنظیمات نشان داده می‌شود. صفحه را اسکرول کنید تا Push Notifications‍ را ببینید. اگر آن را فعال کرده باشید گزینه آن که با شماره ۱ در عکس مشخص شده زده شده است و اگرنه آن را بزنید و دکمه Create Certificate را بفشارید.
  • در ادامه صفحه دیگری می‌آید که با زدن دکمه Continue از آن بگذرید.

  • دکمه Choose File را بزنید و فایل درخواست اجازه‌نامه request for certificate که ایجاد کردید را در اینجا انتخاب کنید.

  • دکمه Generate را بزنید. می‌توانید اجازه‌نامه تان را دانلود کنید. بعد از این نیز اجازه‌‌نامه ایجاد شده را از لیست Application Services هم می‌توانید دانلود کنید.

می‌توانید با همان فایل درخواست اجازه‌نامه، فایل Production Certificate خود را هم از همینجا دریافت کنید.

خروجی گرفتن از اجازه‌نامه‌های اپل

  • نام اجازه‌نامه‌ی SSL شما که در انتهای مرحله قبل دانلود کرده‌اید، aps_development.cer است. روی آن کلیک کنید و آن را در برنامه Keychain Access اضافه کنید. سرویس پوشه از طریق این اجازه‌نامه به APNS متصل شده و برای کاربرانتان پوش ارسال می‌کند. اتصال به سرویس ارسال اعلان اپل تنها راه ممکن برای دسترسی به کاربران iOS است.
  • برنامه Keychain ‍Access را باز کنید. به قسمت login بروید و براساس دسته بندی My Certificates محتوایش را فیلتر کنید. در اینجا گزینه ای به نام Apple Development iOS Push Services می‌بینید که با یک کلید خصوصی private key‍ جفت شده است.
  • روی این push notification certificate جدیدتان کلیک راست کنید و گزینه Export "Apple Development iOS Push Services" را انتخاب کنید و فایل حاصل را با نام apns-dev-cert.p12 برای ثبت در فایربیس ذخیره کنید. همین اجازه‌نامه برای نسخه Production را نیز می‌توانید به همین روش دریافت کنید.

ثبت برنامه در فایربیس و دریافت شناسه ارسال از آن

به صفحه کنسول فایربیس بروید. البته گوگل دسترسی کاربران ایرانی به این صفحه را محدود کرده که باید به روشی این تحریم را دور بزنید.

  • به سادگی پروژه خود را ایجاد کرده، گزینه iOS را انتخاب و برنامه خود را اضافه کنید.
  • همچنین می‌توانید در صفحه اصلی کنسول خود وارد پروژه‌های قبلی خود شوید و مطابق تصویر برنامه را اضافه کنید.
  • برنامه خود را با همان نام Bundle ID‍ که آن را ثبت کرده اید و با آن اجازه‌نامه از اپل گرفته اید در کنسول فایربیس ثبت کنید.
  • فایل plist را دانلود کرده و آن را مطابق راهنمایی شکل به پروژه خود بیفزایید.
توجه داشته باشید که افزودن فایل plist در فولدر پروژه و با استفاده از فایندر آن را به XCode نمی‌شناساند. باید آن را به صورتی که در تصویر آمده در پروژه بیندازید یا می‌توانید روی آیکون آبی‌رنگ پروژه راست کلیک کرده و گزینه Add Files to را انتخاب کنید و از آن روش فایل را به فولدر target پروژه بیفزایید.
  • سه مرحله بعدی را مطابق شکل رد کنید.
  • به صفحه پروژه خود بروید در اینجا برنامه‌هایتان نمایش داده می‌شود که با کلیک بر دکمه بالا سمت راست آن می‌توانید تنظیمات برنامه را انتخاب کنید.
  • از زبانه‌های بالایی cloud messaging را انتخاب کنید و در پایین صفحه طبق شکل بعدی اجازه‌نامه‌های اپل را آپلود کنید.
  • اگر در زمان ساخت فایل درخواست اجازه‌نامه اپل رمزی روی آن گذاشته باشید، باید آن رمز را در اینجا وارد کنید.

مطابق فیلدهای مشخص‌شده در دو تصویر قبلی، sender ID وserver key را از فایربیس بگیرید که در مرحله نهایی آن را در پنل پوشه خود وارد کنید.

ثبت برنامه در پنل پوشه

  • با همان Bundle ID که برنامه تان را در حساب اپل و نیز فایربیس ثبت کرده اید، برنامه iOS جدیدی در پنل پوشه خود ایجاد کنید و sender ID و API Key خود که از فایربیس گرفته اید را مطابق شکل برنامه وارد کنید. یادآوری می‌کنم که برای تست دریافت پوش نوتیفیکیشن نیاز به یک دستگاه خارجی مثلا iPhone یا iPad دارید و این قابلیت روی شبیه‌ساز داخلی قابل تست نیست. برنامه را روی دستگاهی با نسخه ۹ به بعد iOS اجرا کنید و منتظر دریافت نصب آن در پنل بمانید. توجه داشته باشید که برنامه شما باید باز باشد تا نصب آن در پنل شما دریافت شود. بعد از آن می‌توانید برنامه تستی را ببندید و پوش ارسال کنید.

تا آماده شدن پنل جدید لطفا Sender ID و Server Key که از فایربیس گرفته اید را به همراه Bundle ID برنامه و ایمیل خود برای ما ارسال کنید.

همیشه در کنارتان هستیم

در اولین فرصت با ایمیل به شما پاسخ خواهیم داد.

شاید جواب سوال شما اینجا باشد: سوالات متداول ، مستندات
وارد کردن تمامی فیلد ها الزامی است.
پیام شما با موفقیت ارسال شد