Rehber

Mac Olmadan App Store'da Oyun Yayınlama: Bulut Derleme Yolumuz

Bir HTML5 oyununu Windows bilgisayardan Capacitor, Codemagic ve TestFlight ile App Store incelemesine nasıl götürdük ve bize derlemelere mal olan hatalar.

Polar Games Marketplace'teki Sunset Rally şablonunun tanıtım görseli.

Evet, Mac olmadan App Store'da oyun yayınlamak mümkün. Mac'e yine ihtiyaç var ama onu kiralıyorsunuz: HTML5 oyun bilgisayarınızda Capacitor ile sarmalanıyor, Codemagic gibi bir bulut hizmeti onu kendi Mac makinelerinde derleyip imzalıyor, derleme App Store Connect'e ve TestFlight'a gidiyor; mağaza sayfasını, gizlilik bilgilerini ve gönderimi de tarayıcıda tamamlıyorsunuz. Atlayamayacağınız tek şey bir iPhone, çünkü derlemeyi Apple'dan önce birinin oynaması gerekiyor.

Bunu Windows'tan, kendi aksiyon oyunumuz Little Ninja Dash ile yaptık. İlk başarılı bulut derlemesi yaklaşık altı dakika sürdü ve uygulama 19 Ekim 2026'da App Review'a gitti; kayıtlarımızda durumu Waiting for Review olarak görünüyor. Bu rehber bir inceleme sonucu bildirmiyor. Apple ve Codemagic'e dair bilgiler, 30 Ekim 2026'da okunan resmi sayfalarından geliyor. Geri kalanı, ters giden kısımlar dahil, notlarımızın kaydettikleri.

Mac olmadan App Store'da yayınlamak için gerekenler

  • Apple Developer Program üyeliği: üyelik yılı başına 99 ABD doları. Bireyler ve kuruluşlar kaydolabilir. Kuruluşların bir D-U-N-S Numarası ve herkese açık bir web sitesi olması gerekiyor.
  • Bir Codemagic hesabı. Ücretsiz bireysel planda ayda 500 macOS M2 derleme dakikası ve aynı anda tek derleme var; sonrasında Mac mini M2 dakikası 0,095 ABD doları. Ücretsiz dakikalar ekipler için değil, tek kullanıcılar için.
  • Projenizi içeren gizli bir Git deposu. Codemagic, bağladığınız depodan derleme yapar. Şablonlarımızda gizli depo zorunlu: herkese açık bir depo kaynak kodunu yeniden dağıtmak olur ve lisans bunu yasaklıyor.
  • Gerçek derlemeyi test etmek için TestFlight uygulaması yüklü bir iPhone.
  • Kendi klasöründen çevrimdışı çalışan, Capacitor ile sarmalanmış bir oyun.

Apple, 28 Nisan 2026'dan beri App Store Connect'e yüklenen uygulamaların Xcode 26 veya üstüyle ve bir iOS 26 SDK'sıyla derlenmesini şart koşuyor. Capacitor'ın iOS sayfası da Xcode 26.0 veya üstünü listeliyor ve iOS 15 ve sonrasını destekliyor. Xcode yalnızca macOS'ta çalışır; derlemenin bilgisayarınızda değil, Codemagic'in makinelerinde yapılmasının sebebi bu.

Şablon sürümlerimiz tarayıcı oyunlarıdır. Her sürüm sayfası yerel uygulama derlemelerini dahil olmayanlar arasında listeler. Bir lisans bir son ürünü kapsar ve o oyunu App Store ile Google Play dahil istediğiniz yerde yayınlayabilirsiniz. Şablonun kendisini yeniden satamazsınız. Ücretli uygulama ya da uygulama içi satın alma ile oyunculardan ücret almayı planlıyorsanız önce bize sorun.

Şablonlara ve her sürümün içeriğine göz atın

Adım 1: iOS projesini Windows'ta ekleyin

