Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS SDK

اعداد "التطبيقات مدمجة المزايا للشراء" في نظام iOS باستخدام لغة السويفت 3

by
Read Time:13 minsLanguages:

Arabic (العربية/عربي) translation by B9 (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

المقدمة

"التطبيقات مدمجة المزايا" هي خاصية رائعة لكل مطورين التطبيقات الذين يرغبون في الحصول على الكثير من الأرباح المادية وتقديم محتوى ومزايا اضافية من خلال تطبيقاتهم. مثلاً في تطبيقات الألعاب، بإمكانك شراء جواهر أو عملات، وفي تطبيقات التصوير الفوتوغرافي بإمكانك اتاحة تأثيرات أو أدوات جديدة للمستخدمين. وتستطيع فعل كل ذلك من خلال استخدام بطاقة ائتمانية أو أي وسيلة دفع أخرى بدون الخروج من التطبيق.

في هذا الدرس سأقوم بتغطية كل الخطوات الضرورية لعمل هذا النوع من التطبيقات القابلة للاستعمال مرة واحدة أو قابلة للاستعمال مرات عديدة عن طريق متجر آي تونز كونكت، وسأريك الشيفرة البرمجية التي ستحتاجها لشراء هذان النوعان من التطبيقات. لقد قمت بعمل مشروع بسيط باستخدام برنامج إكس كود بوسم واحد وزرّين للضغط، لذلك قم بتحميل برنامج إكس كود وقم بمتابعة الخطوات في هذا الدرس لتفهم جيداً كيف يعمل البرنامج.

البدء بعمل مُخْتَبِر برنامج ساندبوكس في متجر آي تونز كونكت

أفترض أنك قمت تلقائياً بعمل تطبيق iOS  ووضعته في قسم My Apps في متجر الآي تونز كونكت. وأول شئ يجب أن تقوم به هو اعداد مُخْتَبِر برنامج الساندبوكس ليقوم باختبار تطبيقك ذو المزايا المدمجة على جهازك الحقيقي (لا تجرب النظام المحاكي "الوهمي" لأنه لا يدعم التطبيقات مدمجة المزايا)

ادخل إلى Users and Roles ثم اذهب إلى تبويبة Sandbox Tester ثم اضغط على علامة (+) بالقرب من المُختَبِر الأول Tester

Users and roles in iTunes ConnectUsers and roles in iTunes ConnectUsers and roles in iTunes Connect

قم بتعبئة النموذج ليتم اضافة مختبر ساندبوكس جديد. وبعد أن تنتهي من حفظ المعلومات، عد مرةً أخرى إلى قسم My App واضغط على أيقونة التطبيق الخاص بك لادخال بيانات التطبيق وعمل منتجات التطبيقات مدمجة المزايا.

البدء بتجهيز منتجات التطبيقات مدمجة المزايا في متجر الآي تونز كونكت

التطبيقات ذات الاستعمال المتكرر

اذهب إلى تبويبة Features ثم اضغط على علامة (+) بالقرب من In-App Purchases بإمكانك عمل تطبيق واحد فقط في المرة الواحدة ولذلك سنبدأ ب Consumable التطبيق ذو الاستعمال المتكرر.

Select Consumable In-App PurchaseSelect Consumable In-App PurchaseSelect Consumable In-App Purchase

التطبيقات المدمجة المزايا ذات الاستخدام المتكرر Consumable، وكما هو واضح من اسمها فهي منتجات بالإمكان استخدامها لمرات عديدة. وسنستخدمها لكي نجمع "عملات" اضافية في نسخة التطبيق الترويجية.

اضغط على زر Create لتبدأ في التمهيد لتطبيقك. في الشاشة التالية، سيمكنك من اعداد كل المعلومات المطلوبة عن منتجك:

  • Reference Name: "الاسم المرجعي" هذا الإسم سيتم استخدامه في متجر آي تونز كونكت وأيضاً في تقارير المبيعات والشيوع Sales and Trends. ولن يكون ظاهراً في متجر التطبيقات، وبإمكانك أن تضع أي اسم ترغب به ولكن لا يمكنك أن تضع اسماً يزيد عن 64 حرف.
  • Product ID: "مُعَرّف المنتج" هو معرّف حرفي رقمي مميز سيتم إعداده من التطبيق نفسه ليتم تمييز تطبيقك في المتجر. عادةً يستخدم المطورون النص البرمجي web-reverse  لتعريف المنتج. وفي هذا المثال قمنا باختيار هذه العبارة كتعريف للمنتج com.iaptutorial.coins ولاحقاً سنقوم بلصق هذا المُعَرّف  كسلسلة نصية لشيفرتنا البرمجية
  • Price: "السعر" اختر مستوى سعر من القائمة المنسدلة في المتجر وتذكر أنه من أجل أن تستطيع بيع منتجك التطبيقي مدمج المزايا في متجر التطبيقات فإن عليك أن تخضع للموافقة على الاتفاقية الخاصة بالتطبيقات المدفوعة Paid Application Agreement  في قسم الاتفاقيات والضرائب والبنوك Agreements, Tax & Banking .
  • Localizations: "الموقع" من أجل هذا الدرس فقط قمنا باختيار اللغة الإنجليزية، ولكن بإمكانك اضافة لغات أخرى بالضغط على زر ال  (+). ثم اكتب الاسم الظاهر في خانة Display Name وأضف وصف لمنتجك في خانة Description كلا الاثنان الاسم الظاهر والوصف سيظهران للجميع في متجر التطبيقات.
  • Screenshot: "لقطة شاشة" قم برفع لقطة شاشة من التطبيق ليتم مراجعتها. ولن تظهر في متجر التطبيقات ويجب أن تكون ذات مقاس صحيح يناسب منصة تطبيقك ولذلك إن كان تطبيقك عالمي فبإمكانك رفع لقطة شاشة لجهاز آي باد.
  • Review Notes : "ملاحظات للمراجعة" أي معلومات اضافية يمكنك تقديمها عن تطبيقك مدمج المزايا بالإمكان أن تكون جدّ مفيدة للشخص المراجع للتطبيق.
Create a new IAP productCreate a new IAP productCreate a new IAP product

متى ما انتهيت، اضغط زر Save للحفظ ومن ثم ستظهر لك هذه الرسالة:

تطبيقك الأول مدمج المزايا يجب أن ارساله مع نسخة تطبيق جديدة. قم باختيار هذه النسخة من قسم In-App Purchases ثم اضغط زر الإرسال submit.  

التطبيقات ذات استعمال مرة واحدة

قم الآن بالضغط على زر In-App Purchases في القائمة اليسرى وأعلى مباشرة زر Game Center، وقم باضافة منتج مدمج المزايا جديد. هذه المرة سنختار خيار Non-Consumable "استعمال مرة واحدة":

Create a Non-Consumable productCreate a Non-Consumable productCreate a Non-Consumable product

اضغط على زر Create وقم بعمل نفس الخطوات التي قمنا بها سابقاً في الأعلى. وبما أن التطبيق سيكون Non-Consumable فسيتمكن المستخدمون من شرائه مرة واحدة فقط ولذلك تطلب أبل بتوفير القدرة على حفظ واستعادة هذا النوع من عمليات الشراء. وذلك يحدث عنما تقوم بإلغاء تثبيت التطبيق ثم تقوم بتثبيته مرة أخرى أو قد يحدث ذلك عندما تقوم بتحميل التطبيق من جهاز آخر وتستخدم معرّف أبل الخاص بك Apple ID وتحتاج أن تستعيد مشترياتك بدلاً من أن تدفع مرتين. ولذلك سنقوم لاحقاً باضافة خاصية Restore Purchase "استعادة المشتريات" في شيفرتنا البرمجية.

مُعرّف المنتج الذي وضعناه هنا هو com.iaptutorial.premium مع مستوى سعر $2.99. وقمنا بتسميته "تفعيل النسخة المدفوعة" Unlock Premium Version .

متى ما انتهيت من ملء كل الحقول، قم بحفظ منتجك ثم عد مرة أخرى إلى صفحة In-App Purchases. والآن يجب أن يكون لديك قائمة بها اثنان من منتجاتك، مع الاسم  Name ، النوع Type ، التعريف ID ، الحالة Status وبجوارهم جاهز للإرسال Ready to Submit.

In-app Purchases listIn-app Purchases listIn-app Purchases list

عد مرة أخرى لصفحة تطبيقاتك وذلك بالضغط على App Store ثم زر Prepare for Submission. انتقل للأسفل إلى قسم In-App Purchases، ستجد في الأسفل مباشرة General App Information ثم قم بالضغط على زر (+) لتضيف تطبيقاتك مدمجة المزايا.

Add In-App Purchases to your apps info pageAdd In-App Purchases to your apps info pageAdd In-App Purchases to your apps info page

قم باختيار جميع الخيارات ثم اضغط على زر Done.

Select your IAP productsSelect your IAP productsSelect your IAP products

وأخيراً، اضغط زر الحفظ Save في أعلى الزاوية اليمنى من الشاشة وستكون قد انتهيت تماماً من تهيئة منتجاتك التطبيقية مدمجة المزايا في متجر آي تونز كونكت.

تسجيل الدخول إلى مُختّبر ساندبوكس في جهاز iOS

قبل أن تحصل على الشيفرة البرمجية لازال هناك أمر آخر يجب عليك أن تفعله. اذهب إلى Settings > iTunes & App Store على جهازك iOS. في حال قمت بتسجيل دخولك عبر معرّف أبل الخاص بك، قم باختياره واضغط على Sign Out لتسجيل الخروج. ثم بكل بساطة قم بالدخول مرة أخرى ببيانات التصديق التي قمت بعملها لمُختَبِر ساندبوكس بعد أن تقوم بتسجيل الدخول ستظهر لك هذه الرسالة:

Alert from the deviceAlert from the deviceAlert from the device

قم بتجاهل هذه الرسالة واضغط زر Cancel. سيقوم جهازك بسؤالك مرة أخرى عن بيانات تسجيل الدخول الخاصة بساندبوكس أثناء محاولتك للقيام بعملية شراء وسينتبه أنك تقوم بعملية شراء من حساب لاختبار التطبيق ولذلك تأكد بأنك لن تدفع قرش واحدة من بطاقتك الإئتمانية لأي عمليات شرائية تقوم بها في التطبيق.

اخرج من Settings "الاعدادات"، قم بوصل جهازك iOS بجهاز ماكنتوش عبر سلك USB ولنبدأ أخيراً بإعداد الشيفرات البرمجية.

الشفيرة البرمجية

في حال كنت قد قمت بتحميل نسختنا الترويجية، فسترى أن جميع الشيفرات البرمجية المطلوبة لشراء التطبيقات مدمجة المزايا مكتوبة عليها ولذلك إن قمت بتشغيل التطبيق فسيظهر لك التالي:

Demo IAP appDemo IAP appDemo IAP app

في حال رغبت باختبار التطبيق فعليك أن تقوم بتغيير Bundle Identifier إلى معرّفك الخاص. وإلاّ فإن برنامج إكس كود لن يسمح لك بتشغيل التطبيق على جهاز حقيقي ولن يقوم التطبيق بتمييز التطبيقين المدمجين المزايا الذي قمت بصنعهما.

Chage Bundle ID in the General tab in XCodeChage Bundle ID in the General tab in XCodeChage Bundle ID in the General tab in XCode

قم بإدخال الشيفرة التالية ViewController.swift ثم قم بفحصها. قبل كل شئ لقد قمنا باضافة جملة برمجية مستوردة لـ StoreKit وللتفويض الذي سنحتاجه من أجل تتبع حركات الدفع وطلبات المنتج.

بعد ذلك قمنا بالإعلان عن عدد من المشاهدات والتي ستكون مفيدة جداً.

الشيفرات التالية coinsLabel و premiumLabel سيتم استخدامهما لعرض نتائج عمليات الشراء للتطبيقين. consumableLabel و nonConsumableLabel ستقوم بعرض الوصف والسعر لكل تطبيق مدمج المزايا قمنا بعمله داخل آي تونز كونكت مسبقاً.

حان الوقت لإضافة بعض من المتغيرات البرمجية:

السطران الأولان لاستدعاء تعاريف المنتج. من المهم جداً أن تكون هذه السلاسل النصية متطابقة مع المكتوبة في قسم In-App Purchase في متجر آي تونز كونكت.

  • productID هو سلسلة نصية سيتم استخدامها لاحقاً لمعرفة أي التطبيقات سنقوم باختيارها للشراء.
  • productsRequest هو حالة من SKProductsRequest، ضروري للبحث عن تطبيقات مدمجة المزايا في قسم "تطبيقاتك" الموجود على آيتونز كونكت.
  • iapProducts هو مصفوفة بسيطة من SKProducts. رجاءاً انتبه أن بادئة SK تعني StoreKit، إذ سيقوم بنية نظام الـ iOS باستخدامه ليتدبر عمليات الشراء.

آخر سطرين يحملان متغيرين من نوع Boolean و Integer وهما ضروريان لتتبع عمليات شراء العملات وشراء النسخة المدفوعة، على التوالي للتطبيقات ذو الاستعمال المتكرر والاستعمال مرة واحدة.

الشيفرة البرمجية التالية الموجودة في viewDidLoad() ستقوم بأداء بعض الأشياء حالما يبدأ التطبيق في البدء:

لقد قمنا أولاً بتسجيل كل عملية شراء في وحدة تحكم الإكس كود. ومن ثم قمنا باظهار العدد الكلي للعملات التي قمنا بشرائها بشيفرة coinsLabel وبما أننا نعمل على نسخة ترويجية فسيظهر لنا للمرة الأولى أن عدد العملات = صفر

الجملة الشرطية if ستقوم بإعداد نص الـ premiumLabel بحسب ما إذا تم شراء المنتج ذو استعمال مرة واحدة. ولكي يبدأ، سيقوم بإظهار عبارة Premium version LOCKED! طالما لم نقم بشراء النسخة المدفوعة حتى الآن.

السطر الأخير من الشيفرة يقوم باستدعاء دالة سنراها لاحقاً، والتي ببساطة ستقوم بإحضار المنتج الذي قمنا بتخزينه في متجر آي تونز كونكت.

والآن هيا لنرى ما الذي ستقوم به أزرار الشراء التي قمنا بإعدادها في نسخة التطبيق الترويجية:

كلا الدالتين ستقوم باستدعاء تابع وظيفي سيقوم هذا التابع بتفحص إن كان يستطيع هذا الجهاز بالقيام بعمليات شراء، وفي حال لم يكن يستطيع فإن التطبيق سيقوم باستدعاء دوال التفويض الخاصة بـ StoreKit للقيام بعملية الشراء.

وكما ذكرنا سابقاً، نحن بحاجة إلى زر ثالث لإستعادة مشتريات التطبيق ذو استعمال مرة واحدة. وهذه هي الشيفرة البرمجية:

التابع الوظيفي IBAction، متصل بزر استعادة عملية الشراء Restore Purchase الموجود في Storyboard ومن ثم يبدأ بالاتصال بنظام In-App Purchase الخاص بمتجر أبل لاستعادة عملية الشراء في حال كانت تمت مسبقاً.

()paymentQueueRestoreCompletedTransactionsFinishedهي الدالة المفوضة من قبل بنية نظام StoreKit والتي ستقوم بحفظ متغيرنا البرمجي nonConsumablePurchaseMadeإلى الصواب بعد أن تتم استعادة عملية الشراء بنجاح.

وقد انتهينا من الأزار، هيا لنرى ماذا سيقوم به التابع الوظيفي التالي()fetchAvailableProducts

أولاً قمنا بعمل حالة من NSSet والتي هي في الأساس مصفوفة سلاسل نصية. سنقوم بحفظ تعاريف المنتج الذي قمنا بالتصريح عنه مسبقاً.

ومن ثم قمنا ببدء SKProductsRequest اعتماداً على هذه المعرفات، من أجل أن يقوم التطبيق بعرض المعلومات عن منتجات التطبيقات مدمجة المزايا أي ( الوصف والسعر)، والتي ستتم من خلال الدالة المفوضة التالية:

كما نرى في الوظيفة في الأعلى، علينا أولاً أن نتفحص إن كان هناك منتجات أخرى مسجلة في متجر آي تونز كونكت ومن ثم نقوم بإعداد مصفوفتنا iapProducts وفقاً لذلك. ثم بعد ذلك نستطيع تمهيد SKProducts للمنتجين وطباعة أوصافهما وسعرهما على الوسوم.

وقبل أن ندخل في صلب شيفرة شراء التطبيق مدمج المزايا، نحن بحاجة إلى اثنان من التوابع الوظيفية:

التابع الوظيفي الأول سيقوم بتفحص إن كان جهازنا قادراً على القيام بعمليات شراء. أما الثاني فهو الذي نقوم باستدعائه من خلال الزرين الإثنين. حيث يقوم ببدء طابور الدفع ويقوم بتغيير المتغير الخاص بنا productID إلى productIdentifier الذي تم اختياره.

وها نحن أخيراً نعود إلى الدالة المفوضة الأخيرة، والمسؤولة عن معالجة نتائج الدفع.

التابع الوظيفي هذا لديه switch وهي جملة برمجية تقوم بتفحص حالة كل عملية دفع. case الأولى ستحصل على استدعاء في حال تمت عملية الشراء بنجاح واكتملت عملية التحويل المالي.

بداخل هذه الكتلة البرمجية، علينا تفحص أي معرف منتج قمنا باختياره ومن ثم القيام بالأمور الضرورية لتحديث التطبيق، لذلك في حال نحن المستخدمين قمنا بشراء 10 عملات اضافية، سنقوم باضافة الرقم 10 إلى متغير coinsالخاص بنا، وسنحفظ قيمته باستخدام UserDefaults ليظهر العدد الجديد للعملات التي كسبناها ويُطلق تنبيهاً عنه.

رجاءاً انتبه أن بإمكانك القيام بعملية الشراء هذه لمرات كثيرة بدون حدود بما أن التطبيق ذو استعمال متعدد، ولا حاجة لتابع وظيفي لاستعادة المشتريات.

وبنفس الطريقة، في حال قمنا بشراء النسخة المدفوعة من المنتج ذو استعمال مرة واحدة، فإن التطبيق سيقوم بإعداد متغير nonConsumablePurchaseMade إلى true الصواب، ثم يحفظه ويغير نص premiumLabel ويطلق تنبيه ليعلمك أن عملية الشراء تمت بنجاح.

الـ cases الإثنان الأخريان سيتولان نتائج الدفع عند الفشل أو الاستعادة وسيطلق التطبيق بمفرده تنبيه مخصص في حال فشلت عملية التحويل المالي لأسباب معينة أو في حالة قمت باسترجاع عملية شراء سابقة لتطبيق ذو استعمال مرة واحدة.

هذا هو! والآن تأكد من تسجيل دخولك ببيانات مُختبر ساندبوكس وقم بتشغيل التطبيق لاختباره. في أول مرة ستظهر لك هذه الرسالة:

App Store Sign In alertApp Store Sign In alertApp Store Sign In alert

قم باختيار Use Existing Apple ID ثم أدخل اسم المستخدم والرقم السري لمُختبر ساندبوكس مرة أخرى لتتمكن من تسجيل الدخول. ويحدث هذا بسبب قدرة التطبيق على معرفة المستخدم الحقيقي من اعدادات المتجر iTunes & App Store وليس مستخدم ساندبوكس.

بمجرد أن تتم عملية الدخول ستكون قادراً على القيام بعمليات الشراء لكلا المنتجين.

10 Coins purchase made10 Coins purchase made10 Coins purchase made

Non-Consumable Premium purchase madeNon-Consumable Premium purchase madeNon-Consumable Premium purchase made

نماذج CodeCanyon

في حال كنت تعمل مع أنظمة iOS وأردت أن تتعمق أكثر في لغة السويفت وتطوير التطبيقات، بإمكانك مراجعة نماذج تطبيقاتي iOS على موقع CodeCanyon

هناك المئات من نماذج أخرى لتطبيقات iOS على متجر Envato أيضاً، جاهزة لإعادة البناء وتضمن لك تسريع عملك. قم باختبارها! فقد توفر على نفسك الكثير من الساعات في بناء تطبيقك التالي.

الخاتمة:

في هذا الدرس، قمنا بتغطية كل الخطوات المطلوبة لبناء منتجات التطبيقات مدمجة المزايا في متجر آي تونز كونكت وكيف تقوم بكتابة الشيفرة البرمجية لتفعيلها في تطبيقك. آمل أنك ستستطيع أن تضع هذه المعلومات للاستخدام في تطبيقك الـ iOS التالي!

شكراً لقراءتك المقال، آراك مرة أخرى! وأرجوك أن تقوم بالإطلاع على دوراتنا التدريبية ودروسنا عن تطوير تطبيقات iOS باستخدام لغة السويفت.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.