गाइड

अपने App Store और Google Play अकाउंट कनेक्ट करें।

TL;DR. Mokbi को अपनी ओर से पब्लिश करने देने के लिए आप एक बार दो चीज़ें कनेक्ट करते हैं: Google Play के लिए एक Google Cloud service account key (एक JSON फ़ाइल), और Apple के लिए एक App Store Connect API key (एक .p8 फ़ाइल, साथ में Key ID और Issuer ID)। key बनाना आसान हिस्सा है। जो कदम लगभग सभी को उलझा देता है वह है सही जगह पर एक्सेस देना, क्योंकि Google Cloud IAM और Play Console दो अलग-अलग परमिशन सिस्टम हैं। यह गाइड दोनों सेटअप शुरू से आख़िर तक कवर करती है और आम गलतियों के सटीक समाधान बताती है।

आपको क्या चाहिए होगा

Mokbi कभी आपका स्टोर पासवर्ड नहीं देखता। इसकी जगह आप हर स्टोर के लिए एक सीमित-दायरे वाली key बनाते हैं और उसे एक बार पेस्ट करते हैं। इसे स्टोर के साथ वेरिफ़ाई किया जाता है, एन्क्रिप्टेड स्टोर किया जाता है, और आप इसे कभी भी डिसकनेक्ट कर सकते हैं।

  • Google Play: एक Google Cloud service account key, जो JSON फ़ाइल के रूप में डाउनलोड होती है, ऐसे प्रोजेक्ट से जिसमें Google Play Android Developer API इनेबल हो, साथ ही वह service account आपके Play Console में इनवाइट किया गया हो।
  • App Store Connect: एक API key, जो .p8 फ़ाइल के रूप में डाउनलोड होती है, साथ में इसकी Key ID और आपकी टीम की Issuer ID

यह आप हर स्टोर के लिए सिर्फ़ एक बार करते हैं। उसके बाद, पब्लिश और री-पब्लिश करना एक ही क्लिक का काम है। पहले Google करें, इसमें ज़्यादा चरण हैं।

Google Play, भाग 1: service account key बनाएं

यह Google Cloud Console (console.cloud.google.com) में होता है।

  1. एक प्रोजेक्ट बनाएं या चुनें, उदाहरण के लिए "Mokbi Publisher"।
  2. APIs & Services → Library पर जाएं, Google Play Android Developer API सर्च करें, और Enable पर क्लिक करें।
  3. APIs & Services → Credentials → Create credentials → Service account पर जाएं। इसे mokbi-play-publisher जैसा कोई नाम दें। प्रोजेक्ट रोल खाली छोड़ सकते हैं, असली परमिशन भाग 2 में Play Console से आएंगी।
  4. service account खोलें, Keys टैब पर जाएं, फिर Add key → Create new key → JSON, और फ़ाइल डाउनलोड करें। यही JSON है जो आप Mokbi में पेस्ट करते हैं। इसके अंदर मौजूद client_email (जो .iam.gserviceaccount.com पर ख़त्म होता है) वह पता है जिसे आप अगले चरण में इनवाइट करते हैं, तो इसे संभालकर रखें।

"Service account key creation is disabled" दिख रहा है? यह Google की एक ऑर्गनाइज़ेशन पॉलिसी है जिसे iam.disableServiceAccountKeyCreation कहा जाता है, जो "Secure by Default" के तहत डिफ़ॉल्ट रूप से ऑन रहती है। इस प्रोजेक्ट के लिए इसे बंद करें: IAM & Admin → Organization Policies, Disable service account key creation ढूंढें, Manage policy चुनें, "Override parent's policy" सेलेक्ट करें, इस प्रोजेक्ट के लिए Enforcement: Off सेट करें, और Save करें। कुछ मिनट रुकें और key दोबारा बनाने की कोशिश करें। आपको Organization Policy Administrator रोल चाहिए, जो किसी org के मालिक के पास होता है या वह इसे दे सकता है।

Google Play, भाग 2: Play Console में एक्सेस दें

यही वह कदम है जिसमें लोगों के घंटों बर्बाद होते हैं, इसलिए इसे ध्यान से पढ़ें। आपके app का एक्सेस सिर्फ़ Google Play Console (play.google.com/console) में दिया जाता है, Google Cloud IAM में कभी नहीं। दो जगह चेक करनी हैं:

  1. Setup → API access: सुनिश्चित करें कि जिस Google Cloud प्रोजेक्ट में आपका service account है वह यहां लिंक्ड है। लिंक के बिना, key ऑथेंटिकेट तो हो सकती है लेकिन हर app पर 403 मिलेगा।
  2. Users and permissions (बाएं कॉलम में सबसे नीचे, अकाउंट लेवल पर): Invite new users चुनें, service account का ईमेल पेस्ट करें (वह जो .iam.gserviceaccount.com पर ख़त्म होता है), फिर App permissions के तहत अपना app जोड़ें और कम से कम Manage store presence दें। लिस्टिंग टेक्स्ट और स्क्रीनशॉट पब्लिश करने के लिए यह एक app परमिशन काफ़ी है, आपको अकाउंट-लेवल Admin की ज़रूरत नहीं है।

आपका app Play Console में पहले से मौजूद होना चाहिए। लिस्टिंग API एक मौजूदा पैकेज को एडिट करती है, यह नया app नहीं बनाती, और अभी कोई APK या AAB अपलोड करने की ज़रूरत नहीं है। सुनिश्चित करें कि आप Mokbi में जो पैकेज नाम डालते हैं वह app से बिल्कुल मेल खाता हो।

