Rehber

App Store ve Google Play hesaplarını bağla.

TL;DR. Mokbi'nin senin adına yayınlayabilmesi için bir kere iki şeyi bağlarsın: Google Play için bir Google Cloud service account anahtarı (bir JSON dosyası), Apple için bir App Store Connect API anahtarı (bir .p8 dosyası, artı bir Key ID ve Issuer ID). Anahtarları oluşturmak kolay kısım. Neredeyse herkesin takıldığı adım doğru yerde erişim vermek, çünkü Google Cloud IAM ile Play Console iki ayrı yetkilendirme sistemidir. Bu kılavuz her iki kurulumu da baştan sona anlatır ve sık karşılaşılan hataların tam çözümlerini listeler.

Neye ihtiyacın var

Mokbi mağaza şifreni asla görmez. Bunun yerine her mağaza için kapsamı sınırlı bir anahtar oluşturur ve bir kez yapıştırırsın. Bu anahtar mağazayla doğrulanır, şifrelenmiş olarak saklanır ve istediğin an bağlantısını kesebilirsin.

  • Google Play: Google Play Android Developer API'si etkinleştirilmiş bir projeden JSON dosyası olarak indirdiğin bir Google Cloud service account anahtarı, artı bu service account'ın Play Console'una davet edilmiş olması.
  • App Store Connect: .p8 dosyası olarak indirdiğin bir API anahtarı, artı kendi Key ID'si ve ekibinin Issuer ID'si.

Bunu mağaza başına yalnızca bir kez yaparsın. Sonrasında yayınlamak ve yeniden yayınlamak tek bir tıklamaya iner. Önce Google'la başla, onda daha fazla hareketli parça var.

Google Play, 1. bölüm: service account anahtarını oluştur

Bu işlem Google Cloud Console'da yapılır (console.cloud.google.com).

  1. Bir proje oluştur ya da seç — örneğin "Mokbi Publisher".
  2. APIs & Services → Library bölümüne git, Google Play Android Developer API'yi ara ve Enable düğmesine tıkla.
  3. APIs & Services → Credentials → Create credentials → Service account bölümüne git. Ona mokbi-play-publisher gibi bir isim ver. Proje rollerini boş bırakabilirsin, gerçek izinler 2. bölümde Play Console'dan gelir.
  4. Service account'ı aç, Keys sekmesine git, ardından Add key → Create new key → JSON'a tıkla ve dosyayı indir. Mokbi'ye yapıştıracağın şey o JSON'dur. İçindeki client_email (sonu .iam.gserviceaccount.com ile biter) bir sonraki adımda davet edeceğin adrestir, o yüzden onu not al.

"Service account key creation is disabled" hatasını mı aldın? Bu, iam.disableServiceAccountKeyCreation adlı bir Google organizasyon politikasıdır; "Secure by Default" altında varsayılan olarak açıktır. Bu proje için kapat: IAM & Admin → Organization Policies bölümüne git, Disable service account key creation seçeneğini bul, Manage policy'yi seç, "Override parent's policy"yi işaretle, Enforcement değerini bu proje kapsamında Off olarak ayarla ve Save'e tıkla. Birkaç dakika bekle ve anahtarı tekrar dene. Bunun için Organization Policy Administrator rolüne ihtiyacın var; bu role bir org sahibi zaten sahiptir ya da sana verebilir.

Google Play, 2. bölüm: Play Console'da erişim ver

Bu, insanlara saatler kaybettiren adımdır, o yüzden dikkatli oku. Uygulamana erişim yalnızca Google Play Console'da (play.google.com/console) verilir, Google Cloud IAM'de asla. Kontrol edilecek iki yer var:

  1. Setup → API access: service account'ını barındıran Google Cloud projesinin burada bağlı olduğundan emin ol. Bağlantı yoksa anahtar kimlik doğrulaması yapabilir ama her uygulamada 403 alır.
  2. Users and permissions (sol sütunun altında, hesap düzeyinde): Invite new users'ı seç, service account e-posta adresini yapıştır (.iam.gserviceaccount.com ile biten), sonra App permissions altında uygulamanı ekle ve en azından Manage store presence yetkisini ver. Bu tek uygulama izni, mağaza metnini ve ekran görüntülerini yayınlamak için yeterlidir; hesap düzeyinde Admin'e ihtiyacın yok.

Uygulamanın Play Console'da zaten var olması gerekir. Listing API'si mevcut bir paketi düzenler, yeni bir uygulama oluşturmaz ve henüz bir APK ya da AAB yüklenmesi gerekmez. Mokbi'ye girdiğin paket adının uygulamayla birebir eşleştiğinden emin ol.

