التخزين في تطبيق إيصالات شراء التطبيق في تطبيق المفاتيح

StackOverflow https://stackoverflow.com/questions/4978852

سؤال

لم أكن مطلقا في شراء التطبيق من قبل، لذلك استخدمت غلاف Mkstorekit ولديه تنفيذ عمل. mkstorekit يحتفظ جميع الإيصالات في UserDefaults .plist ك Bool، وبالتالي فهو بسيط للغاية بالنسبة للقراصنة لتوزيع عمليات شراء التطبيق في حالة "متصدع". بمجرد إجراء عملية الشراء الأولى، يمكن توزيع الحزمة ويمكن إعادة إنشاؤها .Plist يمكن إعادة إنشاؤها لتمكين فتح IAP.

أود تمديد mkstorekit لإنشاء بيانات التحقق من صحة شراء التطبيق في IOS Keychain. هل هناك أي عيب أو سبب محتمل لهذا الفشل في دفع المستخدمين، أن تكون غير موثوق بها، أو أي سبب آخر لماذا سيكون ذلك فكرة سيئة شاملة للقيام بذلك؟ أنا أفهم أن القرصنة أمر لا مفر منه، وبالتأكيد لا أريد أن أفرز في دفع المستخدمين، لكنني أشعر أن UserDefaults .plist هو أكثر من مجرد طريقة سهلة لتجاوز.

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

شكرا لجميع رؤيتك وأقدر الإجابات تجنب الجرصنة الإلزامية - القرصنة، والتعامل مع الردود. أنا أكثر اهتماما في التجاوز الفني لهذا الحل.

هل كانت مفيدة؟

المحلول

نحن نفعل ذلك بالضبط في تطبيقاتنا الخاصة بنا ويعمل تطبيق Great.it's تطبيق مجاني يمكنك الترقية إلى إصدار كامل وتخزين مؤشر الترقية في المفاتيح. مؤشر الترقية هو سلسلة تعسفية تختارها، ولكن لأغراض المفاتيح التي يتم التعامل معها ككلمة مرور، I.E.E.E. يتم تشفير قيمة KSECVALUDATA في المفاتيح. إن المكافأة الجميلة حول هذا النهج هي أنه إذا قام المستخدم بحذف التطبيق ثم إعادة تثبيته لاحقا، فسيتم إعادة تمكين كل شيء مثل السحر لأن عناصر المفاتيح يتم تخزينها بشكل منفصل عن التطبيق. وهذا أمر إضافي للغاية على تخزين شيء ما في الإعدادات الافتراضية للمستخدم الذي قررنا أنه يستحق كل هذا العناء.

إليك كيفية إنشاء عنصر الأمان: giveacodicetagpre.

إليك كيفية العثور على عنصر الأمان للتحقق من قيمته: giveacodicetagpre.

إذا كانت الترقية هي NIL، فلا يوجد المفتاح حتى تتمكن من تفترض أن الترقية ليست موجودة أو ما نقوم به، يتم وضعه في قيمة لا ترقيات.

تحديث

تمت إضافة ksecreturndata (شكرا @ loesluis لأشيره)

الرمز على Github (arc plariant)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top