सबसे बड़ी चूक: Cloud IAM, Play Console नहीं है

अगर आपको बार-बार PERMISSION_DENIED मिल रहा है, तो लगभग हमेशा यही वजह होती है। Google Cloud IAM (Cloud Console में IAM & Admin → IAM पेज, जहां आप service account को "roles" असाइन करते हैं) सिर्फ़ Google Cloud संसाधनों का एक्सेस कंट्रोल करता है। यह आपकी app की स्टोर लिस्टिंग के एक्सेस के लिए कुछ नहीं करता। वहां roles असाइन करने से स्टोर परमिशन एरर कभी ठीक नहीं होगा।

App एक्सेस पूरी तरह Play Console में रहता है, ऊपर बताई गई दो जगहों पर: API access लिंक और Users and permissions इनवाइट। इन्हें सेट करें, और जो key 403 दे रही थी वह काम करने लगेगी।

Apple: App Store Connect API key बनाएं

यह App Store Connect (appstoreconnect.apple.com) में होता है। Mokbi तीन चीज़ें मांगता है: .p8 की कॉन्टेंट, Key ID, और Issuer ID

  1. Users and Access → Integrations → App Store Connect API पर जाएं। यह सेक्शन सिर्फ़ आपकी टीम के Account Holder या किसी Admin को दिखता है। अगर पूछा जाए, तो team keys को अनुमति दें।
  2. Generate API Key पर क्लिक करें, इसे कोई नाम दें (उदाहरण के लिए "Mokbi Publisher"), और इसे App Manager रोल दें।
  3. .p8 फ़ाइल डाउनलोड करें। आप इसे सिर्फ़ एक बार डाउनलोड कर सकते हैं, इसलिए इसे कहीं सुरक्षित जगह रखें। key के बगल में दिखने वाली Key ID नोट करें, और Issuer ID, जो Keys पेज के सबसे ऊपर मौजूद UUID है।

Google की तरह ही, app पहले से App Store Connect में मौजूद होना चाहिए। API एक मौजूदा लिस्टिंग को एडिट करती है और कोई बिल्ड अपलोड करने की ज़रूरत नहीं है। Mokbi से पब्लिश करना आपके लिए वर्शन स्टेज करता है और रिव्यू सबमिशन से पहले रुक जाता है, तो जब आप तैयार हों तब App Store Connect में ख़ुद Submit दबाते हैं।

Mokbi में कनेक्ट करें

कोई प्रोजेक्ट खोलें, पब्लिश स्टेप पर जाएं, और कनेक्ट बटन इस्तेमाल करें:

  • Google Play कनेक्ट करें: पूरी service account JSON पेस्ट करें, फिर वेरिफ़ाई करें और कनेक्ट करें। पब्लिश करने से पहले अपना पैकेज नाम डालें और कनेक्शन टेस्ट करें चलाएं।
  • App Store Connect कनेक्ट करें: .p8 फ़ाइल को टेक्स्ट एडिटर में खोलें और उसकी कॉन्टेंट पेस्ट करें, Key ID और Issuer ID जोड़ें, फिर वेरिफ़ाई करें और कनेक्ट करें

हर key को कुछ भी सेव होने से पहले स्टोर के साथ वेरिफ़ाई किया जाता है, हमारे वॉल्ट में एन्क्रिप्टेड स्टोर किया जाता है, और डिसकनेक्ट करें से कभी भी हटाया जा सकता है।

आम समस्याएं और उन्हें कैसे ठीक करें

"Service account key creation is disabled." कोई org पॉलिसी JSON keys को ब्लॉक कर रही है। प्रोजेक्ट के लिए iam.disableServiceAccountKeyCreation बंद करें (देखें Google Play भाग 1), दो मिनट रुकें, और दोबारा कोशिश करें।

हर app पर PERMISSION_DENIED या 403। Play Console में एक्सेस सेट नहीं है। पुष्टि करें कि Cloud प्रोजेक्ट Setup → API access के तहत लिंक्ड है, और service account का ईमेल Users and permissions के तहत आपके app पर Manage store presence के साथ इनवाइट किया गया है। Cloud IAM के roles मायने नहीं रखते।

एक्सेस देने के तुरंत बाद भी फ़ेल हो रहा है। परमिशन बदलावों को लागू होने में कुछ मिनट लगते हैं। Play Console में परमिशन दोबारा सेव करें (इसे खोलें और फिर से सेव करें) या थोड़ा रुकें, फिर एक बार और कनेक्शन टेस्ट करें चलाएं। जल्दी जांच के लिए, service account को अस्थायी रूप से अकाउंट-लेवल Admin देने से ड्राई रन पास हो जाना चाहिए — अगर ऐसा होता है, तो पहले वाली दिक़्क़त app-scope या project-link से जुड़ी थी।

गलत app, या कुछ नहीं होता। Mokbi में पैकेज नाम Play Console वाले app से बिल्कुल मेल खाना चाहिए, और app दोनों कंसोल में पहले से मौजूद होना चाहिए। लिस्टिंग API एक मौजूदा app को एडिट करती है, यह कभी नया नहीं बनाती।

.p8 फ़ाइल खो गई। Apple इसे सिर्फ़ एक बार डाउनलोड करने देता है। अगर वह गुम हो गई है, तो App Store Connect में उस key को रिवोक करें और नई बनाएं, फिर Mokbi में दोबारा कनेक्ट करें।

अपने स्टोर कनेक्ट करें → देखें कि पब्लिशिंग कैसे काम करती है