Android için zaten bir Capacitor projeniz varsa @capacitor/ios paketini kurun ve npx cap add ios çalıştırın. Bu, Windows'ta bile ios/ klasörünü oluşturur. Klasörü yerelde Xcode ile açamazsınız; bu yüzden yerel projedeki her değişiklik, bir sonraki bulut derlemesinde kontrol edeceğiniz bir dosya düzenlemesidir.

  • Simge: saydamlık içermeyen tek bir 1024 x 1024 PNG.
  • Cihazlar ve yön: oyunumuz yalnızca iPhone ve yalnızca yatay. iPad desteği, iPad ekran görüntüleri ve test edilecek daha fazla yerleşim demek.
  • Şifreleme: Apple'ın ihracat uyumluluğu yardımı, her gönderimde şifreleme sorularını yanıtlamamak için uygulamanın Info.plist dosyasını güncellemeyi söylüyor. Oyunumuz yalnızca sistemin HTTPS'ini kullandığı için ITSAppUsesNonExemptEncryption değerini false yaptık.
  • Yalnızca paketlenmiş dosyalar: oyun uygulamanın içinde ve web sitemizi hiç yüklemiyor. Apple'ın 4.2 yönergesi, yeniden paketlenmiş bir web sitesinin ötesine geçen uygulamalar istiyor.

Bir şablondan mı başlıyorsunuz? Velvet Pool, Google Play için Capacitor ile sarmaladığımız bir şablon; yani oyun klasörü bu adımdan Android'de zaten geçti. Şablonlarımızın hiçbiri henüz App Store incelemesinden geçmedi.

Capacitor ile zaten sarmaladığımız şablon Velvet Pool'u inceleyin

Adım 2: Mac ve Anahtar Zinciri olmadan imzalama

İmzalama, eskiden Mac gerektiren kısımdı. Bir App Store Connect API anahtarıyla Codemagic bunu bulutta yapabiliyor.

  1. Apple Developer sitesinde oyun için bir App ID (bundle identifier) oluşturun; içinde bir şey satacaksanız In-App Purchase ile birlikte.
  2. App Store Connect'te bu bundle ID, bir SKU ve birincil dille uygulama kaydını oluşturun.
  3. Bir App Store Connect API anahtarı üretin. Codemagic'in belgeleri Codemagic'e özel bir anahtar öneriyor. Anahtarı Codemagic'in entegrasyon ayarlarına ekleyin ve anahtar dosyasını asla deponuza koymayın.
  4. Dağıtım sertifikasını Codemagic'e ürettirin ve provisioning profile'ı anahtarla çekmesine izin verin. Daha önce ürettiği sertifikaları ve Apple Developer portalındaki profilleri çekebiliyor.

Bizde ne ters gitti

  • İlk iki derlememiz, bundle ID için henüz bir provisioning profile kurulmadığı için başarısız oldu. Sertifikayı ve profili ilk derlemeden önce kurun.
  • Codemagic'e referans adı olmadan içe aktarılan bir profil çalışmadı ve düğme sessizce hata verdi. Adı her zaman doldurun.
  • İlk API anahtarı kurulumu, Issuer ID'yi yanlış yazdığımız için başarısız oldu. Apple'ın anahtarlar sayfasından kopyalayıp yapıştırın.
  • Derleme numaraları her zaman artmalı. Önceki bir yükleme hâlâ işlenirken Apple'dan son numarayı istemek başarısız oldu; biz de saatten türetilen bir numaraya geçtik.

Adım 3: Codemagic'te derleyin, TestFlight'ta test edin

Derleme tarifi depodaki bir codemagic.yaml dosyasında durur. Bizimki bağımlılıkları kuruyor, oyun dosyalarını hazırlıyor, npx cap sync ios ile iOS projesine aktarıyor, profilleri uyguluyor ve IPA'yı bir Mac mini M2 makinesinde derliyor. Ardından Codemagic derlemeyi App Store Connect'e yayınlıyor. İlk başarılı derlememiz yaklaşık altı dakika, sonraki üretim derlemesi dört dakikadan kısa sürdü.

