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 platformu için Defold uygulamaları geliştirmek, dikkate alınması gereken çok az nokta içeren basit bir süreçtir.
macOS’a özgü uygulama yapılandırması, game.project ayar dosyasının macOS bölümünden yapılır.
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:
game.iconsetSimge dosyalarını oluşturduğunuz klasöre kopyalayın:
icon_16x16.pngicon_16x16@2x.pngicon_32x32.pngicon_32x32@2x.pngicon_128x128.pngicon_128x128@2x.pngicon_256x256.pngicon_256x256@2x.pngicon_512x512.pngicon_512x512@2x.pngiconutil 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ı 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:
$ chmod +x Game.app/Contents/MacOS/Game
<?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 belirtircom.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 belirtircom.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 belirtirBazı 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.
codesign kullanarak imzalayın:$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app
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:
İzinleri eklemek ve uygulamayı imzalamak için yukarıdaki adımları izleyin.
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
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"
success olana kadar bekleyin ve onay biletini oyuna iliştirin:$ xcrun stapler staple "Game.app"
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.
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.