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
Tworzenie aplikacji Defold na platformie macOS jest prostym procesem i wymaga bardzo niewielu dodatkowych czynności.
Konfigurację aplikacji specyficzną dla macOS wykonuje się w sekcji macOS pliku ustawień game.project.
Ikona aplikacji używana przez grę na macOS musi mieć format .icns. Możesz łatwo utworzyć plik .icns z zestawu plików .png zebranych w .iconset. Postępuj zgodnie z oficjalnymi instrukcjami tworzenia pliku .icns. Krótkie podsumowanie kroków:
game.iconsetSkopiuj pliki ikon do utworzonego folderu:
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.png.iconset do pliku .icns za pomocą narzędzia wiersza poleceń iconutil:iconutil -c icns -o game.icns game.iconset
Możesz opublikować aplikację w Mac App Store, w zewnętrznym sklepie lub portalu, takim jak Steam albo itch.io, albo samodzielnie przez stronę internetową. Zanim opublikujesz aplikację, musisz przygotować ją do przesłania. Poniższe kroki są wymagane niezależnie od tego, w jaki sposób planujesz dystrybuować aplikację:
$ 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 - Określa, czy aplikacja może tworzyć pamięć zapisywalną i wykonywalną przy użyciu flagi MAP_JITcom.apple.security.cs.allow-unsigned-executable-memory - Określa, czy aplikacja może tworzyć pamięć zapisywalną i wykonywalną bez ograniczeń narzucanych przez flagę MAP_JITcom.apple.security.cs.allow-dyld-environment-variables - Określa, czy na aplikację mogą wpływać zmienne środowiskowe dynamicznego linkera, których można użyć do wstrzyknięcia kodu do procesu aplikacjiNiektóre aplikacje mogą też wymagać dodatkowych uprawnień. Rozszerzenie Steamworks wymaga dodatkowego uprawnienia:
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
* `com.apple.security.cs.disable-library-validation` - Określa, czy aplikacja może wczytywać dowolne wtyczki lub frameworki bez wymogu podpisywania kodu
Wszystkie uprawnienia, które można przyznać aplikacji, są wymienione w oficjalnej dokumentacji Apple dla deweloperów.
codesign:$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app
Apple wymaga, aby całe oprogramowanie dystrybuowane poza Mac App Store było notaryzowane przez Apple, żeby mogło domyślnie uruchamiać się w macOS Catalina. Zobacz oficjalną dokumentację, aby dowiedzieć się, jak dodać notaryzację do zautomatyzowanego środowiska budowania poza Xcode. Krótkie podsumowanie kroków:
1) Wykonaj powyższe kroki dodawania uprawnień i podpisywania aplikacji.
2) Spakuj grę do pliku zip i prześlij ją do notaryzacji za pomocą altool.
$ 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:$ xcrun altool --notarization-info 2EFE2717-52EF-43A5-96DC-0797E4CA1041
-u "AC_USERNAME"
success, a następnie dołącz bilet notaryzacji do gry:$ xcrun stapler staple "Game.app"
Proces publikowania w Mac App Store jest dobrze opisany w dokumentacji Apple Developer. Przed przesłaniem upewnij się, że dodano uprawnienia i podpisano aplikację zgodnie z powyższym opisem.
Uwaga: Gra nie musi być notaryzowana, gdy publikujesz ją w Mac App Store.
Manifest prywatności to plik listy właściwości, który zapisuje typy danych zbieranych przez aplikację lub SDK firm trzecich oraz używane przez nie interfejsy API wymagające podania uzasadnienia. Dla każdego typu danych zbieranego przez aplikację lub SDK firm trzecich oraz dla każdej kategorii używanego interfejsu API wymagającego podania uzasadnienia aplikacja lub SDK firm trzecich musi zapisać powody w dołączonym pliku manifestu prywatności.
Defold udostępnia domyślny manifest prywatności za pośrednictwem pola Privacy Manifest w pliku game.project. Podczas tworzenia pakietu aplikacji manifest prywatności jest scalany z manifestami prywatności w zależnościach projektu i dołączany do pakietu aplikacji.
Więcej informacji o manifestach prywatności znajdziesz w oficjalnej dokumentacji Apple.