این سند به سؤالات رایج درباره کیتهای توسعه نرمافزار و انتشار برای «بازیهای Google Play در رایانه» پاسخ میدهد.
درآمدزایی
چرا پساز افزودن کلید صدور پروانه یا صورتحساب جدید، جریان خرید من با «کد خطای ۶» ناموفق میشود؟
کلیدهای پروانه جدیدی که در «کنسول Google Play» تولید میشوند، قبلاز اینکه حافظههای پنهان داخلی Google Play در همه محیطهای ارائهدهنده همگامسازی شوند، با تأخیر چندساعته در ذخیرهسازی موقت و انتشار در پسای تجارت مواجه میشوند. اگرچه کارخواه بازی شما میتواند جزئیات محصول را با موفقیت پُرسمان کند، درخواستهای خرید تا زمانی که همگامسازی تکمیل نشود با کد خطای ۶ ناموفق خواهد بود. پساز بارگذاری یا بهروزرسانی کلید پروانه، چند ساعت صبر کنید و سپس خریدها را آزمایش کنید.
آیا میتوانم بدون سرور زیرینه از جریان خرید استفاده کنم؟
از دیدگاه امنیتی، Google توصیه میکند از سرور زیرینه استفاده کنید.
برای اطلاعات بیشتر، به پردازش بدون سرور زیرینه مراجعه کنید.
آیا سیستمهای پرداخت مبتنی بر میانای برنامهسازی کاربردی موجود پساز ادغام کردن «بازیهای Google Play» در کیت توسعه نرمافزار رایانه مجاز هستند؟
همه پرداختها باید توسط «بازیهای Google Play در رایانه» کیت توسعه نرمافزار بااستفاده از «خدمات صورتحساب Google Play» انجام شود. نمیتوانید از روش پرداخت مبتنی بر میانای برنامهسازی کاربردی موجودتان در همان بازی استفاده کنید.
چگونه میتوانیم خریدها را در حالت توسعهدهنده مصرف کنیم؟
خرید را در حالت توسعهدهنده ظرف ۳ دقیقه مصرف کنید، درغیراینصورت خرید مسترد خواهد شد.
آیا پرداختهای تکرارشونده یا اشتراکها پشتیبانی میشوند؟
نه برای آینده نزدیک، اما از شما استقبال میکنیم که موارد استفاده خاصی را برای ما ارائه دهید تا به نقشه راه آینده خود اضافه کنیم.
«خطای صورتحساب» در تماسهای خرید من چیست؟
BillingError پاسخ نتیجه پرداخت است. LaunchPurchaseFlow فوراً بدون مسدود کردن برمیگردد اما باید به فراخوانی برگشتی گوش دهید تا بدانید چه زمانی تمام شده است و نتیجه را ضبط کنید.
چگونه میتوانم از درستیسنجی خرید سمت کارخواه استفاده کنم؟
توصیه میکنیم از خرید سمت سرور و فرایند درستیسنجی آن استفاده کنید. برای پردازش خریدها از برنامه مشتری، بازی شما باید در فهرست مجاز باشد. اگر بازیتان به دسترسی نیاز دارد، لطفاً با «شریک Google» خود تماس بگیرید. برای اطلاعات بیشتر، به پردازش بدون سرور زیرینه مراجعه کنید.
حدود استفاده میانای برنامهسازی کاربردی برای پُرسمان جزئیات محصول چیست؟
حداکثر تعداد محصولاتی که میتوان در یک تماس با
QueryProductDetailsAPI جستجو کرد ۵۰ است. اگر از این حد فراتر رفتید، باید درخواست را به چند تماس تقسیم کنید.چرا هنگام بار کردن تعداد زیادی شناسه محصول، پُرسمانهای محصول یا جریانهای خرید با خطاهای داخلی مواجه میشوند؟
پرسوجو کردن تعداد زیادی SKU محصول بهطور همزمان یا فراخوانی متوالی
QueryProductDetailsدر C++ یاQueryProductDetailsAsyncدر Unity بهدفعات زیاد در مدت کوتاه (مثلاً ارسال دهها فراخوانی دستهای در یک حلقه تنگ یا ایجاد یک نمونهBillingClientجدید برای هر دسته) میتواند باعث اضافهبار IPC محلی و اتصالات زیرینه شود. وقتی این اتصالات بازنشانی میشوند، پُرسمانهای جزئیات محصول ناموفق میشوند و بازی شما نمیتواند نشانهای پیشنهاد لازم برای راهاندازی جریان خرید را دریافت کند.برای جلوگیری از این خطاها هنگام بار کردن کاتالوگ، این روالها را دنبال کنید:
- تعداد محصولات پشتیبانیشده در هر فراخوانی را رعایت کنید: در هر فراخوانی
QueryProductDetailsیاQueryProductDetailsAsync، بیشاز ۵۰ محصول را جستوجو نکنید وProductDetailsبرگرداندهشده را در حافظه پنهان ذخیره کنید تا مجبور نباشید کل کاتالوگ را مکرراً جستوجو کنید. برای اطلاعات بیشتر درباره محدودیتهای دستهای پشتیبانیشده و پرسمان جزئیات محصول، به سؤال قبلی درباره محدودیتهای API، نمایش محصولات دردسترس برای خرید برای C++، و پرسمان جزئیات محصول برای Unity مراجعه کنید. - از فراخوانی مکرر میاناهای برنامهسازی کاربردی در یک دوره کوتاه خودداری کنید:
چند دسته پُرسمان محصول را بهطور همزمان یا پشتسرهم بدون فاصله زمانی ارسال نکنید. از یک نمونه
BillingClientمجدداً استفاده کنید، درخواستها را سریالسازی کنید، یا همزمانی را به دو یا سه تماس درحال انجام در یک زمان محدود کنید، و تأخیر کوتاهی بین دستههای متوالی اضافه کنید. - بهروزرسانی به جدیدترین کیت توسعه نرمافزار: ادغام خود را به جدیدترین نسخه کیت توسعه نرمافزار «بازیهای Google Play در رایانه»، نسخه ۲۶.۹.۲۶۱.۰ برای C++ یا ۲۶.۹.۲۶۱.۰ برای Unity، از صفحه بارگیریهای کیت توسعه نرمافزار «بازیهای Google Play در رایانه» بهروز کنید تا مطمئن شوید کارخواه شما شامل جدیدترین بهبودهای پایداری IPC و صورتحساب است.
- تعداد محصولات پشتیبانیشده در هر فراخوانی را رعایت کنید: در هر فراخوانی
هنگام فراخوانی «پُرسمان خریدها» یا «راهاندازی جریان خرید» در «کلاینت صورتحساب»، چه پارامترهایی لازم است؟
این تابع
QueryPurchasesContinuationرا میپذیرد که یک تابع کالبک با امضایstd::function<void(QueryPurchasesResult)>است. فراخوانی برگشتی نتیجه را با همهProductPurchaseDetailsبه شما منتقل میکند. این اطلاعات در فایلهای سرایند کیت توسعه نرمافزار در فایلincludes/billing/models.hدردسترس است.launch_purchase_flow_resultحاصل دارای توابعok()وcode()است. تابعok()موفقیتآمیز بودن جریان را برمیگرداند. تابعcode()شمارشBillingError(includes/billing/enums.h) را برمیگرداند که ۱۰ مورد خطای احتمالی دارد، مانند لغو کاربر یا خطای شبکه.آیا ترتیب سفارشی برای «راهاندازی جریان خرید» در «مشتری خدمات صدور صورتحساب» پشتیبانی میشود؟
در طراحی فعلی کیت توسعه نرمافزار، هیچ راهی برای ارسال بار داده خودتان وجود ندارد. بااینحال، میتوانید هر ترکیبی از
obfuscated_account_idوobfuscated_profile_idرا ارائه دهید. میتوانید هیچکدام، فقط یکی، یا هر دو را ارائه دهید.فیلد
offer_tokenالزامی است و پیشنهاد ویژه خرید را که کاربر در جریان تسویهحساب قصد خرید آن را دارد مشخص میکند. درحالحاضر، هر SKU در Google Play دقیقاً یک پیشنهاد دارد (برای مثال، خرید یک محصول بهقیمت ۱۰ دلار). در آینده، تیم صورتحساب Play از چندین پیشنهاد پشتیبانی خواهد کرد.برای اطمینان از اینکه فراداده درصورت بروز وقفه در جریان خرید مرتبط میشود، فراداده را قبلاز راهاندازی کادر گفتگوی خرید در سرور زیرینه خود ذخیره کنید و آن را با شناسه حساب کاربر، SKU درحال خرید، و مُهر زمان فعلی مرتبط کنید. برای اطلاعات بیشتر، مرتبط کردن خرید با دادههای داخلی را ببینید.
پیشنیازهای جابهجایی از صورتحساب Google با OAuth به صورتحساب Google مبتنی بر DLL چیست؟
بازیها میتوانند همچنان از ورود به سیستم OAuth با Google برای مدیریت حساب واردشده به سیستم استفاده کنند، اما Google توصیه میکند که استفاده از APIهای صورتحساب REST قدیمی را متوقف کنید. تغییر از میاناهای برنامهسازی کاربردی صورتحساب REST (با ورود به سیستم OAuth2) به جریان کیت توسعه نرمافزار میتواند عملیاتی با پرچم ویژگی باشد، بنابراین هر دو میتوانند برای مدتی همزمان وجود داشته باشند تا بازی تغییر کند.
آیا فراخوانی Launch Purchase Flow API ازطریق مرورگر وب پردازش میشود؟
نه، جریان خرید اکنون بهطور کامل در داخل بازی بااستفاده از همپوشانی یکپارچه WebView تکمیل میشود، بدون اینکه نیاز باشد کلاینت بازی را ترک کنید.
آیا کاربر برای خرید کردن باید بهطور جداگانه برای هر بازی به سیستم وارد شود؟
از حساب پیشزمینه در «بازیهای Google Play» برای هر جلسه بازی استفاده میشود، بنابراین لازم نیست دوباره به سیستم وارد شوید. حسابی که هنگام شروع جلسه بازی در «بازیهای Google Play» استفاده میکنید، حسابی است که فراخوانیهای میانای برنامهسازی کاربردی با آن صادر میشود. جریان خرید بهطور خودکار از این حساب استفاده خواهد کرد.
آیا یک بازی میتواند همزمان از کیت توسعه نرمافزار رایانه و سیستمهای پرداخت قدیمی پشتیبانی کند؟
سیستم پرداخت تحت مدل جریان دوگانه بسته به نسخه دودویی بازی عمل میکند. کاربران نسخههای قدیمی به جریان موجود ادامه میدهند و کاربران نسخههای جدید به پرداختهای مبتنی بر کیت توسعه نرمافزار منتقل میشوند. کاربران در هر دو جریان پرداخت درطول دوره انتقال همزیستی دارند.
بسته برنامه Windows
هنگام ارسال WAB بااستفاده از راهانداز شخص ثالث، آیا بسته بازی برای بازبینی لازم است؟
میتوانید فقط نصبکننده را ارسال کنید و نیازی نیست کل بسته بازی را ارسال کنید، بازبین میتواند بااستفاده از نصبکننده، بسته بازی شما را بارگیری کند.
آیا محدودیتی برای اندازه فایل WAB وجود دارد؟
برای «انتشار نصبکننده»، میتوانید فایل WAB را با حداکثر اندازه ۱۰ گیگابایت بارگذاری کنید. برای «انتشار مدیریتشده Play»، حداکثر اندازه فایل WAB ۲۰۰ گیگابایت است.
چرا پساز بارگذاری WAB، بازی من نصب نمیشود یا نشان داده نمیشود؟
اگر بازی شما بدون نسخه رایانه شخصی قبلی (یک «WAB برای اولین بار») درحال آمادهسازی است، سیستم ممکن است بهطور خودکار آن را در وضعیت تعلیق «انتشار مدیریتشده» قرار دهد. این اتفاق میافتد چون خط مبنای موجودی برای بهروزرسانی وجود ندارد. برای انتشار کامل WAB و دردسترس قرار دادن بازی برای نصب، باید به «کنسول Google Play» بروید و اقدام انتشار لازم را بهصورت دستی اجرا کنید (برای مثال، روی «انتشار تغییرات» کلیک کنید).
چگونه WAB را برای آزمایش داخلی بارگذاری کنم؟
حسابهای فهرست مجاز را با Google همرسانی کنید تا Google بتواند آنها را برای آزمایش داخلی فعال کند. پساز اینکه Google فهرست را دریافت کرد، مطمئن میشود که آنها در فرایند آمادهسازی گنجانده شدهاند.
بسته WAB کجا باید بارگذاری شود؟
میتوانید بسته WAB را در مکان ذکرشده در سؤال اول بارگذاری کنید. اما نمیتوانید آن را بهصورت دستی منتشر کنید. باید زمان دقیق UTC (تا ساعت) را به کارکنان بخش پشتی Google ارائه دهید. سپس Google برنامه زمانی انتشار را پیکربندی میکند و مطمئن میشود که بهموقع منتشر شود.
کیت توسعه نرمافزار رایانه
تفاوتهای بین «میانای برنامهسازی کاربردی» قدیمی و «کیت توسعه نرمافزار بازیهای Google Play در رایانه» چیست؟
- میانای برنامهسازی کاربردی قدیمی فقط عملکرد صورتحساب را ارائه میدهد.
- کیت توسعه نرمافزار رایانه از «سرویس Google Desktop» (GDS) و ویژگیهای کامل رایانه پشتیبانی میکند.
- با کیت توسعه نرمافزار رایانه، به «ورود به سیستم با Google» مبتنی بر مرورگر نیازی نیست.
آیا روش جایگزینی برای مقداردهی اولیه کیت توسعه نرمافزار با راهاندازی مستقیم بازی بااستفاده از راهانداز بازی، بدون رفتن به «بازیهای Google Play در رایانه» وجود دارد؟
بازی شما باید ازطریق کلاینت «بازیهای Google Play در رایانه» راهاندازی شود. برای جزئیات بیشتر، به این سند توسعهدهنده مراجعه کنید.
آیا کیت توسعه نرمافزار رایانه از نویسههای چندبایتی در فایل گواهینامه PEM پشتیبانی میکند؟
بله، کیت توسعه نرمافزار از نویسههای چندبایتی برای گواهینامه پشتیبانی میکند.
کیت توسعه نرمافزار چگونه ورود به سیستم «حساب Google» را برای چند نمونه یا حساب مدیریت میکند؟
هر راهاندازی بازی در «بازیهای Google Play» بهعنوان «جلسه بازی» درنظر گرفته میشود و هر «جلسه بازی» میتواند حسابی منسوب به خود داشته باشد. این دو میتوانند متفاوت باشند. بنابراین اگر بازی را با حساب الف راهاندازی کنید و سپس به حساب ب بروید و دوباره راهاندازی کنید، هر دو میتوانند همزمان اجرا شوند.
آیا ادغام «ارجاعدهنده نصب Play» با «کیت توسعه نرمافزار رایانه» کار میکند؟
کیت توسعه نرمافزار رایانه (نسخه ۲۵.۵.۴۰۹.۰ و بالاتر) از Play Install Referrer API پشتیبانی میکند. برای اطلاعات بیشتر، Play Install Referrer API را ببینید.
راهانداز
اگر بازیکنی بهجای «کارخواه Google Play» از راهانداز شخص ثالث استفاده کند، آیا حساب «سرویسهای بازیهای Play» او بهطور خودکار همگامسازی میشود؟
برای اینکه عملکردهای کیت توسعه نرمافزار کار کند، بازی باید مستقیماً ازطریق کارخواه «بازیهای Google Play» راهاندازی شود. اگر فرایند دیگری، مثل نصبکننده یا برنامه راهانداز، بازی را شروع کند، آن فرایند باید خودش از کارخواه «بازیهای Google Play» راهاندازی شود. بازی باید همه پارامترهای دریافتی از کارخواه را به فرایند کارخواه منتقل کند.
اگر «بازیهای Google Play» یک راهانداز بازی شخص ثالث را راهاندازی کند، چگونه مقداردهی اولیه را مدیریت کنم؟
لازم نیست کیت توسعه نرمافزار را مستقیماً در راهاندازتان ادغام کنید. بااینحال، باید همه آرگومانهای خط فرمان را که راهانداز از کارخواه «بازیهای Google Play» دریافت کرده است مستقیماً به فرایند فرزند ایجادشده (فایل اجرایی بازی) ارسال کنید. اگر مقداردهی اولیه ناموفق باشد (برای مثال، با برگرداندن
kActionRequiredShutdownClientProcess)، همه فرایندها ازجمله راهانداز باید پایان یابد تا «بازیهای Google Play» بتواند بازی را بازیابی کند و بهطور خودکار دوباره راهاندازی کند. برای جزئیات بیشتر، مرحله ۵ در راهنمای راهاندازی را ببینید.چگونه میتوانم بهروزرسانیها و نگهداری بازی و راهانداز را پساز اینکه در مرحله تولید قرار گرفت مدیریت کنم؟
بهروزرسانیها و نگهداریهای بعدی باید ازطریق راهانداز شما اجرا شود. کارخواه «بازیهای Google Play» از عملکردهای بهروزرسانی پشتیبانی نمیکند، بنابراین راهانداز باید بتواند هم بازی و هم خود راهانداز را بهروزرسانی کند.
نصبکننده چگونه کد جلسه «بازیهای Google Play» را برای «پخش خودکار» دریافت میکند؟
«بازیهای Google Play» کد جلسه را بااستفاده از آرگومان خط فرمان
--g_session_token=<token>به نصبکننده ارسال میکند. برای فعال کردن این مورد، بایدacceptsCommandLineArguments="true"را درplay_publishing_config.xmlتنظیم کنید.نصبکننده مسئول استخراج این توکن و استفاده از آن برای راهاندازی بازی است. اگر تولید کد ناموفق باشد، «بازیهای Google Play» نصبکننده را بدون کد (جایگزین) راهاندازی میکند.
راهاندازی
وقتی بازیای را بااستفاده از برنامه «بازیهای Google Play» شروع میکنم، آیا جزئیات «حساب Google» من همگامسازی میشود؟
پساز راهاندازی بازی ازطریق کارخواه «بازیهای Google Play»، حساب بهطور خودکار همگامسازی میشود و نیازی نیست دوباره ازطریق فرایند «ورود به سیستم Google» به سیستم وارد شوید.
آیا میتوان از پارامترهای مقداردهی اولیه چندین بار استفاده کرد؟
این کار تا زمانی امکانپذیر است که کارخواه «بازیهای Google Play» درحال اجرا باشد و اطلاعات ورود به سیستم معتبر باشد. بااینحال، در سناریوهایی مانند آنچه در راهنما شرح داده شده است، وقتی کاربر بازی را میبندد یا بازی بهدلیل عدم موفقیت در مقداردهی اولیه کیت توسعه نرمافزار (SDK) بسته میشود، همه فرایندهای راهاندازیشده توسط بازی باید خاتمه یابند، مانند
kActionRequiredShutdownClientProcess.آیا راهی برای ایجاد میانبر برای باز کردن مستقیم بازی وجود دارد؟
میتوانید از شناسه منبع یکسان زیر برای باز کردن مستقیم بازی استفاده کنید:
googleplaygames://launch/?pid=2&id=com.company.gamenameاین URI از تشخیص باز بودن سرویسگیرنده «بازیهای Google Play در رایانه» پشتیبانی میکند. اگر کلاینت باز نباشد، کلاینت «بازیهای Google Play» قبلاز اجرای بازی یا راهانداز باز میشود. باید بازی یا راهانداز را مدیریت کنید تا از اجرای چند نمونه جلوگیری شود.
آیا راهی برای درستیسنجی نصب «بازیهای Google Play در رایانه» بدون استفاده از کیت توسعه نرمافزار وجود دارد؟
میتوانید وضعیت نصب «بازیهای Google Play در رایانه» را بدون ادغام کردن کیت توسعه نرمافزار با بررسی وجود کلید Windows Registry زیر درستیسنجی کنید:
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Servicesوجود این کلید نشان میدهد که خدمات «بازیهای Google Play» (که برای اجرای بازیها در رایانه لازم است) در دستگاه نصب شده است. اگر کلید وجود ندارد، باید کاربر را به صفحه نصب «بازیهای Google Play در رایانه» هدایت کنید تا کارخواه را بارگیری و نصب کند.
آزمایش
آیا محیطهای آزمایش باز یا آزمایش بسته مشابهی برای تلفن همراه وجود دارد؟
درحالیکه جعبه امن سرتاسر اختصاصی دردسترس نیست، ما نیاز به یک محیط آزمایشی شبیه به تولید برای توسعهدهندگان را تشخیص میدهیم. بهزودی راهحل قویتری ارائه خواهد شد.
چگونه میتوانم آزمایشگر جدید اضافه کنم؟
مسئول تماس Google شما برای هر پروژه PC یک گروه ایمیل ایجاد میکند، که «حسابهای Google» آزمایشکنندگان باید به آن اضافه شود. فقط اعضای این گروه ایمیل مجازند بستههای آزمایشی را در «بازیهای Google Play» بارگیری کنند.
متفرقه
آیا میتوانم از VPN استفاده کنم؟
برای توسعهدهندگانی که باید بازیشان را در مناطقی که «بازیهای Google Play در رایانه» پشتیبانی نمیشود آزمایش کنند، توصیه میکنیم از VPN استفاده کنند تا نشانی IP از منطقه پشتیبانیشده دریافت کنند.
مطمئن شوید حالت TUN را در VPN فعال کرده باشید. راهنمایی درباره فعال کردن حالت TUN و پیکربندی دیوار آتش را میتوانید در راهنمای عملیاتی ارائهدهنده VPN پیدا کنید.
پساز فعال شدن حالت TUN، «بازیهای Google Play در رایانه» و شبیهساز را برای اهداف آزمایشی نصب کنید.
چگونه میتوانم توسعه برای «بازیهای Google Play در رایانه» را در Unity یا UE Editor شروع کنم؟
- حالت توسعهدهنده را فعال کنید و آزمایش را ادامه دهید.
- فایلهای
manifest.xmlو.dllرا اضافه کنید. برای اطلاعات بیشتر، به سند توسعهدهنده مراجعه کنید. - شناسه منحصربهفرد جهانی شریک دسترسی زودرس را برای اهداف آزمایشی ثبت کنید.
چگونه میتوانم از کلیدهای رجیستری بهدرستی استفاده کنم؟
باید کلیدهای رجیستری را براساس کندوی ریشه ایجاد کنید. میتوانید کندوی ریشه را بسته به هدف و ماهیت دادهها، روی
HKEY_LOCAL_MACHINEیاHKEY_CURRENT_USERتنظیم کنید. کندویHKEY_LOCAL_MACHINEبهعنوان نمونهای در دستورالعملها استفاده شده است.الزامات Google برای بازبینی بستههای رایانه چیست؟
بستههای رایانه تحت اسکن بدافزار قرار میگیرند و پساز آن، بازبینها فقط فرایندهای نصب بازی، راهاندازی موفق، و حذف نصب را آزمایش میکنند.
آیا ادغام کردن همه میاناهای برنامهسازی کاربردی ضروری است؟
میاناهای برنامهسازی کاربردی دیگر الزامی نیستند، اما مزایای بیشتری ارائه میدهند.
google::play::billingبرای خریدهای درونبرنامهای و فروش محتوای دیجیتال الزامی است.google::play::install_referrerبرای ردیابی دادههای ارجاعی لازم است تا به شما کمک کند متوجه شوید کدام منابع ترافیک بیشترین تعداد کاربر را برای بارگیری برنامهتان ارسال میکنند.google::play::games::integrityبرای محافظت از برنامهتان دربرابر عوامل مخرب ازطریق شناسایی دستگاههای بالقوه پرخطر و شبیهسازهای ناشناخته لازم است.چرا وقتی سرویسگیرنده «بازیهای Google Play» بسته میشود، برخیاز فرایندهای بازی خاتمه مییابند، اما برخی دیگر نه؟
Google فرایندها یا زیرفرایندهای بازی درحال اجرا را کنترل نمیکند. این رفتار به این بستگی دارد که بازی یک بازی Android شبیهسازیشده باشد یا یک بازی رایانه. بازیهای شبیهسازیشده در محیط خودشان نصب میشوند، بنابراین رفتار آنها تا حد زیادی به مقداردهی اولیه و خاموش شدن شبیهساز بستگی دارد.
آیا باید از قابلیت حذف نصب «بازیهای Google Play» استفاده کنم یا از حذفکننده نصب سفارشی؟
Google توصیه میکند از قابلیت حذف نصب «بازیهای Google Play» استفاده کنید.
راهنمایی بیشتر
اگر به راهنمایی بیشتری نیاز دارید که در این پرسشگان پوشش داده نشده است، لطفاً با google-play-games-pc@google.com تماس بگیرید.