Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

macOS için geliştirme

macOS platformu için Defold uygulamaları geliştirmek, dikkate alınması gereken çok az nokta içeren basit bir süreçtir.

Proje ayarları

macOS’a özgü uygulama yapılandırması, game.project ayar dosyasının macOS bölümünden yapılır.

Uygulama simgesi

Bir macOS oyununda kullanılan uygulama simgesi .icns biçiminde olmalıdır. Bir .iconset içinde toplanan .png dosyalarından kolayca bir .icns dosyası oluşturabilirsiniz. .icns dosyası oluşturmaya yönelik resmî yönergeleri izleyin. Gerekli adımların kısa özeti şöyledir:

  • Simgeler için bir klasör oluşturun, örneğin game.iconset
  • Simge dosyalarını oluşturduğunuz klasöre kopyalayın:

    • icon_16x16.png
    • icon_16x16@2x.png
    • icon_32x32.png
    • icon_32x32@2x.png
    • icon_128x128.png
    • icon_128x128@2x.png
    • icon_256x256.png
    • icon_256x256@2x.png
    • icon_512x512.png
    • icon_512x512@2x.png
  • iconutil komut satırı aracını kullanarak .iconset klasörünü bir .icns dosyasına dönüştürün:
iconutil -c icns -o game.icns game.iconset

Uygulamanızı yayımlama

Uygulamanızı Mac App Store’da, Steam veya itch.io gibi üçüncü taraf bir mağaza ya da portalda veya kendi web siteniz üzerinden yayımlayabilirsiniz. Uygulamanızı yayımlamadan önce gönderime hazırlamanız gerekir. Uygulamayı nasıl dağıtmayı planladığınızdan bağımsız olarak aşağıdaki adımlar gereklidir:

  1. Çalıştırma izinlerini ekleyerek herkesin oyununuzu çalıştırabilmesini sağlayın (varsayılan olarak yalnızca dosya sahibinin çalıştırma izni vardır):
$ chmod +x Game.app/Contents/MacOS/Game
  1. Oyununuzun gerektirdiği izinleri belirten bir yetki (entitlement) dosyası oluşturun. Çoğu oyun için aşağıdaki izinler yeterlidir:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
  </dict>
</plist>
  • com.apple.security.cs.allow-jit - Uygulamanın MAP_JIT bayrağını kullanarak yazılabilir ve yürütülebilir bellek oluşturmasına izin verilip verilmediğini belirtir
  • com.apple.security.cs.allow-unsigned-executable-memory - Uygulamanın MAP_JIT bayrağının kullanımından kaynaklanan kısıtlamalar olmadan yazılabilir ve yürütülebilir bellek oluşturmasına izin verilip verilmediğini belirtir
  • com.apple.security.cs.allow-dyld-environment-variables - Uygulamanın, uygulama sürecine kod eklemek için kullanabileceğiniz dinamik bağlayıcı ortam değişkenlerinden etkilenmesine izin verilip verilmediğini belirtir

Bazı uygulamalar ek yetkilere de ihtiyaç duyabilir. Steamworks eklentisi şu ek yetkiyi gerektirir:

<key>com.apple.security.cs.disable-library-validation</key>
<true/>
  • com.apple.security.cs.disable-library-validation - Uygulamanın kod imzalama gerektirmeden herhangi bir eklenti veya yazılım çatısı yüklemesine izin verilip verilmediğini belirtir.

Bir uygulamaya verilebilecek tüm yetkiler, resmî Apple geliştirici belgelerinde listelenmiştir.

  1. Oyununuzu codesign kullanarak imzalayın:
$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app

Mac App Store dışında yayımlama

Apple, Mac App Store dışında dağıtılan tüm yazılımların macOS Catalina’da varsayılan olarak çalışabilmesi için Apple tarafından onaylanmasını (notarization) zorunlu tutar. Xcode dışında, betiklerle yürütülen bir derleme ortamına onay sürecini nasıl ekleyeceğinizi öğrenmek için resmî belgelere bakın. Gerekli adımların kısa özeti şöyledir:

  1. İzinleri eklemek ve uygulamayı imzalamak için yukarıdaki adımları izleyin.

  2. Oyununuzu ZIP arşivine sıkıştırın ve altool kullanarak onay için yükleyin.

$ xcrun altool --notarize-app
               --primary-bundle-id "com.acme.foobar"
               --username "AC_USERNAME"
               --password "@keychain:AC_PASSWORD"
               --asc-provider <ProviderShortname>
               --file Game.zip

altool[16765:378423] No errors uploading 'Game.zip'.
RequestUUID = 2EFE2717-52EF-43A5-96DC-0797E4CA1041
  1. altool --notarize-app çağrısının döndürdüğü istek UUID değerini kullanarak gönderiminizin durumunu kontrol edin:
$ xcrun altool --notarization-info 2EFE2717-52EF-43A5-96DC-0797E4CA1041
               -u "AC_USERNAME"
  1. Durum success olana kadar bekleyin ve onay biletini oyuna iliştirin:
$ xcrun stapler staple "Game.app"
  1. Oyununuz artık dağıtıma hazırdır.

Mac App Store’da yayımlama

Mac App Store’da yayımlama süreci Apple geliştirici belgelerinde ayrıntılı olarak açıklanmıştır. Göndermeden önce yukarıda açıklandığı gibi izinleri eklediğinizden ve uygulamayı codesign ile imzaladığınızdan emin olun.

Not: Mac App Store’da yayımlarken oyunun Apple’ın onay (notarization) sürecinden geçmesi gerekmez.

Apple gizlilik bildirimi

Gizlilik bildirimi (privacy manifest), uygulamanız veya üçüncü taraf SDK tarafından toplanan veri türlerini ve kullanılan, kullanım gerekçesi bildirilmesi zorunlu API’leri kaydeden bir özellik listesidir (property list). Uygulamanız veya üçüncü taraf SDK, topladığı her veri türü ve kullandığı, kullanım gerekçesi bildirilmesi zorunlu her API kategorisi için gerekçeleri, kendi paketine dahil edilen gizlilik bildirimi dosyasına kaydetmelidir.

Defold, game.project dosyasındaki Privacy Manifest alanı aracılığıyla varsayılan bir gizlilik bildirimi sağlar. Bir uygulama dağıtım paketi oluşturulurken gizlilik bildirimi, proje bağımlılıklarındaki tüm gizlilik bildirimleriyle birleştirilir ve uygulama dağıtım paketine eklenir.

Gizlilik bildirimleri hakkında daha fazla bilgi için Apple’ın resmî belgelerini okuyun.