Bir sürpriz: submit_to_testflight false olarak ayarlıyken Codemagic derlemeyi yine de App Store Connect'e yükledi. Codemagic'in belgeleri bu seçeneği beta gruplarına dağıtım için gereken seçenek olarak tanımlıyor.

TestFlight sınırları

  • Dahili test kullanıcıları: ekibinizdeki en fazla 100 App Store Connect kullanıcısı.
  • Harici test kullanıcıları: harici test için ilk derlemeniz App Review tarafından onaylandıktan sonra en fazla 10.000.
  • Bir derleme test kullanıcılarına en fazla 90 gün açık kalır.

Dahili test daveti, TestFlight e-postasından kabul edilene kadar beklemede kalır ve uygulama ondan önce TestFlight'ta görünmez. Spam klasörünü kontrol edin.

iPhone'un bulduğu, Windows'un bulamadığı şeyler

  • Kayıtlı ses dosyaları yüklenmedi. Uygulama içinde fetch doğru baytlarla birlikte 0 durum kodu döndürüyordu ve kodumuz bunu hata sayıyordu. Yerel dosyalar için 0 durumunu kabul etmek sorunu çözdü.
  • Yatay modda çentiğe yakın düğmeler kesiliyordu. Sonuç ekranının yerleşimini yeniden düzenledik ve her köşeyi test ettik.
  • Android ile ortak satın alma ekranlarında hâlâ Google Play yazıyordu. iOS'ta artık App Store yazıyor.
  • TestFlight'ta yapılan test satın almaları sıfırlanamıyordu; bu yüzden test derlemelerine satın almamış olmayı taklit eden bir düğme ekledik. Mağaza derlemelerinde bu düğme yok.

Adım 4: App Store Connect sayfası, gizlilik ve yaş derecelendirmesi

Geri kalanı tarayıcıda olur. Bizim için işe yarayan sıra şu.

  1. App Information: alt başlık, kategori ve yaş derecelendirmesi anketi. Oyunun gerçekte gösterdiğine göre dürüstçe yanıtlayın.
  2. Pricing and Availability: fiyat ve ülkeler. Mac ve Apple Vision Pro kullanılabilirliği varsayılan olarak açıktı. Oyunumuz dokunmatik için yapıldığından kapattık.
  3. App Privacy: Apple bu bilgileri yeni uygulamalar ve güncellemeler için istiyor; kodu uygulamada bulunan reklam ağları ve SDK'lar gibi üçüncü taraf ortakların uygulamaları dahil. Herkese açık bir gizlilik politikası URL'si zorunlu.
  4. Varsa uygulama içi satın alma: adlar, açıklamalar, bir inceleme ekran görüntüsü ve inceleyici için notlar.
  5. Sürüm sayfası: açıklama, anahtar kelimeler, destek ve pazarlama URL'leri, telif hakkı, derleme, inceleme notları ve yayın seçeneği. Biz manuel yayını seçtik.
  6. Ekran görüntüleri, ardından kendi metni ve görüntüleriyle her ek dil.
  • Ekran görüntüleri: 2.3.3 yönergesi, yalnızca başlık görseli veya açılış ekranı değil, uygulamanın kullanım hâlinin gösterilmesini istiyor. Bizimkiler oyunun gerçek görüntüleri.
  • Uygulama adı: istediğimiz bir ad App Store'da zaten alınmıştı. İkinci bir ad ya da kısa bir açıklayıcı kısım içeren bir ad hazır tutun.
  • İnceleme notları: oyunun uygulama içinde eksiksiz olduğunu, çevrimdışı çalıştığını, giriş gerektirmediğini ve satın alma ile geri yükleme düğmesinin nerede olduğunu yazdık.