Bir numaralı tuzak: Cloud IAM, Play Console değildir

Sürekli PERMISSION_DENIED alıyorsan neredeyse her zaman sebebi budur. Google Cloud IAM (Cloud Console'daki, service account'a "rol" atadığın IAM & Admin → IAM sayfası) Google Cloud kaynaklarına erişimi kontrol eder. Bunun, uygulamanın mağaza sayfasına erişimiyle hiçbir ilgisi yoktur. Orada rol atamak bir mağaza izin hatasını asla çözmez.

Uygulama erişimi tamamen Play Console'da yaşar, yukarıdaki iki yerde: API access bağlantısı ve Users and permissions daveti. Bunları ayarla, 403 döndüren aynı anahtar çalışmaya başlar.

Apple: bir App Store Connect API anahtarı oluştur

Bu işlem App Store Connect'te yapılır (appstoreconnect.apple.com). Mokbi senden üç şey ister: .p8 dosyasının içeriği, Key ID ve Issuer ID.

  1. Users and Access → Integrations → App Store Connect API bölümüne git. Bu bölüm yalnızca ekibinin Account Holder'ına ya da bir Admin'e görünür. Sorulursa, team key'lere izin ver.
  2. Generate API Key düğmesine tıkla, bir isim ver (örneğin "Mokbi Publisher") ve ona App Manager rolünü ver.
  3. .p8 dosyasını indir. Onu yalnızca bir kez indirebilirsin, o yüzden güvenli bir yerde sakla. Anahtarın yanında gösterilen Key ID'yi ve Keys sayfasının üstündeki UUID olan Issuer ID'yi not al.

Google'da olduğu gibi, uygulamanın App Store Connect'te zaten var olması gerekir. API mevcut bir mağaza sayfasını düzenler ve herhangi bir build yüklenmesi gerekmez. Mokbi ile yayınlamak sürümü senin için hazırlar ve inceleme gönderiminden önce durur, yani hazır olduğunda App Store Connect'te Submit'e kendin basarsın.

Mokbi'de bağla

Bir proje aç, Yayınla adımına git ve bağlantı düğmelerini kullan:

  • Google Play bağla: tam service account JSON'unu yapıştır, ardından Doğrula ve bağla. Paket adını gir ve yayınlamadan önce Bağlantıyı test et'ı çalıştır.
  • App Store Connect bağla: .p8 dosyasını bir metin editöründe aç ve içeriğini yapıştır, Key ID ve Issuer ID'yi ekle, ardından Doğrula ve bağla.

Her anahtar herhangi bir şey kaydedilmeden önce mağazayla doğrulanır, kasamızda şifrelenmiş olarak saklanır ve istediğin an Bağlantıyı kes ile kaldırılabilir.

Sık karşılaşılan sorunlar ve çözümleri

"Service account key creation is disabled." Bir org politikası JSON anahtarlarını engelliyor. Proje için iam.disableServiceAccountKeyCreation'ı kapat (Google Play, 1. bölüme bak), iki dakika bekle ve tekrar dene.

Her uygulamada PERMISSION_DENIED veya 403. Erişim Play Console'da ayarlanmamış. Cloud projesinin Setup → API access altında bağlı olduğunu ve service account e-postasının Users and permissions altında, uygulamanda Manage store presence yetkisiyle davet edildiğini doğrula. Cloud IAM'deki roller sayılmaz.

Erişim verdikten hemen sonra hâlâ başarısız oluyor. İzin değişikliklerinin yayılması birkaç dakika sürer. Play Console'da izni yeniden kaydet (aç ve tekrar kaydet) ya da biraz bekle, sonra Bağlantıyı test et'ı bir kez daha çalıştır. Hızlı bir izolasyon testi olarak, service account'a geçici olarak hesap düzeyinde Admin vermek deneme çalıştırmasını geçirmelidir — geçerse, önceki hata bir uygulama kapsamı ya da proje bağlantısı sorunuydu.

Yanlış uygulama ya da hiçbir şey olmuyor. Mokbi'deki paket adı, Play Console'daki uygulamayla birebir eşleşmeli ve uygulama her iki konsolda da zaten var olmalı. Listing API mevcut bir uygulamayı düzenler, asla yenisini oluşturmaz.

.p8 dosyanı kaybettin. Apple onu yalnızca bir kez indirmene izin verir. Kaybolduysa, App Store Connect'te o anahtarı iptal et ve yenisini oluştur, ardından Mokbi'de yeniden bağlan.

Mağazalarını bağla → Yayınlamanın nasıl çalıştığını gör