Game Center API + API API = اثنين من حساب المستخدمين المختلفين لتطبيق واحد؟

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

سؤال

إذا كان لديّ تطبيق يدعم مركز الألعاب وأرغب في تقديم إنجازات لاستكمال حزمة ألغاز يتم بيعها كشراء داخل التطبيق ، فكيف أقوم بمزامنة حساب iTunes الذي يتم شحنه للشراء داخل التطبيق مع اللعبة حساب المستخدم المركزي الذي يقوم بالشراء؟ كما أفهمها ، إنهما حسابان منفصلان يتم الوصول إليهما في موقعين مختلفين (يتم الوصول إلى حساب مركز اللعبة في تطبيق مركز اللعبة ويتم الوصول إلى حساب iTunes في تطبيق الإعدادات).

كيف أتجنب حدوث هذا ...

  1. يقوم Game Center Player1 بتسجيل الدخول ، ويدير تطبيقي ويشتري حزمة ألغاز
  2. Game Center Player1 Logs Out ، يقوم Game Center Player2 بتسجيل الدخول ، ويدير تطبيقي ويلعب لاستكمال حزمة الألغاز التي تم شراؤها Player1 و Player2 يحصل على الإنجاز.
  3. تسجيلات Game Center Player2 ، يقوم Game Center Player1 بتسجيل الدخول ويجد حزمة الألغاز التي اشتراها كما تم الانتهاء منها بالفعل ، لذلك لا يستطيع Player1 الحصول على نفس الإنجاز.

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

شكرا جزيلا!

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

المحلول 2

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

إذا لم يتم تثبيت GC على الجهاز ، فيمكنني تعطيل جميع ميزات GC وبدء التطبيق فقط لأن هناك مشغل افتراضي واحد فقط.

يجب أن تكون بسيطة للقيام بها.

نصائح أخرى

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

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

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

أحاول التوصل إلى حل لحل هذه المشكلة أيضًا. في حالة استخدام وضع تسليم منتج الخادم ، يمكن حل المشكلة إلى حد كبير. يرسل التطبيق العناصر التي تم شراؤها إلى الخادم ؛ قم بتسليم العنصر إلى التطبيق بعد التحقق من بيانات الاعتماد. هناك بعض حالات الزاوية التي ما زلت لا أعرف كيفية حلها ، بشكل أساسي للتعامل مع العلبة عند توقف التدفق بأكمله ، والذي يضعف على تنفيذ IAP. لا يزال ليس متأكدا 100 ٪ حتى الآن.

هل يمكن أن تحتفظ بسجل على الهاتف حول الإنجازات التي تم شراؤها من قبل مستخدمين معينين ، ثم تحقق من المستخدم الذي يعمل عليه وإما تمكين المحتوى الذي تم شراؤه أو تعطيله - يجب أن يكون لديك وسيلة لتتبع تقدم اللاعبين المختلفين ( أستطيع أن أرى مشاكل محتملة حيث قد لا يتم تسجيل الدخول إلى GC ، إلخ). لم أفعل هذا بعد ، حتى أنني أخطط له في لعبتي القادمة.

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