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
Urządzenia z Androidem pozwalają swobodnie uruchamiać na nich własne aplikacje. Bardzo łatwo jest zbudować wersję gry i skopiować ją na urządzenie z Androidem. Ta instrukcja wyjaśnia kolejne kroki pakowania gry na Androida. Podczas tworzenia często wygodniej jest uruchamiać grę przez development app, ponieważ umożliwia szybkie przeładowywanie zawartości i kodu bezpośrednio na urządzeniu.
Android wymaga, aby wszystkie pliki APK były przed instalacją na urządzeniu lub aktualizacją cyfrowo podpisane certyfikatem. Jeśli używasz Android App Bundles, musisz podpisać tylko swój pakiet aplikacji przed przesłaniem go do Play Console, a Play App Signing zajmie się resztą. Możesz też ręcznie podpisać aplikację przed wysłaniem do Google Play, do innych sklepów z aplikacjami lub do dystrybucji poza sklepami.
Gdy tworzysz pakiet aplikacji Android z edytora Defold albo za pomocą narzędzia wiersza poleceń, możesz podać keystore, który zawiera certyfikat i klucz, oraz hasło do keystore. Te dane zostaną użyte do podpisania aplikacji. Jeśli ich nie podasz, Defold wygeneruje debug keystore i użyje go do podpisania pakietu aplikacji.
Nigdy nie przesyłaj aplikacji do Google Play, jeśli została podpisana za pomocą debug keystore. Zawsze używaj własnego, osobnego keystore.
Proces podpisywania Androida w Defold zmienił się w wersji 1.2.173: zamiast osobnego klucza i certyfikatu używa teraz keystore. Więcej informacji w tym poście na forum.
Keystore możesz utworzyć w Android Studio albo z poziomu terminala / wiersza poleceń:
keytool -genkey -v -noprompt -dname "CN=John Smith, OU=Area 51, O=US Air Force, L=Unknown, ST=Nevada, C=US" -keystore mykeystore.keystore -storepass 5Up3r_53cR3t -alias myAlias -keyalg RSA -validity 9125
To utworzy plik keystore o nazwie mykeystore.keystore, zawierający klucz i certyfikat. Dostęp do klucza i certyfikatu będzie chroniony hasłem 5Up3r_53cR3t. Klucz i certyfikat będą ważne przez 25 lat, czyli 9125 dni. Wygenerowany klucz i certyfikat będą identyfikowane aliasem myAlias.
Pamiętaj, aby przechowywać keystore i powiązane z nim hasło w bezpiecznym miejscu. Jeśli sam podpisujesz i przesyłasz aplikacje do Google Play, a keystore lub jego hasło zostanie utracone, nie będzie żadnego sposobu, aby zaktualizować aplikację w Google Play. Możesz tego uniknąć, korzystając z Google Play App Signing i pozwalając Google podpisywać aplikacje za Ciebie.
Edytor pozwala łatwo utworzyć samodzielny pakiet aplikacji dla gry. Przed pakowaniem możesz określić, której ikony lub których ikon użyć dla aplikacji, ustawić kod wersji itd. w pliku game.project plik ustawień projektu.
Aby spakować grę, wybierz Project ▸ Bundle... ▸ Android Application... z menu.
Jeśli chcesz, aby edytor automatycznie tworzył losowe debug certyfikaty, pozostaw pola Keystore i Keystore password puste:

Jeśli chcesz podpisać pakiet konkretnym keystore, wskaż pola Keystore i Keystore password. Oczekuje się, że Keystore będzie miał rozszerzenie pliku .keystore, a hasło ma być zapisane w pliku tekstowym z rozszerzeniem .txt. Można też podać Key password, jeśli klucz w keystore ma inne hasło niż sam keystore:

Defold obsługuje tworzenie zarówno plików APK, jak i AAB. Wybierz APK albo AAB z listy rozwijanej Bundle Format.
Naciśnij Create Bundle, gdy skonfigurujesz ustawienia pakietu aplikacji. Zostaniesz wtedy poproszony o wskazanie miejsca na komputerze, w którym pakiet ma zostać utworzony.

