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
Uygulamanızı geliştirirken oyunu hedef platformlarda mümkün olduğunca sık test etmeyi alışkanlık haline getirmeniz önerilir. Böylece performans sorunlarını, çözmenin çok daha kolay olduğu geliştirme sürecinin erken aşamalarında tespit edebilirsiniz. Gölgelendiriciler (shader) gibi konulardaki farklılıkları bulmak için de tüm hedef platformlarda test yapmanız önerilir. Mobil cihazlar için geliştirme yaparken, tam bir paketleme (bundling) ve uygulamayı kaldırıp yeniden kurma döngüsü yerine mobil geliştirme uygulamasını kullanarak içeriği uygulamaya gönderebilirsiniz.
Defold’un desteklediği tüm platformlar için, harici araçlara gerek duymadan doğrudan Defold düzenleyicisinden bir uygulama dağıtım paketi (application bundle) oluşturabilirsiniz. Komut satırı araçlarımızı kullanarak komut satırından da paketleme yapabilirsiniz. Projeniz bir veya daha fazla yerel kod eklentisi (native extension) içeriyorsa uygulamayı paketlemek için ağ bağlantısı gerekir.
Project menüsündeki Bundle seçeneğiyle bir uygulama dağıtım paketi oluşturabilirsiniz:

Menü seçeneklerinden herhangi birini seçtiğinizde, ilgili platforma ait Bundle iletişim kutusu açılır.
Oyununuzu paketlerken bir derleme raporu (build report) oluşturma seçeneği bulunur. Bu, oyununuzun dağıtım paketindeki tüm varlıkların (asset) boyutlarını anlamak için çok yararlıdır. Oyunu paketlerken Generate build report onay kutusunu işaretlemeniz yeterlidir.

Derleme raporları hakkında daha fazla bilgi edinmek için Profil çıkarma kılavuzuna bakın.
Android uygulama dağıtım paketi (.apk dosyası) oluşturma işlemi Android kılavuzunda açıklanır.
iOS uygulama dağıtım paketi (.ipa dosyası) oluşturma işlemi iOS kılavuzunda açıklanır.
macOS uygulama dağıtım paketi (.app dosyası) oluşturma işlemi macOS kılavuzunda açıklanır.
Linux uygulama dağıtım paketi oluşturmak, özel bir kurulum veya game.project proje ayarları dosyasında platforma özgü isteğe bağlı bir yapılandırma gerektirmez.
Windows uygulama dağıtım paketi (.exe dosyası) oluşturma işlemi Windows kılavuzunda açıklanır.
HTML5 uygulama dağıtım paketi oluşturma işlemi ve isteğe bağlı kurulum HTML5 kılavuzunda açıklanır.
Bir HTML5 uygulama dağıtım paketinin, özellikle Facebook Instant Games için hazırlanmış özel bir sürümünü oluşturabilirsiniz. Bu işlem Facebook Instant Games kılavuzunda açıklanır.
Düzenleyici, uygulamayı paketlemek için Bob adlı komut satırı aracımızı kullanır.
Uygulamanızın günlük geliştirme sürecinde derleme ve paketleme işlemlerini büyük olasılıkla Defold düzenleyicisinden yaparsınız. Başka durumlarda uygulama dağıtım paketlerini otomatik oluşturmak isteyebilirsiniz. Örneğin yeni bir sürüm yayımlarken tüm hedefler için toplu derleme yaparken veya oyunun en son sürümünün gece derlemelerini oluştururken bunu isteyebilirsiniz; bu işlemler bir sürekli tümleştirme (CI) ortamında da yapılabilir. Bir uygulamanın derlenmesi ve paketlenmesi, Bob komut satırı aracı kullanılarak olağan düzenleyici iş akışının dışında gerçekleştirilebilir.
Dağıtım paketinin mantıksal yapısı şöyledir:

Dağıtım paketi bir klasöre yazılır. Platforma bağlı olarak bu klasör, zip biçiminde arşivlenerek bir .apk veya .ipa dosyasına da dönüştürülebilir.
Klasörün içeriği platforma bağlıdır.
Paketleme sürecimiz, yürütülebilir dosyaların yanı sıra platform için gerekli varlıkları da toplar (örneğin Android için .xml kaynak dosyaları).
bundle_resources ayarını kullanarak, dağıtım paketine olduğu gibi yerleştirilmesi gereken varlıkları yapılandırabilirsiniz. Bunu her platform için ayrı ayrı kontrol edebilirsiniz.
Oyun varlıkları game.arcd dosyasında bulunur ve LZ4 sıkıştırması kullanılarak ayrı ayrı sıkıştırılır.
custom_resources ayarını kullanarak, game.arcd dosyasına (sıkıştırılarak) yerleştirilmesi gereken varlıkları yapılandırabilirsiniz.
Bu varlıklara sys.load_resource() işlevi aracılığıyla erişilebilir.
Bir uygulama dağıtım paketi oluştururken hata ayıklama paketi (debug) veya yayıma yönelik paket (release) oluşturmayı seçebilirsiniz. Bu iki paket arasındaki farklar küçüktür, ancak bunları akılda tutmak önemlidir:
print() çağrılarının veya herhangi bir yerel kod eklentisinin çıktısını göstermezis_debug değeri, sys.get_engine_info() içinde false olarak ayarlanırhash değerleri için tostring() çağrıldığında ters arama yapmaz. Pratikte bu, tostring() işlevinin url veya hash türündeki bir değer için özgün dize yerine sayısal gösterimi döndürmesi anlamına gelir ('hash: [/camera_001]' yerine 'hash: [11844936738040519888 (unknown)]')