mirror of
https://github.com/Relintai/pandemonium_engine_docs.git
synced 2025-01-19 14:57:21 +01:00
Cleanups.
This commit is contained in:
parent
4e41d95bf6
commit
ad8f5a11a4
@ -1,10 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
Exporting
|
# Exporting
|
||||||
=========
|
|
||||||
|
|
||||||
Overview
|
## Overview
|
||||||
--------
|
|
||||||
|
|
||||||
Now that you have a working game, you probably want to share your success with
|
Now that you have a working game, you probably want to share your success with
|
||||||
others. However, it's not practical to ask your friends to download Pandemonium
|
others. However, it's not practical to ask your friends to download Pandemonium
|
||||||
@ -20,8 +18,7 @@ Note:
|
|||||||
If you haven't made "Dodge the Creeps" yourself yet, please read
|
If you haven't made "Dodge the Creeps" yourself yet, please read
|
||||||
`doc_your_first_2d_game` before continuing with this tutorial.
|
`doc_your_first_2d_game` before continuing with this tutorial.
|
||||||
|
|
||||||
Preparing the project
|
## Preparing the project
|
||||||
---------------------
|
|
||||||
|
|
||||||
In *Dodge the Creeps*, we used keyboard controls to move the player's character.
|
In *Dodge the Creeps*, we used keyboard controls to move the player's character.
|
||||||
This is fine if your game is being played on a PC platform, but on a phone
|
This is fine if your game is being played on a PC platform, but on a phone
|
||||||
@ -127,16 +124,14 @@ gdscript GDScript
|
|||||||
$CollisionShape2D.set_deferred("disabled", true)
|
$CollisionShape2D.set_deferred("disabled", true)
|
||||||
```
|
```
|
||||||
|
|
||||||
Setting a main scene
|
## Setting a main scene
|
||||||
--------------------
|
|
||||||
|
|
||||||
The main scene is the one that your game will start in. For this
|
The main scene is the one that your game will start in. For this
|
||||||
*Dodge the Creeps* example, in
|
*Dodge the Creeps* example, in
|
||||||
**Project -> Project Settings -> Application -> Run**, set **Main Scene**
|
**Project -> Project Settings -> Application -> Run**, set **Main Scene**
|
||||||
to `Main.tscn` by clicking the folder icon and selecting it.
|
to `Main.tscn` by clicking the folder icon and selecting it.
|
||||||
|
|
||||||
Export templates
|
## Export templates
|
||||||
----------------
|
|
||||||
|
|
||||||
To export the project, you need to download the *export templates* from the
|
To export the project, you need to download the *export templates* from the
|
||||||
http://pandemoniumengine.org/download. These templates are optimized versions of the engine
|
http://pandemoniumengine.org/download. These templates are optimized versions of the engine
|
||||||
@ -164,8 +159,7 @@ Note:
|
|||||||
Export templates are bound to a specific Pandemonium version. If you upgrade
|
Export templates are bound to a specific Pandemonium version. If you upgrade
|
||||||
Pandemonium, you must download templates that match the new version.
|
Pandemonium, you must download templates that match the new version.
|
||||||
|
|
||||||
Export presets
|
## Export presets
|
||||||
--------------
|
|
||||||
|
|
||||||
Next, you can configure the export settings by clicking on **Project -> Export**.
|
Next, you can configure the export settings by clicking on **Project -> Export**.
|
||||||
|
|
||||||
@ -184,14 +178,12 @@ of your game, such as an `.apk` for Android or an `.exe` for Windows.
|
|||||||
In the **Resources** and **Features** tabs, you can customize how the game is
|
In the **Resources** and **Features** tabs, you can customize how the game is
|
||||||
exported for each platform. We can leave those settings alone for now.
|
exported for each platform. We can leave those settings alone for now.
|
||||||
|
|
||||||
Exporting by platform
|
## Exporting by platform
|
||||||
---------------------
|
|
||||||
|
|
||||||
In this section, we'll walk through the process for each platform,
|
In this section, we'll walk through the process for each platform,
|
||||||
including any additional software or requirements you'll need.
|
including any additional software or requirements you'll need.
|
||||||
|
|
||||||
PC (Linux/macOS/Windows)
|
### PC (Linux/macOS/Windows)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Exporting PC platforms works the same across the three supported operating
|
Exporting PC platforms works the same across the three supported operating
|
||||||
systems. Open the export window and click **Add...** to create the preset(s) you
|
systems. Open the export window and click **Add...** to create the preset(s) you
|
||||||
@ -215,8 +207,7 @@ Note:
|
|||||||
than the default one, you need to change it manually. See
|
than the default one, you need to change it manually. See
|
||||||
`doc_changing_application_icon_for_windows`.
|
`doc_changing_application_icon_for_windows`.
|
||||||
|
|
||||||
Android
|
### Android
|
||||||
~~~~~~~
|
|
||||||
|
|
||||||
Tip:
|
Tip:
|
||||||
|
|
||||||
@ -273,8 +264,7 @@ a **One-click Deploy** button to appear in Pandemonium's playtest button area:
|
|||||||
|
|
||||||
Clicking this button builds the APK and copies it onto your device in one step.
|
Clicking this button builds the APK and copies it onto your device in one step.
|
||||||
|
|
||||||
iOS
|
### iOS
|
||||||
~~~
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
@ -302,8 +292,7 @@ The Xcode build procedure is beyond the scope of this tutorial.
|
|||||||
See https://help.apple.com/xcode/mac/current/#/devc8c2a6be1
|
See https://help.apple.com/xcode/mac/current/#/devc8c2a6be1
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
HTML5 (web)
|
### HTML5 (web)
|
||||||
~~~~~~~~~~~
|
|
||||||
|
|
||||||
Click **Export Project** on the HTML5 preset. We don't need to change any
|
Click **Export Project** on the HTML5 preset. We don't need to change any
|
||||||
of the default settings.
|
of the default settings.
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
Exporting projects
|
# Exporting projects
|
||||||
==================
|
|
||||||
|
|
||||||
Why export?
|
## Why export?
|
||||||
-----------
|
|
||||||
|
|
||||||
Originally, Pandemonium did not have any means to export projects. The
|
Originally, Pandemonium did not have any means to export projects. The
|
||||||
developers would compile the proper binaries and build the packages for
|
developers would compile the proper binaries and build the packages for
|
||||||
@ -14,8 +12,7 @@ When more developers (and even non-programmers) started using it, and
|
|||||||
when our company started taking more projects at the same time, it
|
when our company started taking more projects at the same time, it
|
||||||
became evident that this was a bottleneck.
|
became evident that this was a bottleneck.
|
||||||
|
|
||||||
On PC
|
### On PC
|
||||||
~~~~~
|
|
||||||
|
|
||||||
Distributing a game project on PC with Pandemonium is rather easy. Drop
|
Distributing a game project on PC with Pandemonium is rather easy. Drop
|
||||||
the Pandemonium binary in the same directory as the `project.pandemonium` file,
|
the Pandemonium binary in the same directory as the `project.pandemonium` file,
|
||||||
@ -32,8 +29,7 @@ tools like the editor and debugger.
|
|||||||
Finally, Pandemonium has a simple but efficient system for
|
Finally, Pandemonium has a simple but efficient system for
|
||||||
`creating DLCs as extra package files ( doc_exporting_pcks )`.
|
`creating DLCs as extra package files ( doc_exporting_pcks )`.
|
||||||
|
|
||||||
On mobile
|
### On mobile
|
||||||
~~~~~~~~~
|
|
||||||
|
|
||||||
The same scenario on mobile platforms is a little worse.
|
The same scenario on mobile platforms is a little worse.
|
||||||
To distribute a project on those devices, a binary for each of
|
To distribute a project on those devices, a binary for each of
|
||||||
@ -52,8 +48,7 @@ that has been standardized for more than a decade, but mobile devices
|
|||||||
use different formats for texture compression, such as PVRTC (iOS) or
|
use different formats for texture compression, such as PVRTC (iOS) or
|
||||||
ETC (Android).
|
ETC (Android).
|
||||||
|
|
||||||
Export menu
|
## Export menu
|
||||||
-----------
|
|
||||||
|
|
||||||
After many attempts at different export workflows, the current one has
|
After many attempts at different export workflows, the current one has
|
||||||
proven to work the best. At the time of this writing, not all platforms are
|
proven to work the best. At the time of this writing, not all platforms are
|
||||||
@ -86,8 +81,7 @@ export for that platform until they resolve it:
|
|||||||
At that time, the user is expected to come back to the documentation and follow
|
At that time, the user is expected to come back to the documentation and follow
|
||||||
instructions on how to properly set up that platform.
|
instructions on how to properly set up that platform.
|
||||||
|
|
||||||
Export templates
|
### Export templates
|
||||||
~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Apart from setting up the platform, the export templates must be
|
Apart from setting up the platform, the export templates must be
|
||||||
installed to be able to export projects. They can be obtained as a
|
installed to be able to export projects. They can be obtained as a
|
||||||
@ -100,9 +94,7 @@ option in the editor:
|
|||||||
![](img/exptemp.png)
|
![](img/exptemp.png)
|
||||||
|
|
||||||
|
|
||||||
|
### Resource options
|
||||||
Resource options
|
|
||||||
~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
When exporting, Pandemonium makes a list of all the files to export and then
|
When exporting, Pandemonium makes a list of all the files to export and then
|
||||||
creates the package. There are 3 different modes for exporting:
|
creates the package. There are 3 different modes for exporting:
|
||||||
@ -132,8 +124,7 @@ non resource files such as `.txt`,`.json` and `.csv` to be exported with
|
|||||||
the project. The second filter can be used to exclude every file of a certain
|
the project. The second filter can be used to exclude every file of a certain
|
||||||
type without manually deselecting every one. For example, `.png)` files.
|
type without manually deselecting every one. For example, `.png)` files.
|
||||||
|
|
||||||
Exporting from the command line
|
## Exporting from the command line
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
In production, it is useful to automate builds, and Pandemonium supports this
|
In production, it is useful to automate builds, and Pandemonium supports this
|
||||||
with the `--export` and `--export-debug` command line parameters.
|
with the `--export` and `--export-debug` command line parameters.
|
||||||
@ -182,8 +173,7 @@ See also:
|
|||||||
See `doc_command_line_tutorial` for more information about using Pandemonium
|
See `doc_command_line_tutorial` for more information about using Pandemonium
|
||||||
from the command line.
|
from the command line.
|
||||||
|
|
||||||
PCK versus ZIP pack file formats
|
## PCK versus ZIP pack file formats
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
Each format has its upsides and downsides. PCK is the default and recommended
|
Each format has its upsides and downsides. PCK is the default and recommended
|
||||||
format for most use cases, but you may want to use a ZIP archive instead
|
format for most use cases, but you may want to use a ZIP archive instead
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
Exporting packs, patches, and mods
|
# Exporting packs, patches, and mods
|
||||||
==================================
|
|
||||||
|
|
||||||
Use cases
|
## Use cases
|
||||||
---------
|
|
||||||
|
|
||||||
Oftentimes one would like to add functionality to one's game after it has been
|
Oftentimes one would like to add functionality to one's game after it has been
|
||||||
deployed.
|
deployed.
|
||||||
@ -18,8 +16,7 @@ Examples of this include...
|
|||||||
These tools help developers to extend their development beyond the initial
|
These tools help developers to extend their development beyond the initial
|
||||||
release.
|
release.
|
||||||
|
|
||||||
Overview of PCK files
|
## Overview of PCK files
|
||||||
---------------------
|
|
||||||
|
|
||||||
Pandemonium enables this via a feature called **resource packs** (PCK files,
|
Pandemonium enables this via a feature called **resource packs** (PCK files,
|
||||||
with extension `.pck`).
|
with extension `.pck`).
|
||||||
@ -51,8 +48,7 @@ PCK files usually contain, but are not limited to:
|
|||||||
The PCK files can even be an entirely different Pandemonium project, which the
|
The PCK files can even be an entirely different Pandemonium project, which the
|
||||||
original game loads in at runtime.
|
original game loads in at runtime.
|
||||||
|
|
||||||
Generating PCK files
|
## Generating PCK files
|
||||||
--------------------
|
|
||||||
|
|
||||||
In order to pack all resources of a project into a PCK file open the project
|
In order to pack all resources of a project into a PCK file open the project
|
||||||
and go to Project/Export and click on “Export PCK/Zip”. Also make sure to have
|
and go to Project/Export and click on “Export PCK/Zip”. Also make sure to have
|
||||||
@ -87,8 +83,7 @@ Note:
|
|||||||
use a tool-build of the engine (for security), so it's best to keep
|
use a tool-build of the engine (for security), so it's best to keep
|
||||||
the modding tool and game separate.
|
the modding tool and game separate.
|
||||||
|
|
||||||
Opening PCK files at runtime
|
## Opening PCK files at runtime
|
||||||
----------------------------
|
|
||||||
|
|
||||||
To import a PCK file, one uses the ProjectSettings singleton. The following
|
To import a PCK file, one uses the ProjectSettings singleton. The following
|
||||||
example expects a “mod.pck” file in the directory of the games executable.
|
example expects a “mod.pck” file in the directory of the games executable.
|
||||||
@ -124,8 +119,7 @@ Note:
|
|||||||
Then, before loading the resource pack, you need to load its DLL as follows:
|
Then, before loading the resource pack, you need to load its DLL as follows:
|
||||||
`Assembly.LoadFile("mod.dll")`
|
`Assembly.LoadFile("mod.dll")`
|
||||||
|
|
||||||
Summary
|
## Summary
|
||||||
-------
|
|
||||||
|
|
||||||
This tutorial should illustrate how easy adding mods, patches or DLC to a game
|
This tutorial should illustrate how easy adding mods, patches or DLC to a game
|
||||||
is. The most important thing is to identify how one plans to distribute future
|
is. The most important thing is to identify how one plans to distribute future
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
|
|
||||||
|
# Feature tags
|
||||||
|
|
||||||
Feature tags
|
## Introduction
|
||||||
============
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
Pandemonium has a special system to tag availability of features.
|
Pandemonium has a special system to tag availability of features.
|
||||||
Each *feature* is represented as a string, which can refer to many of the following:
|
Each *feature* is represented as a string, which can refer to many of the following:
|
||||||
@ -23,67 +20,40 @@ Features can be queried at run-time from the singleton API by calling:
|
|||||||
OS.has_feature(name)
|
OS.has_feature(name)
|
||||||
```
|
```
|
||||||
|
|
||||||
Default features
|
## Default features
|
||||||
----------------
|
|
||||||
|
|
||||||
Here is a list of most feature tags in Pandemonium. Keep in mind they are **case-sensitive**:
|
Here is a list of most feature tags in Pandemonium. Keep in mind they are **case-sensitive**:
|
||||||
|
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **Feature tag** | **Description** |
|
| **Feature tag** | **Description** |
|
||||||
+=================+========================================================+
|
|-----------------|--------------------------------------------------------|
|
||||||
| **Android** | Running on Android |
|
| **Android** | Running on Android |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **HTML5** | Running on HTML5 |
|
| **HTML5** | Running on HTML5 |
|
||||||
+-----------------+--------------------------------------------------------+
|
| **JavaScript** | `JavaScript singleton ( doc_javascript_eval )` is |
|
||||||
| **JavaScript** | `JavaScript singleton ( doc_javascript_eval )` is |
|
|
||||||
| | available |
|
| | available |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **OSX** | Running on macOS |
|
| **OSX** | Running on macOS |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **iOS** | Running on iOS |
|
| **iOS** | Running on iOS |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **UWP** | Running on UWP |
|
| **UWP** | Running on UWP |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **Windows** | Running on Windows |
|
| **Windows** | Running on Windows |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **X11** | Running on X11 (Linux/BSD desktop) |
|
| **X11** | Running on X11 (Linux/BSD desktop) |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **Server** | Running on the headless server platform |
|
| **Server** | Running on the headless server platform |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **debug** | Running on a debug build (including the editor) |
|
| **debug** | Running on a debug build (including the editor) |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **release** | Running on a release build |
|
| **release** | Running on a release build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **editor** | Running on an editor build |
|
| **editor** | Running on an editor build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **standalone** | Running on a non-editor build |
|
| **standalone** | Running on a non-editor build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **64** | Running on a 64-bit build (any architecture) |
|
| **64** | Running on a 64-bit build (any architecture) |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **32** | Running on a 32-bit build (any architecture) |
|
| **32** | Running on a 32-bit build (any architecture) |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **x86_64** | Running on a 64-bit x86 build |
|
| **x86_64** | Running on a 64-bit x86 build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **x86** | Running on a 32-bit x86 build |
|
| **x86** | Running on a 32-bit x86 build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **arm64** | Running on a 64-bit ARM build |
|
| **arm64** | Running on a 64-bit ARM build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **arm** | Running on a 32-bit ARM build |
|
| **arm** | Running on a 32-bit ARM build |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **mobile** | Host OS is a mobile platform |
|
| **mobile** | Host OS is a mobile platform |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **pc** | Host OS is a PC platform (desktop/laptop) |
|
| **pc** | Host OS is a PC platform (desktop/laptop) |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **web** | Host OS is a Web browser |
|
| **web** | Host OS is a Web browser |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **etc** | Textures using ETC1 compression are supported |
|
| **etc** | Textures using ETC1 compression are supported |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **etc2** | Textures using ETC2 compression are supported |
|
| **etc2** | Textures using ETC2 compression are supported |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **s3tc** | Textures using S3TC (DXT/BC) compression are supported |
|
| **s3tc** | Textures using S3TC (DXT/BC) compression are supported |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
| **pvrtc** | Textures using PVRTC compression are supported |
|
| **pvrtc** | Textures using PVRTC compression are supported |
|
||||||
+-----------------+--------------------------------------------------------+
|
|
||||||
|
|
||||||
Warning:
|
Warning:
|
||||||
|
|
||||||
@ -97,8 +67,7 @@ Warning:
|
|||||||
`call JavaScript code ( doc_javascript_eval )` that reads the browser's
|
`call JavaScript code ( doc_javascript_eval )` that reads the browser's
|
||||||
user agent.
|
user agent.
|
||||||
|
|
||||||
Custom features
|
## Custom features
|
||||||
---------------
|
|
||||||
|
|
||||||
It is possible to add custom features to a build; use the relevant
|
It is possible to add custom features to a build; use the relevant
|
||||||
field in the *export preset* used to generate it:
|
field in the *export preset* used to generate it:
|
||||||
@ -113,8 +82,7 @@ Note:
|
|||||||
running the project from the editor, even if the export preset marked as
|
running the project from the editor, even if the export preset marked as
|
||||||
**Runnable** for your current platform has custom feature tags defined.
|
**Runnable** for your current platform has custom feature tags defined.
|
||||||
|
|
||||||
Overriding project settings
|
## Overriding project settings
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Features can be used to override specific configuration values in the *Project Settings*.
|
Features can be used to override specific configuration values in the *Project Settings*.
|
||||||
This allows you to better customize any configuration when doing a build.
|
This allows you to better customize any configuration when doing a build.
|
||||||
@ -138,16 +106,14 @@ Note:
|
|||||||
tag(s) if you want them to override base project settings on all platforms
|
tag(s) if you want them to override base project settings on all platforms
|
||||||
and configurations.
|
and configurations.
|
||||||
|
|
||||||
Default overrides
|
## Default overrides
|
||||||
-----------------
|
|
||||||
|
|
||||||
There are already a lot of settings that come with overrides by default; they can be found
|
There are already a lot of settings that come with overrides by default; they can be found
|
||||||
in many sections of the project settings.
|
in many sections of the project settings.
|
||||||
|
|
||||||
![](img/feature_tags4.png)
|
![](img/feature_tags4.png)
|
||||||
|
|
||||||
Customizing the build
|
## Customizing the build
|
||||||
---------------------
|
|
||||||
|
|
||||||
Feature tags can be used to customize a build process too, by writing a custom **ExportPlugin**.
|
Feature tags can be used to customize a build process too, by writing a custom **ExportPlugin**.
|
||||||
They are also used to specify which shared library is loaded and exported in **GDNative**.
|
They are also used to specify which shared library is loaded and exported in **GDNative**.
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
Exporting for Linux
|
# Exporting for Linux
|
||||||
===================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to Linux.
|
This page describes how to export a Pandemonium project to Linux.
|
||||||
If you're looking to compile editor or export template binaries from source instead,
|
If you're looking to compile editor or export template binaries from source instead,
|
||||||
read `doc_compiling_for_x11`.
|
read `doc_compiling_for_x11`.
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
Exporting for macOS
|
# Exporting for macOS
|
||||||
===================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to macOS.
|
This page describes how to export a Pandemonium project to macOS.
|
||||||
If you're looking to compile editor or export template binaries from source instead,
|
If you're looking to compile editor or export template binaries from source instead,
|
||||||
read `doc_compiling_for_osx`.
|
read `doc_compiling_for_osx`.
|
||||||
@ -13,8 +11,7 @@ See also:
|
|||||||
macOS apps are exported as an `.app` bundle, a folder with a specific structure which stores the executable, libraries and all the project files.
|
macOS apps are exported as an `.app` bundle, a folder with a specific structure which stores the executable, libraries and all the project files.
|
||||||
This bundle can be exported as is, packed in a ZIP archive or DMG disk image (only supported when exporting from a computer running macOS).
|
This bundle can be exported as is, packed in a ZIP archive or DMG disk image (only supported when exporting from a computer running macOS).
|
||||||
|
|
||||||
Requirements
|
## Requirements
|
||||||
------------
|
|
||||||
|
|
||||||
- To enable code signing with Apple Developer ID and notarization, you must export from a computer running macOS with Xcode command line tools installed.
|
- To enable code signing with Apple Developer ID and notarization, you must export from a computer running macOS with Xcode command line tools installed.
|
||||||
- Ad-hoc code signing is supported on all platforms, without additional tools.
|
- Ad-hoc code signing is supported on all platforms, without additional tools.
|
||||||
@ -23,18 +20,15 @@ Requirements
|
|||||||
|
|
||||||
Warning:
|
Warning:
|
||||||
|
|
||||||
|
|
||||||
Projects exported without code signing and notarization will be blocked by Gatekeeper if they are downloaded from unknown sources, see the `Running Pandemonium apps on macOS ( doc_running_on_macos )` page for more information.
|
Projects exported without code signing and notarization will be blocked by Gatekeeper if they are downloaded from unknown sources, see the `Running Pandemonium apps on macOS ( doc_running_on_macos )` page for more information.
|
||||||
|
|
||||||
Code signing and notarization
|
## Code signing and notarization
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
By default, macOS will run only applications that are signed and notarized. If you use any other signing configuration, see `Running Pandemonium apps on macOS ( doc_running_on_macos )` for workarounds.
|
By default, macOS will run only applications that are signed and notarized. If you use any other signing configuration, see `Running Pandemonium apps on macOS ( doc_running_on_macos )` for workarounds.
|
||||||
|
|
||||||
To notarize an app, you **must** have a valid `Apple Developer ID Certificate ( https://developer.apple.com/ )`.
|
To notarize an app, you **must** have a valid `Apple Developer ID Certificate ( https://developer.apple.com/ )`.
|
||||||
|
|
||||||
If you have an Apple Developer ID Certificate
|
### If you have an Apple Developer ID Certificate
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
- Export your project from a computer running macOS with Xcode command line tools installed.
|
- Export your project from a computer running macOS with Xcode command line tools installed.
|
||||||
- Enable `Code Signing`, `Notarization`, `Hardened Runtime` and `Timestamp` and disable the `Debug` entitlement.
|
- Enable `Code Signing`, `Notarization`, `Hardened Runtime` and `Timestamp` and disable the `Debug` entitlement.
|
||||||
@ -48,104 +42,99 @@ If you encounter notarization issues, see `Resolving common notarization issues
|
|||||||
|
|
||||||
After notarization is completed, `staple the ticket ( https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow )` to the exported project.
|
After notarization is completed, `staple the ticket ( https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow )` to the exported project.
|
||||||
|
|
||||||
If you do not have an Apple Developer ID Certificate
|
### If you do not have an Apple Developer ID Certificate
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Keep `Code Signing` enabled and leave the `Identity` option empty (when exporting from a computer running macOS, on other platforms this option is hidden).
|
Keep `Code Signing` enabled and leave the `Identity` option empty (when exporting from a computer running macOS, on other platforms this option is hidden).
|
||||||
In this case Pandemonium will use a ad-hoc signature, which will make running an exported app easier for the end users, see the `Running Pandemonium apps on macOS ( doc_running_on_macos )` page for more information.
|
In this case Pandemonium will use a ad-hoc signature, which will make running an exported app easier for the end users, see the `Running Pandemonium apps on macOS ( doc_running_on_macos )` page for more information.
|
||||||
|
|
||||||
Signing Options
|
### Signing Options
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
|
||||||
| Option | Description |
|
| Option | Description |
|
||||||
+==============================+===================================================================================================+
|
|------------------------------|---------------------------------------------------------------------------------------------------|
|
||||||
| Enable | Enables code signing. |
|
| Enable | Enables code signing. |
|
||||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
|
||||||
| Identity | The "Full Name" or "Common Name" of the signing identity, store in the macOS keychain. [1]_ [2]_ |
|
| Identity | The "Full Name" or "Common Name" of the signing identity, store in the macOS keychain. [1]_ [2]_ |
|
||||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
|
||||||
| Timestamp | Requests a timestamp server to authenticate the time of signing. Required for notarization. [2]_ |
|
| Timestamp | Requests a timestamp server to authenticate the time of signing. Required for notarization. [2]_ |
|
||||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
|
||||||
| Hardened Runtime | Enables "Hardened Runtime". Required for notarization. [2]_ |
|
| Hardened Runtime | Enables "Hardened Runtime". Required for notarization. [2]_ |
|
||||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
|
||||||
| Replace Existing Signature | Replaces existing signatures of the GDNative libraries and embedded helper executables. |
|
| Replace Existing Signature | Replaces existing signatures of the GDNative libraries and embedded helper executables. |
|
||||||
+------------------------------+---------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
To notarize an app, you must enable the `Hardened Runtime` and `Timestamp`.
|
To notarize an app, you must enable the `Hardened Runtime` and `Timestamp`.
|
||||||
|
|
||||||
The `Hardened Runtime` and `Timestamp` options are incompatible with ad-hoc signing and will be ignored.
|
The `Hardened Runtime` and `Timestamp` options are incompatible with ad-hoc signing and will be ignored.
|
||||||
|
|
||||||
.. [1] Leave `Identity` option empty to use ad-hoc signature.
|
[1] Leave `Identity` option empty to use ad-hoc signature.
|
||||||
.. [2] This option is visible only when exporting from a computer running macOS.
|
[2] This option is visible only when exporting from a computer running macOS.
|
||||||
|
|
||||||
Notarization Options
|
### Notarization Options
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
|
| Option | Description |
|
||||||
|
|--------------------|---------------------------------------------------------------------------------|
|
||||||
|
| Enable | Enables automatic upload for notarization. |
|
||||||
|
| Apple ID Name | Apple ID account name (email address) |
|
||||||
|
| Apple ID Password | Apple ID app-specific password. |
|
||||||
|
| | See `Using app-specific passwords ( https://support.apple.com/en-us/HT204397 )` |
|
||||||
|
| | to enable two-factor authentication and create app password. |
|
||||||
|
| Apple Team ID | Team ID, if your Apple ID belongs to multiple teams |
|
||||||
|
|
||||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Option | Description |
|
|
||||||
+====================+==============================================================================================================================================================================+
|
|
||||||
| Enable | Enables automatic upload for notarization. |
|
|
||||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Apple ID Name | Apple ID account name (email address) |
|
|
||||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Apple ID Password | Apple ID app-specific password. See `Using app-specific passwords ( https://support.apple.com/en-us/HT204397 )` to enable two-factor authentication and create app password. |
|
|
||||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Apple Team ID | Team ID, if your Apple ID belongs to multiple teams |
|
|
||||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
See `Notarizing macOS Software Before Distribution ( https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution?language=objc )` for more info.
|
See `Notarizing macOS Software Before Distribution ( https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution?language=objc )` for more info.
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
Notarization is supported when exporting from a computer running macOS, these options are hidden on other platforms.
|
Notarization is supported when exporting from a computer running macOS, these options are hidden on other platforms.
|
||||||
|
|
||||||
Entitlements
|
## Entitlements
|
||||||
------------
|
|
||||||
|
|
||||||
Hardened Runtime Entitlements
|
### Hardened Runtime Entitlements
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Hardened Runtime entitlements manage security options and resource access policy.
|
Hardened Runtime entitlements manage security options and resource access policy.
|
||||||
See `Hardened Runtime ( https://developer.apple.com/documentation/security/hardened_runtime?language=objc )` for more info.
|
See `Hardened Runtime ( https://developer.apple.com/documentation/security/hardened_runtime?language=objc )` for more info.
|
||||||
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Entitlement | Description |
|
|
||||||
+=======================================+==================================================================================================================================================================================================+
|
|
||||||
| Allow JIT Code Execution [3]_ | Allows creating writable and executable memory for JIT code. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Allow Unsigned Executable Memory [3]_ | Allows creating writable and executable memory without JIT restrictions. If you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Allow DYLD Environment Variables [3]_ | Allows app to uss dynamic linker environment variables to inject code. f you are using add-ons with dynamic or self-modifying native code, enable them according to the add-on documentation. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Disable Library Validation | Allows app to load arbitrary libraries and frameworks. Enabled it if you are using GDNative add-ons and ad-hoc signature, or want to support user-provided external add-ons. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Audio Input | Enable if you need to use the microphone or other audio input sources, if it's enabled you should also provide usage message in the `privacy/microphone_usage_description` option. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Camera | Enable if you need to use the camera, if it's enabled you should also provide usage message in the `privacy/camera_usage_description` option. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Location | Enable if you need to use location information from Location Services, if it's enabled you should also provide usage message in the `privacy/location_usage_description` option. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Address Book | [4]_ Enable to allow access contacts in the user's address book, if it's enabled you should also provide usage message in the `privacy/address_book_usage_description` option. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Calendars | [4]_ Enable to allow access to the user's calendar, if it's enabled you should also provide usage message in the `privacy/calendar_usage_description` option. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Photo Library | [4]_ Enable to allow access to the user's Photos library, if it's enabled you should also provide usage message in the `privacy/photos_library_usage_description` option. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Apple Events | [4]_ Enable to allow app to send Apple events to other apps. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Debugging | [5]_ You can temporarily enable this entitlement to use native debugger (GDB, LLDB) with the exported app. This entitlement should be disabled for production export. |
|
|
||||||
+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
.. [3] The `Allow JIT Code Execution`, `Allow Unsigned Executable Memory` and `Allow DYLD Environment Variables` entitlements are always enabled for the Pandemonium Mono exports, and are not visible in the export options.
|
| Entitlement | Description |
|
||||||
.. [4] These features aren't supported by Pandemonium out of the box, enable them only if you are using add-ons which require them.
|
|---------------------------------------|--------------------------------------------------------------------------|
|
||||||
.. [5] To notarize an app, you must disable the `Debugging` entitlement.
|
| Allow JIT Code Execution [3]_ | Allows creating writable and executable memory for JIT code. |
|
||||||
|
| | If you are using add-ons with dynamic or self-modifying native |
|
||||||
|
| | code, enable them according to the add-on documentation. |
|
||||||
|
| Allow Unsigned Executable Memory [3]_ | Allows creating writable and executable memory without JIT |
|
||||||
|
| | restrictions. If you are using add-ons with dynamic or self-modifying |
|
||||||
|
| | native code, enable them according to the add-on documentation. |
|
||||||
|
| Allow DYLD Environment Variables [3]_ | Allows app to uss dynamic linker environment variables to inject code. |
|
||||||
|
| | If you are using add-ons with dynamic or self-modifying native code, |
|
||||||
|
| | enable them according to the add-on documentation. |
|
||||||
|
| Disable Library Validation | Allows app to load arbitrary libraries and frameworks. Enabled it if |
|
||||||
|
| | you are using GDNative add-ons and ad-hoc signature, or want to support |
|
||||||
|
| | user-provided external add-ons. |
|
||||||
|
| Audio Input | Enable if you need to use the microphone or other audio input sources, |
|
||||||
|
| | if it's enabled you should also provide usage message in the |
|
||||||
|
| | `privacy/microphone_usage_description` option. |
|
||||||
|
| Camera | Enable if you need to use the camera, if it's enabled you should also |
|
||||||
|
| | provide usage message in the `privacy/camera_usage_description` option. |
|
||||||
|
| Location | Enable if you need to use location information from Location Services, |
|
||||||
|
| | if it's enabled you should also provide usage message in the |
|
||||||
|
| | `privacy/location_usage_description` option. |
|
||||||
|
| Address Book | [4]_ Enable to allow access contacts in the user's address book, if it's |
|
||||||
|
| | enabled you should also provide usage message in the |
|
||||||
|
| | `privacy/address_book_usage_description` option. |
|
||||||
|
| Calendars | [4]_ Enable to allow access to the user's calendar, if it's enabled you |
|
||||||
|
| | should also provide usage message in the |
|
||||||
|
| | `privacy/calendar_usage_description` option. |
|
||||||
|
| Photo Library | [4]_ Enable to allow access to the user's Photos library, if it's |
|
||||||
|
| | enabled you should also provide usage message in the |
|
||||||
|
| | `privacy/photos_library_usage_description` option. |
|
||||||
|
| Apple Events | [4]_ Enable to allow app to send Apple events to other apps. |
|
||||||
|
| Debugging | [5]_ You can temporarily enable this entitlement to use native debugger |
|
||||||
|
| | (GDB, LLDB) with the exported app. This entitlement should be disabled |
|
||||||
|
| | for production export. |
|
||||||
|
|
||||||
App Sandbox Entitlement
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~
|
[3] The `Allow JIT Code Execution`, `Allow Unsigned Executable Memory` and `Allow DYLD Environment Variables` entitlements are always enabled for the Pandemonium Mono exports, and are not visible in the export options.
|
||||||
|
[4] These features aren't supported by Pandemonium out of the box, enable them only if you are using add-ons which require them.
|
||||||
|
[5] To notarize an app, you must disable the `Debugging` entitlement.
|
||||||
|
|
||||||
|
### App Sandbox Entitlement
|
||||||
|
|
||||||
The App Sandbox restricts access to user data, networking and devices.
|
The App Sandbox restricts access to user data, networking and devices.
|
||||||
Sandboxed apps can't access most of the file system, can't use custom file dialogs and execute binaries (using `OS.execute` and `OS.create_process`) outside the `.app` bundle.
|
Sandboxed apps can't access most of the file system, can't use custom file dialogs and execute binaries (using `OS.execute` and `OS.create_process`) outside the `.app` bundle.
|
||||||
@ -153,35 +142,28 @@ See `App Sandbox ( https://developer.apple.com/documentation/security/app_sandbo
|
|||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
To distribute an app through the App Store, you must enable the App Sandbox.
|
To distribute an app through the App Store, you must enable the App Sandbox.
|
||||||
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Entitlement | Description |
|
|
||||||
+===================================+======================================================================================================================================+
|
|
||||||
| Enabled | Enables App Sandbox. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Network Server | Enable to allow app to listen for incoming network connections. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Network Client | Enable to allow app to establish outgoing network connections. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Device USB | Enable to allow app to interact with USB devices. This entitlement is required to use wired controllers. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Device Bluetooth | Enable to allow app to interact with Bluetooth devices. This entitlement is required to use wireless controllers. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Files Downloads [6]_ | Allows read or write access to the user's "Downloads" folder. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Files Pictures [6]_ | Allows read or write access to the user's "Pictures" folder. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Files Music [6]_ | Allows read or write access to the user's "Music" folder. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Files Movies [6]_ | Allows read or write access to the user's "Movies" folder. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Files User Selected [6]_ | Allows read or write access to arbitrary folder. To gain access, a folder must be selected from the native file dialog by the user. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
| Helper Executable | List of helper executables to embedded to the app bundle. Sandboxed app are limited to execute only these executable. |
|
|
||||||
+-----------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+
|
|
||||||
|
|
||||||
.. [6] You can optionally provide usage messages for various folders in the `privacy/*_folder_usage_description` options.
|
| Entitlement | Description |
|
||||||
|
|-----------------------------------|-----------------------------------------------------------------------------|
|
||||||
|
| Enabled | Enables App Sandbox. |
|
||||||
|
| Network Server | Enable to allow app to listen for incoming network connections. |
|
||||||
|
| Network Client | Enable to allow app to establish outgoing network connections. |
|
||||||
|
| Device USB | Enable to allow app to interact with USB devices. This |
|
||||||
|
| | entitlement is required to use wired controllers. |
|
||||||
|
| Device Bluetooth | Enable to allow app to interact with Bluetooth devices. |
|
||||||
|
| | This entitlement is required to use wireless controllers. |
|
||||||
|
| Files Downloads [6]_ | Allows read or write access to the user's "Downloads" folder. |
|
||||||
|
| Files Pictures [6]_ | Allows read or write access to the user's "Pictures" folder. |
|
||||||
|
| Files Music [6]_ | Allows read or write access to the user's "Music" folder. |
|
||||||
|
| Files Movies [6]_ | Allows read or write access to the user's "Movies" folder. |
|
||||||
|
| Files User Selected [6]_ | Allows read or write access to arbitrary folder. To gain |
|
||||||
|
| | access, a folder must be selected from the native file dialog by the user. |
|
||||||
|
| Helper Executable | List of helper executables to embedded to the app bundle. |
|
||||||
|
| | Sandboxed app are limited to execute only these executable. |
|
||||||
|
|
||||||
|
|
||||||
|
[6] You can optionally provide usage messages for various folders in the `privacy/*_folder_usage_description` options.
|
||||||
|
|
||||||
You can override default entitlements by selecting custom entitlements file, in this case all other entitlement are ignored.
|
You can override default entitlements by selecting custom entitlements file, in this case all other entitlement are ignored.
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
|
|
||||||
|
# Running Pandemonium apps on macOS
|
||||||
Running Pandemonium apps on macOS
|
|
||||||
===========================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page covers running Pandemonium projects on macOS.
|
This page covers running Pandemonium projects on macOS.
|
||||||
If you haven't exported your project yet, read `doc_exporting_for_macos` first.
|
If you haven't exported your project yet, read `doc_exporting_for_macos` first.
|
||||||
|
|
||||||
@ -13,22 +10,18 @@ By default, macOS will run only applications that are signed and notarized.
|
|||||||
|
|
||||||
Depending on the way a macOS app is signed and distributed, the following scenarios are possible:
|
Depending on the way a macOS app is signed and distributed, the following scenarios are possible:
|
||||||
|
|
||||||
App is signed, notarized and distributed via App Store
|
## App is signed, notarized and distributed via App Store
|
||||||
------------------------------------------------------
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
App developers need to join the Apple Developer Program, and configure signing and notarization options during export, then upload the app to the App Store.
|
App developers need to join the Apple Developer Program, and configure signing and notarization options during export, then upload the app to the App Store.
|
||||||
|
|
||||||
The app should run out of the box, without extra user interaction required.
|
The app should run out of the box, without extra user interaction required.
|
||||||
|
|
||||||
App is signed, notarized and distributed outside App Store
|
## App is signed, notarized and distributed outside App Store
|
||||||
----------------------------------------------------------
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
App developers need to join the Apple Developer Program, and configure signing and notarization options during export, then distribute the app as ".DMG" or ".ZIP" archive.
|
App developers need to join the Apple Developer Program, and configure signing and notarization options during export, then distribute the app as ".DMG" or ".ZIP" archive.
|
||||||
|
|
||||||
When you run the app for the first time, the following dialog is displayed:
|
When you run the app for the first time, the following dialog is displayed:
|
||||||
@ -45,12 +38,10 @@ To allow third-party apps, open `System Preferences`, click `Security & Privacy`
|
|||||||
|
|
||||||
![](img/sys_pref_0.png)
|
![](img/sys_pref_0.png)
|
||||||
|
|
||||||
App is signed (including ad-hoc signatures) but not notarized
|
## App is signed (including ad-hoc signatures) but not notarized
|
||||||
-------------------------------------------------------------
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
App developer used self-signed certificate or ad-hoc signing (default Pandemonium behavior for exported project).
|
App developer used self-signed certificate or ad-hoc signing (default Pandemonium behavior for exported project).
|
||||||
|
|
||||||
When you run the app for the first time, the following dialog is displayed:
|
When you run the app for the first time, the following dialog is displayed:
|
||||||
@ -73,12 +64,10 @@ To run this app, you can temporarily override Gatekeeper:
|
|||||||
|
|
||||||
* Enter your password if you're prompted.
|
* Enter your password if you're prompted.
|
||||||
|
|
||||||
App is not-signed, executable is linker-signed
|
## App is not-signed, executable is linker-signed
|
||||||
----------------------------------------------
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
App is built using official export templates, but it is not signed.
|
App is built using official export templates, but it is not signed.
|
||||||
|
|
||||||
When you run the app for the first time, the following dialog is displayed:
|
When you run the app for the first time, the following dialog is displayed:
|
||||||
@ -95,12 +84,10 @@ To run this app, you should remove the quarantine extended file attribute manual
|
|||||||
|
|
||||||
* Run the command `xattr -dr com.apple.quarantine "Unsigned Game.app"` (including quotation marks and `.app` extension).
|
* Run the command `xattr -dr com.apple.quarantine "Unsigned Game.app"` (including quotation marks and `.app` extension).
|
||||||
|
|
||||||
Neither app nor executable is signed (relevant for Apple Silicon macs only)
|
## Neither app nor executable is signed (relevant for Apple Silicon macs only)
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
App is built using custom export templates, compiled using OSXCross, and it is not signed at all.
|
App is built using custom export templates, compiled using OSXCross, and it is not signed at all.
|
||||||
|
|
||||||
When you run the app for the first time, the following dialog is displayed:
|
When you run the app for the first time, the following dialog is displayed:
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
|
|
||||||
|
# Exporting for Windows
|
||||||
Exporting for Windows
|
|
||||||
=====================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to Windows.
|
This page describes how to export a Pandemonium project to Windows.
|
||||||
If you're looking to compile editor or export template binaries from source instead,
|
If you're looking to compile editor or export template binaries from source instead,
|
||||||
read `doc_compiling_for_windows`.
|
read `doc_compiling_for_windows`.
|
||||||
@ -19,15 +16,13 @@ system. When exporting for Windows, the exporter takes all the project files and
|
|||||||
creates a `data.pck` file. This file is bundled with a specially optimized
|
creates a `data.pck` file. This file is bundled with a specially optimized
|
||||||
binary that is smaller, faster and does not contain the editor and debugger.
|
binary that is smaller, faster and does not contain the editor and debugger.
|
||||||
|
|
||||||
Requirements
|
## Requirements
|
||||||
------------
|
|
||||||
|
|
||||||
- To enable code signing, you must have the `Windows 10 SDK` (on Windows) or `osslsigncode ( https://github.com/mtrojnar/osslsigncode )` (on any other OS) installed.
|
- To enable code signing, you must have the `Windows 10 SDK` (on Windows) or `osslsigncode ( https://github.com/mtrojnar/osslsigncode )` (on any other OS) installed.
|
||||||
- Download the Pandemonium export templates. Use the Pandemonium menu: `Editor > Manage Export Templates`.
|
- Download the Pandemonium export templates. Use the Pandemonium menu: `Editor > Manage Export Templates`.
|
||||||
|
|
||||||
Warning:
|
Warning:
|
||||||
|
|
||||||
|
|
||||||
If you export for Windows with embedded PCK files, you will not be able to
|
If you export for Windows with embedded PCK files, you will not be able to
|
||||||
sign the program as it will break.
|
sign the program as it will break.
|
||||||
|
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
|
|
||||||
|
# Changing application icon for Windows
|
||||||
Changing application icon for Windows
|
|
||||||
=====================================
|
|
||||||
|
|
||||||
By default, the exported project's icon will be the Pandemonium icon.
|
By default, the exported project's icon will be the Pandemonium icon.
|
||||||
You will most likely want to change that for your project. There are two types
|
You will most likely want to change that for your project. There are two types
|
||||||
of icons that can be changed on Windows: the file icon and the taskbar icon.
|
of icons that can be changed on Windows: the file icon and the taskbar icon.
|
||||||
|
|
||||||
Creating an ICO file
|
## Creating an ICO file
|
||||||
--------------------
|
|
||||||
|
|
||||||
Windows does not use formats such as png or jpg for application icons. Instead,
|
Windows does not use formats such as png or jpg for application icons. Instead,
|
||||||
it uses a Windows-only format called ICO. You can create your application icon
|
it uses a Windows-only format called ICO. You can create your application icon
|
||||||
@ -22,18 +19,17 @@ It is also possible to convert a PNG image to an hiDPI-friendly ICO file
|
|||||||
using this `ImageMagick ( https://www.imagemagick.org/ )` command:
|
using this `ImageMagick ( https://www.imagemagick.org/ )` command:
|
||||||
|
|
||||||
```
|
```
|
||||||
magick convert icon.png) -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
magick convert icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||||
```
|
```
|
||||||
|
|
||||||
Depending on which version of ImageMagick you installed, you might need to leave out the `magick` and run this command instead:
|
Depending on which version of ImageMagick you installed, you might need to leave out the `magick` and run this command instead:
|
||||||
|
|
||||||
```
|
```
|
||||||
convert icon.png) -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
convert icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico
|
||||||
```
|
```
|
||||||
|
|
||||||
Warning:
|
Warning:
|
||||||
|
|
||||||
|
|
||||||
For the ICO file to effectively replace the default Pandemonium icon, it must
|
For the ICO file to effectively replace the default Pandemonium icon, it must
|
||||||
contain *all* the sizes included in the default Pandemonium icon: 16×16, 32×32,
|
contain *all* the sizes included in the default Pandemonium icon: 16×16, 32×32,
|
||||||
48×48, 64×64, 128×128, 256×256. If the ICO file does not contain all the sizes,
|
48×48, 64×64, 128×128, 256×256. If the ICO file does not contain all the sizes,
|
||||||
@ -41,8 +37,7 @@ Warning:
|
|||||||
|
|
||||||
The above ImageMagick command takes this into account.
|
The above ImageMagick command takes this into account.
|
||||||
|
|
||||||
Changing the taskbar icon
|
## Changing the taskbar icon
|
||||||
-------------------------
|
|
||||||
|
|
||||||
The taskbar icon is the icon that shows up on the taskbar when your project
|
The taskbar icon is the icon that shows up on the taskbar when your project
|
||||||
is running.
|
is running.
|
||||||
@ -59,8 +54,7 @@ This setting only changes the icon for your exported game on Windows.
|
|||||||
To set the icon for macOS, use `Macos Native Icon`. And for any other platform,
|
To set the icon for macOS, use `Macos Native Icon`. And for any other platform,
|
||||||
use the `Icon` setting.
|
use the `Icon` setting.
|
||||||
|
|
||||||
Changing the file icon
|
## Changing the file icon
|
||||||
----------------------
|
|
||||||
|
|
||||||
In Pandemonium 3.5 and later, you can change the file icon without
|
In Pandemonium 3.5 and later, you can change the file icon without
|
||||||
external tools using `pandemoniumicon ( https://github.com/pkowal1982/pandemoniumicon )`.
|
external tools using `pandemoniumicon ( https://github.com/pkowal1982/pandemoniumicon )`.
|
||||||
@ -69,7 +63,6 @@ an embedded PCK.
|
|||||||
|
|
||||||
Warning:
|
Warning:
|
||||||
|
|
||||||
|
|
||||||
There are `known issues ( https://github.com/Relintai/pandemonium_engine/issues/33466 )`
|
There are `known issues ( https://github.com/Relintai/pandemonium_engine/issues/33466 )`
|
||||||
when changing the application icon in executables that embed a PCK file.
|
when changing the application icon in executables that embed a PCK file.
|
||||||
It's recommended to avoid using rcedit for now if you choose to enable the
|
It's recommended to avoid using rcedit for now if you choose to enable the
|
||||||
@ -92,7 +85,6 @@ Navigate to and select the rcedit executable.
|
|||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
Linux and macOS users will also need to install
|
Linux and macOS users will also need to install
|
||||||
`WINE ( https://www.winehq.org/ )` to use rcedit.
|
`WINE ( https://www.winehq.org/ )` to use rcedit.
|
||||||
|
|
||||||
@ -118,8 +110,7 @@ Note:
|
|||||||
Once this is done, you can specify your export templates as custom export
|
Once this is done, you can specify your export templates as custom export
|
||||||
templates in your project's Windows export preset.
|
templates in your project's Windows export preset.
|
||||||
|
|
||||||
Testing the result
|
## Testing the result
|
||||||
------------------
|
|
||||||
|
|
||||||
You can now export the project. If it worked correctly, you should see this:
|
You can now export the project. If it worked correctly, you should see this:
|
||||||
|
|
||||||
@ -127,7 +118,6 @@ You can now export the project. If it worked correctly, you should see this:
|
|||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
If your icon isn't showing up properly, on Windows 10, try clearing the icon
|
If your icon isn't showing up properly, on Windows 10, try clearing the icon
|
||||||
cache. To do so, open the **Run** dialog and enter `ie4uinit.exe
|
cache. To do so, open the **Run** dialog and enter `ie4uinit.exe
|
||||||
-ClearIconCache` or `ie4uinit.exe -show`.
|
-ClearIconCache` or `ie4uinit.exe -show`.
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
|
|
||||||
|
# Exporting for Universal Windows Platform
|
||||||
Exporting for Universal Windows Platform
|
|
||||||
========================================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to UWP.
|
This page describes how to export a Pandemonium project to UWP.
|
||||||
If you're looking to compile export template binaries from source instead,
|
If you're looking to compile export template binaries from source instead,
|
||||||
read `doc_compiling_for_uwp`.
|
read `doc_compiling_for_uwp`.
|
||||||
@ -21,8 +18,7 @@ external tools.
|
|||||||
Also, make sure the Publisher Name you set when exporting the package matches
|
Also, make sure the Publisher Name you set when exporting the package matches
|
||||||
the name used on the certificate.
|
the name used on the certificate.
|
||||||
|
|
||||||
Limitations on Xbox One
|
## Limitations on Xbox One
|
||||||
-----------------------
|
|
||||||
|
|
||||||
As described in the `UWP documentation ( https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/system-resource-allocation )`:
|
As described in the `UWP documentation ( https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/system-resource-allocation )`:
|
||||||
|
|
||||||
@ -38,8 +34,7 @@ As described in the `UWP documentation ( https://docs.microsoft.com/en-us/window
|
|||||||
|
|
||||||
- Exceeding these memory limitations will cause allocation failures and the application will crash.
|
- Exceeding these memory limitations will cause allocation failures and the application will crash.
|
||||||
|
|
||||||
Creating a signing certificate
|
## Creating a signing certificate
|
||||||
------------------------------
|
|
||||||
|
|
||||||
This requires the `MakeCert.exe` and `Pvk2Pfx.exe` tools, which come with
|
This requires the `MakeCert.exe` and `Pvk2Pfx.exe` tools, which come with
|
||||||
the Windows SDK. If you use Visual Studio, you can open one of its Developer
|
the Windows SDK. If you use Visual Studio, you can open one of its Developer
|
||||||
@ -73,8 +68,7 @@ app. Open the Command Prompt as Administrator and run the following command:
|
|||||||
Certutil -addStore TrustedPeople MyKey.cer
|
Certutil -addStore TrustedPeople MyKey.cer
|
||||||
```
|
```
|
||||||
|
|
||||||
Setting up automatic signing
|
## Setting up automatic signing
|
||||||
----------------------------
|
|
||||||
|
|
||||||
To setup automatic signing on export you need to go to Editor Settings > Export > Uwp.
|
To setup automatic signing on export you need to go to Editor Settings > Export > Uwp.
|
||||||
From there you need to click on the folder for `Signtool`, and navigate to
|
From there you need to click on the folder for `Signtool`, and navigate to
|
||||||
@ -96,8 +90,7 @@ following command.
|
|||||||
|
|
||||||
SignTool sign /fd SHA256 /a /f MyKey.pfx /p pfxPassword package.appx
|
SignTool sign /fd SHA256 /a /f MyKey.pfx /p pfxPassword package.appx
|
||||||
|
|
||||||
Installing the package
|
## Installing the package
|
||||||
----------------------
|
|
||||||
|
|
||||||
As of the Windows 10 Anniversary Update, you are able to install packages simply by
|
As of the Windows 10 Anniversary Update, you are able to install packages simply by
|
||||||
double clicking the `.appx` file from Windows Explorer.
|
double clicking the `.appx` file from Windows Explorer.
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
|
|
||||||
|
# Exporting for iOS
|
||||||
Exporting for iOS
|
|
||||||
=================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to iOS.
|
This page describes how to export a Pandemonium project to iOS.
|
||||||
If you're looking to compile export template binaries from source instead,
|
If you're looking to compile export template binaries from source instead,
|
||||||
read `doc_compiling_for_ios`.
|
read `doc_compiling_for_ios`.
|
||||||
@ -14,14 +11,12 @@ These are the steps to load a Pandemonium project in Xcode. This allows you to
|
|||||||
build and deploy to an iOS device, build a release for the App Store, and
|
build and deploy to an iOS device, build a release for the App Store, and
|
||||||
do everything else you can normally do with Xcode.
|
do everything else you can normally do with Xcode.
|
||||||
|
|
||||||
Requirements
|
## Requirements
|
||||||
------------
|
|
||||||
|
|
||||||
- You must export for iOS from a computer running macOS with Xcode installed.
|
- You must export for iOS from a computer running macOS with Xcode installed.
|
||||||
- Download the Pandemonium export templates. Use the Pandemonium menu: Editor > Manage Export Templates
|
- Download the Pandemonium export templates. Use the Pandemonium menu: Editor > Manage Export Templates
|
||||||
|
|
||||||
Export a Pandemonium project to Xcode
|
## Export a Pandemonium project to Xcode
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
In the Pandemonium editor, open the **Export** window from the **Project** menu. When the
|
In the Pandemonium editor, open the **Export** window from the **Project** menu. When the
|
||||||
Export window opens, click **Add..** and select **iOS**.
|
Export window opens, click **Add..** and select **iOS**.
|
||||||
@ -52,8 +47,7 @@ When the export completes, the output folder should look like this:
|
|||||||
Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy
|
Opening **exported_xcode_project_name.xcodeproj** lets you build and deploy
|
||||||
like any other iOS app.
|
like any other iOS app.
|
||||||
|
|
||||||
Active development considerations
|
## Active development considerations
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
The above method creates an exported project that you can build for
|
The above method creates an exported project that you can build for
|
||||||
release, but you have to re-export every time you make a change in Pandemonium.
|
release, but you have to re-export every time you make a change in Pandemonium.
|
||||||
@ -70,8 +64,7 @@ Note:
|
|||||||
**pandemonium_project_to_export** must not be the same as **exported_xcode_project_name**
|
**pandemonium_project_to_export** must not be the same as **exported_xcode_project_name**
|
||||||
to prevent signing issues in Xcode.
|
to prevent signing issues in Xcode.
|
||||||
|
|
||||||
Steps to link a Pandemonium project folder to Xcode
|
### Steps to link a Pandemonium project folder to Xcode
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
1. Start from an exported iOS project (follow the steps above).
|
1. Start from an exported iOS project (follow the steps above).
|
||||||
2. In Finder, drag the Pandemonium project folder into the Xcode file browser.
|
2. In Finder, drag the Pandemonium project folder into the Xcode file browser.
|
||||||
@ -97,14 +90,12 @@ you will be able to continue to edit your Pandemonium project in its current loc
|
|||||||
That's it! You can now edit your project in the Pandemonium editor and build it
|
That's it! You can now edit your project in the Pandemonium editor and build it
|
||||||
in Xcode when you want to run it on a device.
|
in Xcode when you want to run it on a device.
|
||||||
|
|
||||||
Plugins for iOS
|
## Plugins for iOS
|
||||||
---------------
|
|
||||||
|
|
||||||
Special iOS plugins can be used in Pandemonium. Check out the
|
Special iOS plugins can be used in Pandemonium. Check out the
|
||||||
`doc_plugins_for_ios` page.
|
`doc_plugins_for_ios` page.
|
||||||
|
|
||||||
Troubleshooting rendering issues
|
## Troubleshooting rendering issues
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
To improve out-of-the-box performance on mobile devices, Pandemonium automatically
|
To improve out-of-the-box performance on mobile devices, Pandemonium automatically
|
||||||
uses low-end-friendly settings by default on both Android and iOS.
|
uses low-end-friendly settings by default on both Android and iOS.
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
|
|
||||||
|
# Exporting for Android
|
||||||
Exporting for Android
|
|
||||||
=====================
|
|
||||||
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to Android.
|
This page describes how to export a Pandemonium project to Android.
|
||||||
If you're looking to compile export template binaries from source instead,
|
If you're looking to compile export template binaries from source instead,
|
||||||
read `doc_compiling_for_android`.
|
read `doc_compiling_for_android`.
|
||||||
@ -14,13 +10,11 @@ See also:
|
|||||||
Exporting for Android has fewer requirements than compiling Pandemonium for Android.
|
Exporting for Android has fewer requirements than compiling Pandemonium for Android.
|
||||||
The following steps detail what is needed to set up the Android SDK and the engine.
|
The following steps detail what is needed to set up the Android SDK and the engine.
|
||||||
|
|
||||||
Install OpenJDK 11
|
## Install OpenJDK 11
|
||||||
------------------
|
|
||||||
|
|
||||||
Download and install `OpenJDK 11 ( https://adoptium.net/?variant=openjdk11 )`.
|
Download and install `OpenJDK 11 ( https://adoptium.net/?variant=openjdk11 )`.
|
||||||
|
|
||||||
Download the Android SDK
|
## Download the Android SDK
|
||||||
------------------------
|
|
||||||
|
|
||||||
Download and install the Android SDK.
|
Download and install the Android SDK.
|
||||||
|
|
||||||
@ -51,8 +45,7 @@ Note:
|
|||||||
**do not use an Android SDK provided by your distribution's repositories as it will often be outdated**.
|
**do not use an Android SDK provided by your distribution's repositories as it will often be outdated**.
|
||||||
|
|
||||||
|
|
||||||
Create a debug.keystore
|
## Create a debug.keystore
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Android needs a debug keystore file to install to devices and distribute
|
Android needs a debug keystore file to install to devices and distribute
|
||||||
non-release APKs. If you have used the SDK before and have built
|
non-release APKs. If you have used the SDK before and have built
|
||||||
@ -68,8 +61,7 @@ the JDK can be used for this purpose:
|
|||||||
|
|
||||||
This will create a `debug.keystore` file in your current directory. You should move it to a memorable location such as `%USERPROFILE%\.android\`, because you will need its location in a later step. For more information on `keytool` usage, see `this Q&A article ( https://pandemoniumengine.org/qa/21349/jdk-android-file-missing )`.
|
This will create a `debug.keystore` file in your current directory. You should move it to a memorable location such as `%USERPROFILE%\.android\`, because you will need its location in a later step. For more information on `keytool` usage, see `this Q&A article ( https://pandemoniumengine.org/qa/21349/jdk-android-file-missing )`.
|
||||||
|
|
||||||
Setting it up in Pandemonium
|
## Setting it up in Pandemonium
|
||||||
----------------------
|
|
||||||
|
|
||||||
Enter the Editor Settings screen. This screen contains the editor
|
Enter the Editor Settings screen. This screen contains the editor
|
||||||
settings for the user account in the computer (it's independent of the
|
settings for the user account in the computer (it's independent of the
|
||||||
@ -93,7 +85,6 @@ Once that is configured, everything is ready to export to Android!
|
|||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
|
|
||||||
If you get an error saying *"Could not install to device."*, make sure
|
If you get an error saying *"Could not install to device."*, make sure
|
||||||
you do not have an application with the same Android package name already
|
you do not have an application with the same Android package name already
|
||||||
installed on the device (but signed with a different key).
|
installed on the device (but signed with a different key).
|
||||||
@ -103,8 +94,7 @@ Note:
|
|||||||
the application in question from the Android device before exporting to
|
the application in question from the Android device before exporting to
|
||||||
Android again.
|
Android again.
|
||||||
|
|
||||||
Providing launcher icons
|
## Providing launcher icons
|
||||||
------------------------
|
|
||||||
|
|
||||||
Launcher icons are used by Android launcher apps to represent your application to users. Pandemonium only requires high-resolution icons (for `xxxhdpi` density screens) and will automatically generate lower-resolution variants.
|
Launcher icons are used by Android launcher apps to represent your application to users. Pandemonium only requires high-resolution icons (for `xxxhdpi` density screens) and will automatically generate lower-resolution variants.
|
||||||
|
|
||||||
@ -127,8 +117,7 @@ If you don't provide some of the requested icons, Pandemonium will replace them
|
|||||||
It's highly recommended to provide all the requested icons with their specified resolutions.
|
It's highly recommended to provide all the requested icons with their specified resolutions.
|
||||||
This way, your application will look great on all Android devices and versions.
|
This way, your application will look great on all Android devices and versions.
|
||||||
|
|
||||||
Exporting for Google Play Store
|
## Exporting for Google Play Store
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
Uploading an APK to Google's Play Store requires you to sign using a non-debug
|
Uploading an APK to Google's Play Store requires you to sign using a non-debug
|
||||||
keystore file; such file can be generated like this:
|
keystore file; such file can be generated like this:
|
||||||
@ -156,8 +145,7 @@ Don't forget to uncheck the **Export With Debug** checkbox while exporting.
|
|||||||
|
|
||||||
![](img/export-with-debug-button.png)
|
![](img/export-with-debug-button.png)
|
||||||
|
|
||||||
Optimizing the APK size
|
## Optimizing the APK size
|
||||||
-----------------------
|
|
||||||
|
|
||||||
By default, the APK will contain native libraries for both ARMv7 and ARMv8
|
By default, the APK will contain native libraries for both ARMv7 and ARMv8
|
||||||
architectures. This increases its size significantly. To create a smaller APK,
|
architectures. This increases its size significantly. To create a smaller APK,
|
||||||
@ -177,8 +165,7 @@ You can optimize the size further by compiling an Android export template with
|
|||||||
only the features you need. See `doc_optimizing_for_size` for more
|
only the features you need. See `doc_optimizing_for_size` for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
Troubleshooting rendering issues
|
## Troubleshooting rendering issues
|
||||||
--------------------------------
|
|
||||||
|
|
||||||
To improve out-of-the-box performance on mobile devices, Pandemonium automatically
|
To improve out-of-the-box performance on mobile devices, Pandemonium automatically
|
||||||
uses low-end-friendly settings by default on both Android and iOS.
|
uses low-end-friendly settings by default on both Android and iOS.
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
Custom builds for Android
|
# Custom builds for Android
|
||||||
=========================
|
|
||||||
|
|
||||||
Pandemonium provides the option to use custom build Android templates. Instead of
|
Pandemonium provides the option to use custom build Android templates. Instead of
|
||||||
using the already pre-built template that ships with Pandemonium, an actual Android
|
using the already pre-built template that ships with Pandemonium, an actual Android
|
||||||
@ -17,8 +16,7 @@ Configuring the custom build is a fairly straightforward process. But first
|
|||||||
you need to follow the steps in `exporting for android( doc_exporting_for_android )`
|
you need to follow the steps in `exporting for android( doc_exporting_for_android )`
|
||||||
up to **Setting it up in Pandemonium**. After doing that, follow the steps below.
|
up to **Setting it up in Pandemonium**. After doing that, follow the steps below.
|
||||||
|
|
||||||
Set up the custom build environment
|
## Set up the custom build environment
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
Go to the Project menu, and install the *Custom Build* template:
|
Go to the Project menu, and install the *Custom Build* template:
|
||||||
|
|
||||||
@ -32,8 +30,7 @@ Editing these files is not needed unless you want to `create
|
|||||||
your own add-ons( doc_android_plugin )`, or you really need to modify the project.
|
your own add-ons( doc_android_plugin )`, or you really need to modify the project.
|
||||||
|
|
||||||
|
|
||||||
Enabling the custom build and exporting
|
## Enabling the custom build and exporting
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
When setting up the Android project in the **Project > Export** dialog,
|
When setting up the Android project in the **Project > Export** dialog,
|
||||||
**Custom Build** needs to be enabled:
|
**Custom Build** needs to be enabled:
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
Exporting for the Web
|
# Exporting for the Web
|
||||||
=====================
|
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
|
|
||||||
This page describes how to export a Pandemonium project to HTML5.
|
This page describes how to export a Pandemonium project to HTML5.
|
||||||
If you're looking to compile editor or export template binaries from source instead,
|
If you're looking to compile editor or export template binaries from source instead,
|
||||||
read `doc_compiling_for_web`.
|
read `doc_compiling_for_web`.
|
||||||
@ -15,18 +13,21 @@ This requires support for `WebAssembly
|
|||||||
( https://webassembly.org/ )` and `WebGL ( https://www.khronos.org/webgl/ )`
|
( https://webassembly.org/ )` and `WebGL ( https://www.khronos.org/webgl/ )`
|
||||||
in the user's browser.
|
in the user's browser.
|
||||||
|
|
||||||
.. important:: Use the browser-integrated developer console, usually opened
|
Important:
|
||||||
|
|
||||||
|
Use the browser-integrated developer console, usually opened
|
||||||
with :kbd:`F12`, to view **debug information** like JavaScript,
|
with :kbd:`F12`, to view **debug information** like JavaScript,
|
||||||
engine, and WebGL errors.
|
engine, and WebGL errors.
|
||||||
|
|
||||||
.. attention:: `There are significant bugs when running HTML5 projects on iOS
|
Attention:
|
||||||
|
|
||||||
|
`There are significant bugs when running HTML5 projects on iOS
|
||||||
( https://github.com/Relintai/pandemonium_engine/issues?q=is:issue+is:open+label:platform:html5+ios )`
|
( https://github.com/Relintai/pandemonium_engine/issues?q=is:issue+is:open+label:platform:html5+ios )`
|
||||||
(regardless of the browser). We recommend using
|
(regardless of the browser). We recommend using
|
||||||
`iOS' native export functionality ( doc_exporting_for_ios )`
|
`iOS' native export functionality ( doc_exporting_for_ios )`
|
||||||
instead, as it will also result in better performance.
|
instead, as it will also result in better performance.
|
||||||
|
|
||||||
WebGL version
|
## WebGL version
|
||||||
-------------
|
|
||||||
|
|
||||||
Depending on your choice of renderer, Pandemonium can target WebGL 1.0 (*GLES2*) or
|
Depending on your choice of renderer, Pandemonium can target WebGL 1.0 (*GLES2*) or
|
||||||
WebGL 2.0 (*GLES3*).
|
WebGL 2.0 (*GLES3*).
|
||||||
@ -43,10 +44,7 @@ for **Safari**. WebGL 2.0 support is coming in Safari 15 for macOS, and is not
|
|||||||
available yet for any **iOS** browser (all WebKit-based like Safari).
|
available yet for any **iOS** browser (all WebKit-based like Safari).
|
||||||
See `Can I use WebGL 2.0 ( https://caniuse.com/webgl2 )` for details.
|
See `Can I use WebGL 2.0 ( https://caniuse.com/webgl2 )` for details.
|
||||||
|
|
||||||
|
## Export options
|
||||||
|
|
||||||
Export options
|
|
||||||
--------------
|
|
||||||
|
|
||||||
If a runnable web export template is available, a button appears between the
|
If a runnable web export template is available, a button appears between the
|
||||||
*Stop scene* and *Play edited Scene* buttons in the editor to quickly open the
|
*Stop scene* and *Play edited Scene* buttons in the editor to quickly open the
|
||||||
@ -75,7 +73,9 @@ the default HTML page. See `doc_customizing_html5_shell`.
|
|||||||
HTML page. This allows to, for example, load webfonts and third-party
|
HTML page. This allows to, for example, load webfonts and third-party
|
||||||
JavaScript APIs, include CSS, or run JavaScript code.
|
JavaScript APIs, include CSS, or run JavaScript code.
|
||||||
|
|
||||||
.. important:: Each project must generate their own HTML file. On export,
|
Important:
|
||||||
|
|
||||||
|
Each project must generate their own HTML file. On export,
|
||||||
several text placeholders are replaced in the generated HTML
|
several text placeholders are replaced in the generated HTML
|
||||||
file specifically for the given export options. Any direct
|
file specifically for the given export options. Any direct
|
||||||
modifications to that HTML file will be lost in future exports.
|
modifications to that HTML file will be lost in future exports.
|
||||||
@ -86,16 +86,15 @@ Warning:
|
|||||||
**Export types** other then *Regular* are not yet supported by the
|
**Export types** other then *Regular* are not yet supported by the
|
||||||
C# version.
|
C# version.
|
||||||
|
|
||||||
Limitations
|
## Limitations
|
||||||
-----------
|
|
||||||
|
|
||||||
For security and privacy reasons, many features that work effortlessly on
|
For security and privacy reasons, many features that work effortlessly on
|
||||||
native platforms are more complicated on the web platform. Following is a list
|
native platforms are more complicated on the web platform. Following is a list
|
||||||
of limitations you should be aware of when porting a Pandemonium game to the web.
|
of limitations you should be aware of when porting a Pandemonium game to the web.
|
||||||
|
|
||||||
|
Important:
|
||||||
|
|
||||||
|
Browser vendors are making more and more functionalities only
|
||||||
.. important:: Browser vendors are making more and more functionalities only
|
|
||||||
available in `secure contexts ( https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts )`,
|
available in `secure contexts ( https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts )`,
|
||||||
this means that such features are only be available if the web
|
this means that such features are only be available if the web
|
||||||
page is served via a secure HTTPS connection (localhost is
|
page is served via a secure HTTPS connection (localhost is
|
||||||
@ -107,8 +106,7 @@ Tip:
|
|||||||
to see if the functionality you're interested in has an issue yet. If
|
to see if the functionality you're interested in has an issue yet. If
|
||||||
not, open one to communicate your interest.
|
not, open one to communicate your interest.
|
||||||
|
|
||||||
Using cookies for data persistence
|
### Using cookies for data persistence
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Users must **allow cookies** (specifically IndexedDB) if persistence of the
|
Users must **allow cookies** (specifically IndexedDB) if persistence of the
|
||||||
`user://` file system is desired. When playing a game presented in an
|
`user://` file system is desired. When playing a game presented in an
|
||||||
@ -119,8 +117,7 @@ The method `OS.is_userfs_persistent()` can be used to check if the
|
|||||||
`user://` file system is persistent, but can give false positives in some
|
`user://` file system is persistent, but can give false positives in some
|
||||||
cases.
|
cases.
|
||||||
|
|
||||||
Background processing
|
### Background processing
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The project will be paused by the browser when the tab is no longer the active
|
The project will be paused by the browser when the tab is no longer the active
|
||||||
tab in the user's browser. This means functions such as `process()` and
|
tab in the user's browser. This means functions such as `process()` and
|
||||||
@ -132,8 +129,7 @@ This limitation does not apply to unfocused browser *windows*. Therefore, on the
|
|||||||
user's side, this can be worked around by running the project in a separate
|
user's side, this can be worked around by running the project in a separate
|
||||||
*window* instead of a separate tab.
|
*window* instead of a separate tab.
|
||||||
|
|
||||||
Threads
|
### Threads
|
||||||
~~~~~~~
|
|
||||||
|
|
||||||
As mentioned `above ( doc_javascript_export_options )` multi-threading is
|
As mentioned `above ( doc_javascript_export_options )` multi-threading is
|
||||||
only available if the appropriate **Export Type** is set and support for it
|
only available if the appropriate **Export Type** is set and support for it
|
||||||
@ -144,8 +140,7 @@ Warning:
|
|||||||
Browsers also require that the web page is served with specific
|
Browsers also require that the web page is served with specific
|
||||||
`cross-origin isolation headers ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy )`.
|
`cross-origin isolation headers ( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy )`.
|
||||||
|
|
||||||
GDNative
|
### GDNative
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
As mentioned `above ( doc_javascript_export_options )` GDNative is only
|
As mentioned `above ( doc_javascript_export_options )` GDNative is only
|
||||||
available if the appropriate **Export Type** is set.
|
available if the appropriate **Export Type** is set.
|
||||||
@ -153,8 +148,7 @@ available if the appropriate **Export Type** is set.
|
|||||||
The export will also copy the required GDNative `.wasm` files to the output
|
The export will also copy the required GDNative `.wasm` files to the output
|
||||||
folder (and must be uploaded to your server along with your game).
|
folder (and must be uploaded to your server along with your game).
|
||||||
|
|
||||||
Full screen and mouse capture
|
### Full screen and mouse capture
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Browsers do not allow arbitrarily **entering full screen**. The same goes for
|
Browsers do not allow arbitrarily **entering full screen**. The same goes for
|
||||||
**capturing the cursor**. Instead, these actions have to occur as a response to
|
**capturing the cursor**. Instead, these actions have to occur as a response to
|
||||||
@ -167,8 +161,7 @@ For the same reason, the full screen project setting doesn't work unless the
|
|||||||
engine is started from within a valid input event handler. This requires
|
engine is started from within a valid input event handler. This requires
|
||||||
`customization of the HTML page ( doc_customizing_html5_shell )`.
|
`customization of the HTML page ( doc_customizing_html5_shell )`.
|
||||||
|
|
||||||
Audio
|
### Audio
|
||||||
~~~~~
|
|
||||||
|
|
||||||
Chrome restricts how websites may play audio. It may be necessary for the
|
Chrome restricts how websites may play audio. It may be necessary for the
|
||||||
player to click or tap or press a key to enable audio.
|
player to click or tap or press a key to enable audio.
|
||||||
@ -181,8 +174,7 @@ Warning:
|
|||||||
Access to microphone requires a
|
Access to microphone requires a
|
||||||
`secure context ( doc_javascript_secure_contexts )`.
|
`secure context ( doc_javascript_secure_contexts )`.
|
||||||
|
|
||||||
Networking
|
### Networking
|
||||||
~~~~~~~~~~
|
|
||||||
|
|
||||||
Low level networking is not implemented due to lacking support in browsers.
|
Low level networking is not implemented due to lacking support in browsers.
|
||||||
|
|
||||||
@ -200,8 +192,7 @@ The HTTP classes also have several restrictions on the HTML5 platform:
|
|||||||
- Host verification cannot be disabled
|
- Host verification cannot be disabled
|
||||||
- Subject to `same-origin policy ( https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy )`
|
- Subject to `same-origin policy ( https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy )`
|
||||||
|
|
||||||
Clipboard
|
### Clipboard
|
||||||
~~~~~~~~~
|
|
||||||
|
|
||||||
Clipboard synchronization between engine and the operating system requires a
|
Clipboard synchronization between engine and the operating system requires a
|
||||||
browser supporting the `Clipboard API ( https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API )`,
|
browser supporting the `Clipboard API ( https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API )`,
|
||||||
@ -211,8 +202,7 @@ accessed from GDScript.
|
|||||||
Warning:
|
Warning:
|
||||||
Requires a `secure context ( doc_javascript_secure_contexts )`.
|
Requires a `secure context ( doc_javascript_secure_contexts )`.
|
||||||
|
|
||||||
Gamepads
|
### Gamepads
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
Gamepads will not be detected until one of their button is pressed. Gamepads
|
Gamepads will not be detected until one of their button is pressed. Gamepads
|
||||||
might have the wrong mapping depending on the browser/OS/gamepad combination,
|
might have the wrong mapping depending on the browser/OS/gamepad combination,
|
||||||
@ -223,21 +213,18 @@ to remap them based on model/vendor/OS due to privacy considerations.
|
|||||||
Warning:
|
Warning:
|
||||||
Requires a `secure context ( doc_javascript_secure_contexts )`.
|
Requires a `secure context ( doc_javascript_secure_contexts )`.
|
||||||
|
|
||||||
Boot splash is not displayed
|
### Boot splash is not displayed
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The default HTML page does not display the boot splash while loading. However,
|
The default HTML page does not display the boot splash while loading. However,
|
||||||
the image is exported as a PNG file, so `custom HTML pages ( doc_customizing_html5_shell )`
|
the image is exported as a PNG file, so `custom HTML pages ( doc_customizing_html5_shell )`
|
||||||
can display it.
|
can display it.
|
||||||
|
|
||||||
Shader language limitations
|
### Shader language limitations
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
When exporting a GLES2 project to HTML5, WebGL 1.0 will be used. WebGL 1.0
|
When exporting a GLES2 project to HTML5, WebGL 1.0 will be used. WebGL 1.0
|
||||||
doesn't support dynamic loops, so shaders using those won't work there.
|
doesn't support dynamic loops, so shaders using those won't work there.
|
||||||
|
|
||||||
Serving the files
|
## Serving the files
|
||||||
-----------------
|
|
||||||
|
|
||||||
Exporting for the web generates several files to be served from a web server,
|
Exporting for the web generates several files to be served from a web server,
|
||||||
including a default HTML page for presentation. A custom HTML file can be
|
including a default HTML page for presentation. A custom HTML file can be
|
||||||
@ -263,7 +250,9 @@ The `.pck` file is binary, usually delivered with the MIME-type
|
|||||||
:mimetype:`application/octet-stream`. The `.wasm` file is delivered as
|
:mimetype:`application/octet-stream`. The `.wasm` file is delivered as
|
||||||
:mimetype:`application/wasm`.
|
:mimetype:`application/wasm`.
|
||||||
|
|
||||||
.. caution:: Delivering the WebAssembly module (`.wasm`) with a MIME-type
|
Caution:
|
||||||
|
|
||||||
|
Delivering the WebAssembly module (`.wasm`) with a MIME-type
|
||||||
other than :mimetype:`application/wasm` can prevent some start-up
|
other than :mimetype:`application/wasm` can prevent some start-up
|
||||||
optimizations.
|
optimizations.
|
||||||
|
|
||||||
@ -277,10 +266,7 @@ of its original size with gzip compression.
|
|||||||
**Hosts that don't provide on-the-fly compression:** itch.io, GitLab Pages
|
**Hosts that don't provide on-the-fly compression:** itch.io, GitLab Pages
|
||||||
(`supports manual gzip precompression ( https://webd97.de/post/gitlab-pages-compression/ )`)
|
(`supports manual gzip precompression ( https://webd97.de/post/gitlab-pages-compression/ )`)
|
||||||
|
|
||||||
|
## Calling JavaScript from script
|
||||||
|
|
||||||
Calling JavaScript from script
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
In web builds, the `JavaScript` singleton is implemented. It offers a single
|
In web builds, the `JavaScript` singleton is implemented. It offers a single
|
||||||
method called `eval` that works similarly to the JavaScript function of the
|
method called `eval` that works similarly to the JavaScript function of the
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
|
|
||||||
|
# Exporting for dedicated servers
|
||||||
Exporting for dedicated servers
|
|
||||||
===============================
|
|
||||||
|
|
||||||
If you want to run a dedicated server for your project on a machine that doesn't
|
If you want to run a dedicated server for your project on a machine that doesn't
|
||||||
have a GPU or display server available, you'll need to use a server build of Pandemonium.
|
have a GPU or display server available, you'll need to use a server build of Pandemonium.
|
||||||
|
|
||||||
Platform support
|
## Platform support
|
||||||
----------------
|
|
||||||
|
|
||||||
- **Linux:** `Download an official Linux server binary ( https://pandemoniumengine.org/download/server )`.
|
- **Linux:** `Download an official Linux server binary ( https://pandemoniumengine.org/download/server )`.
|
||||||
To compile a server binary from source, follow instructions in
|
To compile a server binary from source, follow instructions in
|
||||||
@ -20,8 +17,7 @@ Platform support
|
|||||||
|
|
||||||
If your project uses C#, you'll have to use a Mono-enabled server binary.
|
If your project uses C#, you'll have to use a Mono-enabled server binary.
|
||||||
|
|
||||||
"Headless" versus "server" binaries
|
## "Headless" versus "server" binaries
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
The `server download page ( https://pandemoniumengine.org/download/server )`
|
The `server download page ( https://pandemoniumengine.org/download/server )`
|
||||||
offers two kinds of binaries with several differences.
|
offers two kinds of binaries with several differences.
|
||||||
@ -33,8 +29,7 @@ offers two kinds of binaries with several differences.
|
|||||||
used for exporting projects. This binary *can* be used to run dedicated
|
used for exporting projects. This binary *can* be used to run dedicated
|
||||||
servers, but it's not recommended as it's larger and less optimized.
|
servers, but it's not recommended as it's larger and less optimized.
|
||||||
|
|
||||||
Exporting a PCK file
|
## Exporting a PCK file
|
||||||
--------------------
|
|
||||||
|
|
||||||
There are two ways to export a project for a server:
|
There are two ways to export a project for a server:
|
||||||
|
|
||||||
@ -72,8 +67,7 @@ Note:
|
|||||||
client and dedicated server build. This can be useful if you want to ship a
|
client and dedicated server build. This can be useful if you want to ship a
|
||||||
single archive that can be used both as a client and dedicated server.
|
single archive that can be used both as a client and dedicated server.
|
||||||
|
|
||||||
Preparing the server distribution
|
## Preparing the server distribution
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
After downloading or compiling a server binary, you should now place it in the
|
After downloading or compiling a server binary, you should now place it in the
|
||||||
same folder as the PCK file you've exported. The server binary should have the
|
same folder as the PCK file you've exported. The server binary should have the
|
||||||
@ -86,8 +80,7 @@ different name, you can specify the path to the PCK file using the
|
|||||||
./pandemonium-server --main-pack my_project.pck
|
./pandemonium-server --main-pack my_project.pck
|
||||||
```
|
```
|
||||||
|
|
||||||
Starting the dedicated server
|
## Starting the dedicated server
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
If both your client and server are part of the same Pandemonium project, you will have
|
If both your client and server are part of the same Pandemonium project, you will have
|
||||||
to add a way to start the server directly using a command-line argument. This
|
to add a way to start the server directly using a command-line argument. This
|
||||||
@ -118,8 +111,7 @@ If your client and server are separate Pandemonium projects, your server should
|
|||||||
likely be configured in a way where running the main scene starts a server
|
likely be configured in a way where running the main scene starts a server
|
||||||
automatically.
|
automatically.
|
||||||
|
|
||||||
Next steps
|
## Next steps
|
||||||
----------
|
|
||||||
|
|
||||||
On Linux, to make your dedicated server restart after a crash or system reboot,
|
On Linux, to make your dedicated server restart after a crash or system reboot,
|
||||||
you can
|
you can
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
|
|
||||||
|
# One-click deploy
|
||||||
|
|
||||||
One-click deploy
|
## What is one-click deploy?
|
||||||
================
|
|
||||||
|
|
||||||
What is one-click deploy?
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
One-click deploy is a feature that is available once a platform is properly
|
One-click deploy is a feature that is available once a platform is properly
|
||||||
configured and a supported device is connected to the computer. Since things can
|
configured and a supported device is connected to the computer. Since things can
|
||||||
@ -26,8 +23,7 @@ Note:
|
|||||||
runnable. If you mark a second preset in a given platform as runnable, the
|
runnable. If you mark a second preset in a given platform as runnable, the
|
||||||
other preset will no longer be marked as runnable.
|
other preset will no longer be marked as runnable.
|
||||||
|
|
||||||
Supported platforms
|
## Supported platforms
|
||||||
-------------------
|
|
||||||
|
|
||||||
- **Android:** Exports the project with debugging enabled and runs it on the
|
- **Android:** Exports the project with debugging enabled and runs it on the
|
||||||
connected device.
|
connected device.
|
||||||
@ -43,8 +39,7 @@ Supported platforms
|
|||||||
|
|
||||||
Support for more platforms such as iOS is planned.
|
Support for more platforms such as iOS is planned.
|
||||||
|
|
||||||
Using one-click deploy
|
## Using one-click deploy
|
||||||
----------------------
|
|
||||||
|
|
||||||
- If deploying to Android, enable developer mode on your mobile device
|
- If deploying to Android, enable developer mode on your mobile device
|
||||||
then enable USB debugging in the device's settings.
|
then enable USB debugging in the device's settings.
|
||||||
@ -60,11 +55,9 @@ Using one-click deploy
|
|||||||
|
|
||||||
![](img/oneclick.png)
|
![](img/oneclick.png)
|
||||||
|
|
||||||
Troubleshooting
|
## Troubleshooting
|
||||||
---------------
|
|
||||||
|
|
||||||
Android
|
### Android
|
||||||
^^^^^^^
|
|
||||||
|
|
||||||
If you can't see the device in the list of devices when running the
|
If you can't see the device in the list of devices when running the
|
||||||
`adb devices` command in a terminal, it will not be visible by Pandemonium either.
|
`adb devices` command in a terminal, it will not be visible by Pandemonium either.
|
||||||
|
Loading…
Reference in New Issue
Block a user