Bir şablonu uygulama olarak yayınlamadan önce lisans şartlarımızı okuyun

Adım 5: gönderin ve Apple'ın neyi kontrol ettiğini bilin

Gönderim sırasında App Privacy yanıtlarını yayınlamanız ve doğru olduklarını onaylamanız, ardından taslak gönderimi göndermeniz istenir. Bizimki 19 Ekim 2026'da uygulama sürümü ve tek seferlik satın almasıyla gitti ve durum Waiting for Review oldu. İnceleme ret ile dönerse yanıt, körlemesine yeniden göndermeyle değil, gerçeklerle Resolution Center üzerinden verilir.

Şablondan yapılmış bir oyun için en önemli üç yönerge var. 4.2 yeniden paketlenmiş bir web sitesinden fazlasını istiyor; oyunu uygulamanın içinde tutun. 4.3(a) aynı uygulama için birden fazla bundle ID oluşturmamanızı istiyor. 4.3(b), Apple'ın zaten yaygın olarak bulunanlardan ayırt edilemeyen uygulamaları istemediğini söylüyor. Bir reskin yalnızca grafikleri değil, kuralları, içeriği ve arayüzü de değiştirmeli.

Şablonlarımız neleri içeriyor ve sizin için yapabileceğimiz kısım

Her şablon barındırmaya hazır oyun klasörü, okunabilir kaynak kodu, bir kılavuz ve 6 ay destekle gelir; uzatmayla 12 ay. Destek, sağlanan dosyaların kurulumu ve kullanımını ve tekrar üretilebilen hataların düzeltilmesini kapsar. iOS sarmalayıcısı, yerel reklamlar, uygulama içi satın almalar, bulut derleme kurulumu ve App Store sayfası ayrı hizmetlerdir.

İmzalamayı ve Codemagic'i kendiniz kurmak istemiyorsanız şablonu, Apple hesabı planınızı ve teslim tarihini bize gönderin. Hiçbir iş başlamadan kapsam, fiyat ve süreyle dönüş yaparız. Özel işler için fiyat listesi yayınlamıyoruz.

Oyununuzu App Store'a taşımak için teklif isteyin

Sıkça sorulan sorular

Mac sahibi olmadan bir iPhone oyunu yayınlayabilir miyim?

Evet. Derleme için yine macOS ve Xcode gerekiyor ama bunları Codemagic gibi bir bulut hizmeti sağlıyor. App Store Connect'ten TestFlight'a kadar geri kalan her şey bir tarayıcıda ve bir iPhone'da çalışıyor.

App Store'da yayınlamak ne kadara mal olur?

Apple Developer Program üyelik yılı başına 99 ABD doları. Codemagic'in ücretsiz bireysel planı ayda 500 macOS M2 dakikası içeriyor; ek dakikalar dakika başına faturalanıyor. Bunlara oyun lisansını ve mağaza görsellerini ekleyin.

iPhone'a ihtiyacım var mı?

Gerçek test için evet. iPhone'umuz, Windows derlemesinin ve tarayıcı testlerinin göstermediği eksik sesleri, kesilen düğmeleri ve yanlış mağaza adlarını buldu.

Apple, uygulamaya sarmalanmış bir HTML5 oyununu kabul eder mi?

Bir sonuç vaat edemeyiz. 4.2 yönergesi yeniden paketlenmiş bir web sitesinden fazlasını istiyor; bu yüzden oyunun tamamını uygulamanın içine koyuyor, çevrimdışı çalıştırıyor ve yerel özellikler ekliyoruz. 4.3 yönergesi de reskin'lere uygulanıyor.

Şablonlarınız bir iOS derlemesi içeriyor mu?

Hayır. Sürümlerimiz tarayıcı oyunlarıdır ve ürün sayfaları yerel uygulama derlemelerinin dahil olmadığını belirtir. Bu yolu kendiniz izleyebilir ya da bizden teklifle sipariş edebilirsiniz.