Gdy tworzysz pakiet gry, musisz wybrać, którego wariantu silnika chcesz użyć. Masz trzy podstawowe opcje:
Te różne wersje są też określane jako Build variants.
Gdy wybierzesz Project ▸ Build, zawsze otrzymasz wersję debug.
Ten typ pliku wykonywalnego jest zwykle używany podczas tworzenia gry, ponieważ zawiera kilka przydatnych funkcji debugowania:
print() oraz z natywnych rozszerzeń korzystających z dmLogInfo(), dmLogError() i podobnych. Dowiedz się, jak czytać te logi w podręczniku logów gry i systemu.Ten wariant ma wyłączone funkcje debugowania. Tę opcję należy wybrać, gdy gra jest gotowa do publikacji w sklepie z aplikacjami lub udostępnienia graczom w inny sposób. Nie zaleca się wydawania gry z włączonymi funkcjami debugowania z kilku powodów:
Ten plik wykonywalny działa bez grafiki i dźwięku. Oznacza to, że możesz uruchamiać testy jednostkowe i smoke testy gry na serwerze CI, a nawet używać go jako serwera gry w chmurze.
Plik .apk można skopiować na urządzenie za pomocą narzędzia adb albo przesłać do Google Play przez konsolę deweloperską Google Play.
Narzędzie wiersza poleceń adb jest łatwym w użyciu i wszechstronnym programem służącym do komunikacji z urządzeniami z Androidem. adb można pobrać i zainstalować jako część Android SDK Platform-Tools dla systemów Mac, Linux lub Windows.
Pobierz Android SDK Platform-Tools z: https://developer.android.com/studio/releases/platform-tools. Narzędzie adb znajdziesz w katalogu /platform-tools/. Alternatywnie pakiety dla konkretnych systemów można zainstalować za pomocą odpowiednich menedżerów pakietów.
W Ubuntu Linux:
$ sudo apt-get install android-tools-adb
W Fedora 18/19:
$ sudo yum install android-tools
W macOS (Homebrew)
$ brew cask install android-platform-tools
Możesz sprawdzić, czy adb działa, podłączając urządzenie z Androidem do komputera przez USB i wykonując następujące polecenie:
$ adb devices
List of devices attached
31002535c90ef000 device
Jeśli urządzenie się nie pojawia, sprawdź, czy na urządzeniu z Androidem włączono USB debugging. Otwórz Settings urządzenia i poszukaj Developer options (lub Development).

$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/my_app.apk
Success
Plik .apk możesz zainstalować i uruchomić za pomocą pól wyboru edytora Install on connected device i Launch installed app w oknie Bundle:

Aby ta funkcja działała, musisz mieć zainstalowany ADB oraz włączone USB debugging na podłączonym urządzeniu. Jeśli edytor nie potrafi wykryć lokalizacji narzędzia wiersza poleceń ADB, musisz ją wskazać w preferencjach edytora.
Plik .aab można przesłać do Google Play przez konsolę deweloperską Google Play. Można też wygenerować plik .apk z pliku .aab, aby zainstalować go lokalnie za pomocą Android bundletool.
Silnik Defold wymaga szeregu różnych uprawnień, aby działały wszystkie jego funkcje. Uprawnienia są definiowane w pliku AndroidManifest.xml, wskazanym w pliku game.project plik ustawień projektu. Więcej o uprawnieniach Androida można przeczytać w oficjalnej dokumentacji. W domyślnym manifeście są wymagane następujące uprawnienia:
Pozwalają aplikacjom otwierać gniazda sieciowe i uzyskiwać informacje o sieciach. Te uprawnienia są potrzebne do korzystania z Internetu. (oficjalna dokumentacja Androida) oraz (oficjalna dokumentacja Androida).
Pozwala używać PowerManager WakeLocks, aby zapobiec usypianiu procesora lub wygaszaniu ekranu. To uprawnienie jest potrzebne do tymczasowego powstrzymania urządzenia przed przejściem w stan uśpienia podczas odbierania powiadomienia push. (oficjalna dokumentacja Androida)
AndroidX to duże ulepszenie oryginalnej Android Support Library, która nie jest już rozwijana. Pakiety AndroidX całkowicie zastępują Support Library, zapewniając pełną zgodność funkcji i nowe biblioteki. Większość rozszerzeń Androida w Portalu zasobów (Asset Portal) obsługuje AndroidX. Jeśli nie chcesz używać AndroidX, możesz je jawnie wyłączyć na rzecz starej Android Support Library, zaznaczając Use Android Support Lib w manifeście aplikacji.

O: Tak, ustaw opcję immersive_mode w sekcji Android w pliku game.project. Dzięki temu aplikacja może przejąć cały ekran i przechwytywać wszystkie zdarzenia dotykowe na ekranie.
O: Android wykrywa, że próbujesz zainstalować aplikację z nowym certyfikatem. Podczas tworzenia pakietów debugowych każda kompilacja jest podpisywana tymczasowym certyfikatem. Przed zainstalowaniem nowej wersji odinstaluj starą aplikację:
$ adb uninstall com.defold.examples
Success
$ adb install Defold\ examples.apk
4826 KB/s (18774344 bytes in 3.798s)
pkg: /data/local/tmp/Defold examples.apk
Success
O: Może się tak zdarzyć, gdy dwa lub więcej rozszerzeń dostarcza szablon manifestu Androida zawierający ten sam tag właściwości, ale z różnymi wartościami. Taka sytuacja miała na przykład miejsce z Firebase i AdMob. Błąd budowania wygląda podobnie do tego:
SEVERE: /tmp/job4531953598647135356/upload/AndroidManifest.xml:32:13-58
Error: Attribute property#android.adservices.AD_SERVICES_CONFIG@resource
value=(@xml/ga_ad_services_config) from AndroidManifest.xml:32:13-58 is also
present at AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).
Suggestion: add 'tools:replace="android:resource"' to <property> element at
AndroidManifest.xml to override.
Więcej informacji o tym problemie i obejściu znajdziesz w zgłoszonym problemie Defold #9453 oraz w problemie Google #327696048.