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
Розробка застосунків Defold для платформи macOS — простий процес, під час якого потрібно врахувати лише кілька особливостей.
Параметри застосунку, специфічні для macOS, задають у розділі macOS файлу налаштувань game.project.
Піктограма застосунку для гри на macOS має бути у форматі .icns. Ви можете легко створити файл .icns із набору файлів .png, зібраних у .iconset. Дотримуйтеся офіційних інструкцій зі створення файлу .icns. Стислий опис потрібних кроків:
game.iconsetСкопіюйте файли піктограм у створену папку:
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 на файл .icns за допомогою засобу командного рядка iconutil:iconutil -c icns -o game.icns game.iconset
Ви можете опублікувати застосунок у Mac App Store, у сторонньому магазині чи на порталі, наприклад Steam або itch.io, або самостійно через вебсайт. Перед публікацією застосунок потрібно підготувати до подання. Наведені нижче кроки обов’язкові незалежно від того, як ви плануєте розповсюджувати застосунок:
$ 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 — визначає, чи може застосунок створювати пам’ять із дозволами на запис і виконання, використовуючи прапорець MAP_JITcom.apple.security.cs.allow-unsigned-executable-memory — визначає, чи може застосунок створювати пам’ять із дозволами на запис і виконання без обмежень, які накладає використання прапорця MAP_JITcom.apple.security.cs.allow-dyld-environment-variables — визначає, чи можуть на застосунок впливати змінні середовища динамічного компонувальника, які можна використовувати для впровадження коду в процес застосункуДеяким застосункам також можуть знадобитися додаткові дозволи. Розширенню Steamworks потрібен такий додатковий дозвіл:
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
com.apple.security.cs.disable-library-validation — визначає, чи може застосунок завантажувати довільні плагіни або фреймворки без вимоги підписування коду.Усі дозволи, які можна надати застосунку, перелічено в офіційній документації Apple для розробників.
codesign:$ codesign --force --sign "Developer ID Application: Company Name" --options runtime --deep --timestamp --entitlements entitlement.plist Game.app
Apple вимагає, щоб усе програмне забезпечення, яке розповсюджується поза Mac App Store, пройшло нотаризацію в Apple, щоб воно запускалося за замовчуванням у macOS Catalina. Зверніться до офіційної документації, щоб дізнатися, як додати нотаризацію до середовища збирання, автоматизованого за допомогою скриптів, поза Xcode. Стислий опис потрібних кроків:
Виконайте описані вище кроки з додавання дозволів і підписування застосунку.
Запакуйте гру в ZIP-архів і завантажте її для нотаризації за допомогою 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, і прикріпіть квиток нотаризації до гри:$ xcrun stapler staple "Game.app"
Процес публікації в Mac App Store докладно описано в документації Apple для розробників. Перед поданням обов’язково додайте дозволи й підпишіть застосунок за допомогою codesign, як описано вище.
Примітка: під час публікації в Mac App Store гра не потребує нотаризації.
Маніфест конфіденційності — це список властивостей, у якому зазначено типи даних, що їх збирає ваш застосунок або сторонній SDK, а також API, використання яких потребує обґрунтування. Для кожного типу зібраних даних і кожної категорії таких API застосунок або сторонній SDK має вказати причини у файлі маніфесту конфіденційності, включеному до його пакета.
Defold надає стандартний маніфест конфіденційності через поле Privacy Manifest у файлі game.project. Під час створення пакета застосунку цей маніфест буде об’єднано з усіма маніфестами конфіденційності залежностей проєкту та включено до пакета застосунку.
Докладніше про маніфести конфіденційності читайте в офіційній документації Apple.