Package com.iizix.run

Class RuntimeBuilderSettings


  • public class RuntimeBuilderSettings
    extends java.lang.Object
    The build settings loaded from the property container.
    Author:
    Christopher Mindus
    • Field Summary

      Fields 
      Modifier and Type Field Description
      PlainKString app_descr
      Descriptive text of the app, use text table externalized for multiple languages
      java.lang.String app_id
      Specifies the app's reverse-domain identifier, e.g.
      java.lang.String app_id_android
      Specifies the app's reverse-domain identifier, e.g.
      java.lang.String app_id_ios
      Specifies the app's reverse-domain identifier, e.g.
      java.lang.String app_id_windows
      Specifies the app's reverse-domain identifier, e.g.
      PlainKString app_locName
      Name of the app displayed to the user.
      java.lang.String app_name
      Short name of the app without spaces.
      java.lang.String app_textTable
      Base text table for iiziRun texts.
      static boolean areAndroidIconsTransparent
      Flag for opacity for Android icons.
      static boolean areiOSIconsTransparent
      Flag for opacity for iOS icons.
      static boolean areWindowsIconsTransparent
      Flag for opacity for Windows icons.
      java.lang.String assets_folder
      The Assets folder for "icons" and "splash" screens.
      java.lang.String author_email
      Email to author for app.
      java.lang.String author_href
      Web site of author for app.
      PlainKString author_name
      Name of author.
      boolean build_android
      Builds the customized iiziRun for Android, default true.
      boolean build_ios
      Builds the customized iiziRun for iOS, default true.
      java.lang.String build_remote
      Specifies the address of the Remote iiziRun Builder machine.
      boolean build_remote_all
      Build all remotely.
      boolean build_remote_tls
      Secured with TLS.
      int build_target_types
      Targets to build: 0=debug, 1=release, 2=both.
      java.lang.String build_version
      Full version number expressed in major.minor.patch notation (default 1.0.0).
      boolean build_windows_uap
      Builds the customized iiziRun for Windows 10 Universal Platform, default true.
      java.lang.String cert_C
      Certificate "C": Two letter country code, e.g.
      java.lang.String cert_CN
      The Common Name of the author for certificates.
      java.lang.String cert_L
      Certificate "L": Locality (city) name, e.g.
      java.lang.String cert_O
      Certificate "O": Large organization name, e.g.
      java.lang.String cert_OU
      Certificate "OU": Small organization name, e.g.
      java.lang.String cert_ST
      Certificate "ST": State name, e.g.
      int deepLink_op
      The operation that are allowed for Deep Linking.
      java.lang.String deepLink_urlscheme
      Enables Deep Linking by means of an URL scheme.
      static java.lang.String[] ICON_DENSITY_ANDROID
      Icon densities for Android, null for none.
      static java.lang.String[] ICON_NAMES_ANDROID
      The transparent icon names for Android required in the icons directory.
      static java.lang.String[] ICON_NAMES_COMMON
      The transparent icon names for Common use (Web, etc) required in the icons directory.
      static java.lang.String[] ICON_NAMES_COMMON_MUST_BE_PRESENT
      The transparent icon names for Common use (Web, etc) required in the icons directory.
      static java.lang.String[] ICON_NAMES_IOS
      The opaque icon names for iOS required in the icons directory.
      static java.lang.String[] ICON_NAMES_WINDOWS
      The icon names for Windows required in the icons directory.
      java.lang.String jdk_path
      Path to the root of the Java 1.8 Development Kit.
      java.lang.String login_password
      The initial password for a default login.
      java.lang.String login_user
      The initial user name for a default login.
      boolean output_clear
      Flag indicating if the user should be prompted to clear the build output directory or if it should automatically be done.
      java.lang.String output_path
      Path where the build output of the customized iiziRun will be placed.
      boolean plugin_camera
      Enables taking pictures and for choosing images from the system's image library.
      boolean plugin_contacts
      Enables the access to the contacts database of the device.
      boolean plugin_fingerprint
      Enables fingerprint authentication with Android Fingerprint scanner or iOS Touch ID.
      boolean plugin_firebase
      Enables push notifications, analytics, event tracking, crash reporting and more from Google Firebase.
      boolean plugin_geolocation
      Enables the geolocation functions.
      boolean plugin_geolocation_BG_android
      Enables the background geolocation functions for Android.
      boolean plugin_geolocation_BG_ios
      Enables the background geolocation functionsfor iOS.
      boolean plugin_inappbrowser
      Enables the in-app browser to display web pages much like the external web browser.
      boolean plugin_media
      This plugin provides the ability to record and play back audio files on a device.
      boolean plugin_media_capture
      This plugin provides access to the device's audio, image, and video capture capabilities.
      boolean plugin_vibration
      Enables simple vibrations on the device.
      RuntimeBuilderProps props
      The settings property.
      java.lang.String server_addr
      Address of the iizi Server.
      int server_port
      Server port number, normally 443 for secure TLS connections (default), otherwise e.g.
      boolean server_secure
      Indicates the server port is configured for secure TLS communication, default true.
      boolean server_validate
      Validates that the server is really present and an iizi Server.
      static java.lang.String[] SPLASH_FILES
      Splash screens are opaque.
      static int[] SPLASH_IOS_SIZES
      Splash screen sizes for iOS: first width, then height.
      java.lang.String srv_app_descr
      The iizi Server App Description.
      java.lang.String srv_app_id
      The iizi Server App ID.
      protected TextTable textTable
      The text table, null if it comes from a remote party.
      static int TOTAL_ICON_COUNT
      Count of icons needed (for wizard to display).
      java.lang.String windows_publisher_id
      The windows publisher ID as e.g.
      java.lang.String windows_store_identity_name
      The Windows Store identity name, e.g.
    • Field Detail

      • ICON_NAMES_COMMON

        public static final java.lang.String[] ICON_NAMES_COMMON
        The transparent icon names for Common use (Web, etc) required in the icons directory.
      • ICON_NAMES_COMMON_MUST_BE_PRESENT

        public static final java.lang.String[] ICON_NAMES_COMMON_MUST_BE_PRESENT
        The transparent icon names for Common use (Web, etc) required in the icons directory.
      • areAndroidIconsTransparent

        public static final boolean areAndroidIconsTransparent
        Flag for opacity for Android icons.
        See Also:
        Constant Field Values
      • ICON_NAMES_ANDROID

        public static final java.lang.String[] ICON_NAMES_ANDROID
        The transparent icon names for Android required in the icons directory.
      • ICON_DENSITY_ANDROID

        public static final java.lang.String[] ICON_DENSITY_ANDROID
        Icon densities for Android, null for none.
      • areiOSIconsTransparent

        public static final boolean areiOSIconsTransparent
        Flag for opacity for iOS icons.
        See Also:
        Constant Field Values
      • ICON_NAMES_IOS

        public static final java.lang.String[] ICON_NAMES_IOS
        The opaque icon names for iOS required in the icons directory.

        Note that there are TWO names that begins with "windows/" and needs a subdirectory. These icons are not square.

      • areWindowsIconsTransparent

        public static final boolean areWindowsIconsTransparent
        Flag for opacity for Windows icons.
        See Also:
        Constant Field Values
      • ICON_NAMES_WINDOWS

        public static final java.lang.String[] ICON_NAMES_WINDOWS
        The icon names for Windows required in the icons directory. These icons are opaque.

        Note that there are TWO names that begins with "windows/" and needs a subdirectory. These icons are not square.

      • SPLASH_FILES

        public static final java.lang.String[] SPLASH_FILES
        Splash screens are opaque.
      • SPLASH_IOS_SIZES

        public static final int[] SPLASH_IOS_SIZES
        Splash screen sizes for iOS: first width, then height.
      • TOTAL_ICON_COUNT

        public static final int TOTAL_ICON_COUNT
        Count of icons needed (for wizard to display).
      • build_version

        public final java.lang.String build_version
        Full version number expressed in major.minor.patch notation (default 1.0.0).
      • build_android

        public final boolean build_android
        Builds the customized iiziRun for Android, default true.
      • build_ios

        public final boolean build_ios
        Builds the customized iiziRun for iOS, default true.
      • build_windows_uap

        public final boolean build_windows_uap
        Builds the customized iiziRun for Windows 10 Universal Platform, default true.
      • build_target_types

        public final int build_target_types
        Targets to build: 0=debug, 1=release, 2=both.
      • build_remote

        public final java.lang.String build_remote
        Specifies the address of the Remote iiziRun Builder machine. Format is 'addr:port'. All communication is done over secured TLS connections.
      • build_remote_tls

        public final boolean build_remote_tls
        Secured with TLS.
      • build_remote_all

        public final boolean build_remote_all
        Build all remotely.
      • app_id

        public final java.lang.String app_id
        Specifies the app's reverse-domain identifier, e.g. 'com.iizix.run.devel'. This name cannot be changed once the app has been published.
      • app_name

        public final java.lang.String app_name
        Short name of the app without spaces. This name cannot be localized. This name cannot be changed once the app has been published.
      • assets_folder

        public final java.lang.String assets_folder
        The Assets folder for "icons" and "splash" screens.
      • app_textTable

        public final java.lang.String app_textTable
        Base text table for iiziRun texts. When multiple languages are used, this is the base language text file.
      • textTable

        protected TextTable textTable
        The text table, null if it comes from a remote party.
      • app_locName

        public final PlainKString app_locName
        Name of the app displayed to the user. The name can contain spaces and can be localized. It can also be changed after publishing of the app.
      • app_descr

        public final PlainKString app_descr
        Descriptive text of the app, use text table externalized for multiple languages
      • author_name

        public final PlainKString author_name
        Name of author. Use text table to localize name.
      • author_email

        public final java.lang.String author_email
        Email to author for app.
      • author_href

        public final java.lang.String author_href
        Web site of author for app.
      • cert_CN

        public final java.lang.String cert_CN
        The Common Name of the author for certificates. If unspecified, it is the author's name in the default language (English).
      • cert_O

        public final java.lang.String cert_O
        Certificate "O": Large organization name, e.g. "Onizuka, Inc.". If unspecified, it is the author's name in the default language (English).
      • cert_OU

        public final java.lang.String cert_OU
        Certificate "OU": Small organization name, e.g. "Purchasing".
      • cert_L

        public final java.lang.String cert_L
        Certificate "L": Locality (city) name, e.g. "Palo Alto".
      • cert_ST

        public final java.lang.String cert_ST
        Certificate "ST": State name, e.g. "California".
      • cert_C

        public final java.lang.String cert_C
        Certificate "C": Two letter country code, e.g. "CH".
      • server_addr

        public final java.lang.String server_addr
        Address of the iizi Server. The address can be a DNS name (recommended) but can also be an IP address. This address does not necessarily have to be public on the internet.
      • server_port

        public final int server_port
        Server port number, normally 443 for secure TLS connections (default), otherwise e.g. 80 for unsecure connections.
      • server_secure

        public final boolean server_secure
        Indicates the server port is configured for secure TLS communication, default true.
      • server_validate

        public final boolean server_validate
        Validates that the server is really present and an iizi Server. This is done in order to ensure that the server settings are correct. Default is true.
      • srv_app_id

        public final java.lang.String srv_app_id
        The iizi Server App ID. This value MUST be specified and VALID.
      • srv_app_descr

        public final java.lang.String srv_app_descr
        The iizi Server App Description. null or an empty string means that no description is available. This value is used merely for the interface on the client side for choosing the app, when this is possible.
      • login_user

        public final java.lang.String login_user
        The initial user name for a default login.

        In order to avoid a login prompt and to handle the login process inside the app, provide a valid and authorized User name and Password. This user should just have access to the app initially.

        The default is "iiziRun Developer" with "secret" password.

      • login_password

        public final java.lang.String login_password
        The initial password for a default login.

        The default is "iiziRun Developer" with "secret" password.

      • deepLink_urlscheme

        public final java.lang.String deepLink_urlscheme
        Enables Deep Linking by means of an URL scheme. The user can use the browser on the device to perform operations when clicking on special links. null means not enabled.
      • deepLink_op

        public final int deepLink_op
        The operation that are allowed for Deep Linking. Be very careful when choosing the 'run another' or 'redefine' as this could present a security risk for users, unless the server is controlled in e.g. a private or corporate network (i.e. not the internet).

        Values:

        • 0 = launch (default)
        • 1 = run another
        • 2 = redefine
      • output_path

        public final java.lang.String output_path
        Path where the build output of the customized iiziRun will be placed. The default is the directory 'iiziRun' in the module project.
      • output_clear

        public final boolean output_clear
        Flag indicating if the user should be prompted to clear the build output directory or if it should automatically be done.
      • jdk_path

        public final java.lang.String jdk_path
        Path to the root of the Java 1.8 Development Kit. The default will attempt to use the Eclipse settings.
      • plugin_camera

        public final boolean plugin_camera
        Enables taking pictures and for choosing images from the system's image library.
      • plugin_contacts

        public final boolean plugin_contacts
        Enables the access to the contacts database of the device.
      • plugin_firebase

        public final boolean plugin_firebase
        Enables push notifications, analytics, event tracking, crash reporting and more from Google Firebase.
      • plugin_geolocation

        public final boolean plugin_geolocation
        Enables the geolocation functions.

        Enabled by default.

      • plugin_geolocation_BG_android

        public final boolean plugin_geolocation_BG_android
        Enables the background geolocation functions for Android. This makes it possible for the server to receive the location of the device even if the app is not running.
      • plugin_geolocation_BG_ios

        public final boolean plugin_geolocation_BG_ios
        Enables the background geolocation functionsfor iOS. This makes it possible for the server to receive the location of the device even if the app is not running.

        Note: the App Store is very strict for this setting and will only allow your app to use it if you can "prove" that the app functions requires it.

      • plugin_inappbrowser

        public final boolean plugin_inappbrowser
        Enables the in-app browser to display web pages much like the external web browser. This plugin is required for apps using external login sources such as Facebook, LinkedIn or Twitter.
      • plugin_media

        public final boolean plugin_media
        This plugin provides the ability to record and play back audio files on a device.
      • plugin_media_capture

        public final boolean plugin_media_capture
        This plugin provides access to the device's audio, image, and video capture capabilities.

        WARNING: Collection and use of images, video, or audio from the device's camera or microphone raises important privacy issues. Your app's privacy policy should discuss how the app uses such sensors and whether the data recorded is shared with any other parties. In addition, if the app's use of the camera or microphone is not apparent in the user interface, you should provide a just-in-time notice before the app accesses the camera or microphone (if the device operating system doesn't do so already). That notice should provide the same information noted above, as well as obtaining the user's permission (e.g., by presenting choices for 'OK' and 'No Thanks'). Note that some app marketplaces may require your app to provide just-in-time notice and obtain permission from the user prior to accessing the camera or microphone.

      • plugin_fingerprint

        public final boolean plugin_fingerprint
        Enables fingerprint authentication with Android Fingerprint scanner or iOS Touch ID.
      • plugin_vibration

        public final boolean plugin_vibration
        Enables simple vibrations on the device.
      • app_id_android

        public final java.lang.String app_id_android
        Specifies the app's reverse-domain identifier, e.g. 'com.iizix.run.devel'. This name cannot be changed once the app has been published. This name is used to override the Android app ID. This name can be null, in which case the default "app_id" is used instead.
      • app_id_ios

        public final java.lang.String app_id_ios
        Specifies the app's reverse-domain identifier, e.g. 'com.iizix.run.devel'. This name cannot be changed once the app has been published. This name is used to override the iOS app ID. This name can be null, in which case the default "app_id" is used instead.
      • app_id_windows

        public final java.lang.String app_id_windows
        Specifies the app's reverse-domain identifier, e.g. 'com.iizix.run.devel'. This name cannot be changed once the app has been published. This name is used to override the Windows app ID. This name can be null, in which case the default "app_id" is used instead.
      • windows_publisher_id

        public final java.lang.String windows_publisher_id
        The windows publisher ID as e.g. "CN=6920B79C-CBA3-4690-AFF5-2009140DBCE7".
      • windows_store_identity_name

        public final java.lang.String windows_store_identity_name
        The Windows Store identity name, e.g. "NexumTechnologies.56143987FFAF6".
    • Constructor Detail

      • RuntimeBuilderSettings

        public RuntimeBuilderSettings​(RuntimeBuilderProps pc)
        The constructor.
        Parameters:
        pc - The runtime builder properties container.
    • Method Detail

      • verify

        public void verify​(boolean isDesigner,
                           boolean doCheckAll,
                           java.io.File projectDir,
                           java.util.Set<java.lang.String> textTableIDs,
                           java.util.ArrayList<BuilderError> errors)
        Performs verification of the settings.
        Parameters:
        isDesigner - Flag for Designer.
        doCheckAll - Final check-all verification to also check URL's etc.
        projectDir - The project directory (for Eclipse, for Remote Server it is null.
        textTableIDs - Text table IDs required, null for no checking.
        errors - The errors array to fill in.
      • getOutputDirectory

        public java.io.File getOutputDirectory()
        Gets the output directory where to place the builds.
        Returns:
        The directory, it might not to be present, but the parent directory is.
      • getLocalizedString

        public java.lang.String getLocalizedString​(PlainKString pks,
                                                   java.lang.String languageCode)
        Resolves a PlainKString that refers to the text table with the specified language code.
        Parameters:
        pks - The plain KString.
        languageCode - The language code supported by the application, null for default English or if language code is not found.
        Returns:
        The localized String.

        Note: If the text fails to resolve, a severe error is logged, and the original raw string is returned instead.

      • getAssetsSubdirectory

        public java.io.File getAssetsSubdirectory()
        Gets the projects subdirectory in the Assets folder.
        Returns:
        The directory, or null if not verified.
      • hasAndroidKeyStore

        public boolean hasAndroidKeyStore​(boolean isRelease)
        Checks for presence of Android keystore of debug or release type.
        Parameters:
        isRelease - true for release, false for debug.
        Returns:
        true if created, false otherwise.
      • hasAndroidKeyStore

        public static boolean hasAndroidKeyStore​(RuntimeBuilderProps props,
                                                 boolean isRelease)
        Checks for presence of Android keystore of debug or release type.
        Parameters:
        props - The runtime builder properties.
        isRelease - true for release, false for debug.
        Returns:
        true if created, false otherwise.
      • getAndroidDebugAlias

        public static java.lang.String getAndroidDebugAlias()
        Gets the Android debug code alias in the keystore ("androiddebugkey").
        Returns:
        The alias "androiddebugkey".
      • getAndroidReleaseAlias

        public static java.lang.String getAndroidReleaseAlias()
        Gets the Android release code alias in the keystore ("iizi").
        Returns:
        The alias "iizi".
      • getAndroidDebugPassword

        public static java.lang.String getAndroidDebugPassword()
        Gets the Android debug code signing password.
        Returns:
        The password "android".
      • getAndroidReleasePassword

        public java.lang.String getAndroidReleasePassword()
        Gets the Android release code signing password.
        Returns:
        The password, null if no code signing is configured.
      • getAndroidReleasePassword

        public static java.lang.String getAndroidReleasePassword​(RuntimeBuilderProps props)
        Gets the Android release code signing password.
        Parameters:
        props - The runtime builder properties.
        Returns:
        The password, null if no code signing is configured.
      • getAndroidDebugOwner

        public static javax.security.auth.x500.X500Principal getAndroidDebugOwner()
        Gets the Android Debug owner for signing apps.
        Returns:
        The Android owner.
      • getAndroidCertificateOwner

        public javax.security.auth.x500.X500Principal getAndroidCertificateOwner()
                                                                          throws java.lang.Exception
        Gets the Android app owner used when signing release APK's, an X.500 principal used for certificate creation.
        Returns:
        The principal.
        Throws:
        java.lang.Exception - For errors.
      • generateAndroidDebugKeyStore

        public java.io.File generateAndroidDebugKeyStore​(java.io.File assetsDir)
                                                  throws java.security.InvalidKeyException,
                                                         java.security.NoSuchAlgorithmException,
                                                         java.security.NoSuchProviderException,
                                                         java.lang.IllegalStateException,
                                                         java.security.SignatureException,
                                                         java.security.KeyStoreException,
                                                         java.security.cert.CertificateException,
                                                         java.io.IOException,
                                                         PropException
        Generates the Android debug key store and saves it to the properties.
        Parameters:
        assetsDir - The directory where the project Assets are located, to write the android-debug.p12 file into. If null, no such PKCS#12 file is created.
        Returns:
        "The keystore.p12" file name written, null for none.
        Throws:
        java.io.IOException - For I/O errors.
        java.security.cert.CertificateException - If any of the certificates in the keystore could not be saved.
        java.security.NoSuchAlgorithmException - If the algorithm used to check the integrity of the keystore cannot be found.
        java.security.KeyStoreException - If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
        java.security.SignatureException - If the signature is in error.
        java.lang.IllegalStateException - If the state is invalid to generate a keystore.
        java.security.NoSuchProviderException - If no provider for the certificate is available.
        java.security.InvalidKeyException - If the key in invalid.
        PropException - If there is a Property Exception.
      • generateAndroidDebugKeyStore

        public static java.io.File generateAndroidDebugKeyStore​(RuntimeBuilderProps props,
                                                                java.io.File assetsDir)
                                                         throws java.security.InvalidKeyException,
                                                                java.security.NoSuchAlgorithmException,
                                                                java.security.NoSuchProviderException,
                                                                java.lang.IllegalStateException,
                                                                java.security.SignatureException,
                                                                java.security.KeyStoreException,
                                                                java.security.cert.CertificateException,
                                                                java.io.IOException,
                                                                PropException
        Generates the Android debug key store and saves it to the properties.
        Parameters:
        props - The runtime builder properties.
        assetsDir - The directory where the project Assets are located, to write the android-debug.p12 file into. If null, no such PKCS#12 file is created.
        Returns:
        "The keystore.p12" file name written, null for none.
        Throws:
        java.io.IOException - For I/O errors.
        java.security.cert.CertificateException - If any of the certificates in the keystore could not be saved.
        java.security.NoSuchAlgorithmException - If the algorithm used to check the integrity of the keystore cannot be found.
        java.security.KeyStoreException - If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
        java.security.SignatureException - If the signature is in error.
        java.lang.IllegalStateException - If the state is invalid to generate a keystore.
        java.security.NoSuchProviderException - If no provider for the certificate is available.
        java.security.InvalidKeyException - If the key in invalid.
        PropException - If there is a Property Exception.
      • generateAndroidReleaseKeyStore

        public java.io.File generateAndroidReleaseKeyStore​(javax.security.auth.x500.X500Principal owner,
                                                           java.io.File assetsDir)
                                                    throws java.security.InvalidKeyException,
                                                           java.security.NoSuchAlgorithmException,
                                                           java.security.NoSuchProviderException,
                                                           java.lang.IllegalStateException,
                                                           java.security.SignatureException,
                                                           java.security.KeyStoreException,
                                                           java.security.cert.CertificateException,
                                                           java.io.IOException,
                                                           PropException
        Generates the Android release key store and saves it to the properties.
        Parameters:
        owner - The certificate owner.
        assetsDir - The directory where the project Assets are located, to write the android-release.p12 file into. If null, no such PKCS#12 file is created.
        Returns:
        "The keystore.p12" file name written, null for none.
        Throws:
        java.io.IOException - For I/O errors.
        java.security.cert.CertificateException - If any of the certificates in the keystore could not be saved.
        java.security.NoSuchAlgorithmException - If the algorithm used to check the integrity of the keystore cannot be found.
        java.security.KeyStoreException - If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
        java.security.SignatureException - If the signature is in error.
        java.lang.IllegalStateException - If the state is invalid to generate a keystore.
        java.security.NoSuchProviderException - If no provider for the certificate is available.
        java.security.InvalidKeyException - If the key in invalid.
        PropException - If there is a Property Exception.
      • generateAndroidReleaseKeyStore

        public static java.io.File generateAndroidReleaseKeyStore​(RuntimeBuilderProps props,
                                                                  javax.security.auth.x500.X500Principal owner,
                                                                  java.io.File assetsDir)
                                                           throws java.security.InvalidKeyException,
                                                                  java.security.NoSuchAlgorithmException,
                                                                  java.security.NoSuchProviderException,
                                                                  java.lang.IllegalStateException,
                                                                  java.security.SignatureException,
                                                                  java.security.KeyStoreException,
                                                                  java.security.cert.CertificateException,
                                                                  java.io.IOException,
                                                                  PropException
        Generates the Android release key store and saves it to the properties.
        Parameters:
        props - The runtime builder properties.
        owner - The certificate owner.
        assetsDir - The directory where the project Assets are located, to write the android-release.p12 file into. If null, no such PKCS#12 file is created.
        Returns:
        "The keystore.p12" file name written, null for none.
        Throws:
        java.io.IOException - For I/O errors.
        java.security.cert.CertificateException - If any of the certificates in the keystore could not be saved.
        java.security.NoSuchAlgorithmException - If the algorithm used to check the integrity of the keystore cannot be found.
        java.security.KeyStoreException - If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
        java.security.SignatureException - If the signature is in error.
        java.lang.IllegalStateException - If the state is invalid to generate a keystore.
        java.security.NoSuchProviderException - If no provider for the certificate is available.
        java.security.InvalidKeyException - If the key in invalid.
        PropException - If there is a Property Exception.
      • writeAndroidKeyStore

        public java.lang.String writeAndroidKeyStore​(java.io.File file,
                                                     boolean isRelease)
                                              throws NotFoundException,
                                                     java.security.KeyStoreException,
                                                     java.security.NoSuchAlgorithmException,
                                                     java.security.cert.CertificateException,
                                                     java.io.IOException
        Writes an Android KeyStore to file.
        Parameters:
        file - Destination file for a PKCS#12 KeyStore (i.e. "file-name.p12").
        isRelease - The release KeyStore when true, debug when false.
        Returns:
        The password for the keystore.
        Throws:
        NotFoundException - If properties are not found.
        java.io.IOException - For I/O errors.
        java.security.cert.CertificateException - If any of the certificates in the keystore could not be saved.
        java.security.NoSuchAlgorithmException - If the algorithm used to check the integrity of the keystore cannot be found.
        java.security.KeyStoreException - If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
      • writeAndroidKeyStore

        public static java.lang.String writeAndroidKeyStore​(RuntimeBuilderProps props,
                                                            java.io.File file,
                                                            boolean isRelease)
                                                     throws NotFoundException,
                                                            java.security.KeyStoreException,
                                                            java.security.NoSuchAlgorithmException,
                                                            java.security.cert.CertificateException,
                                                            java.io.IOException
        Writes an Android KeyStore to file.
        Parameters:
        props - The runtime builder properties.
        file - Destination file for a PKCS#12 KeyStore (i.e. "file-name.p12").
        isRelease - The release KeyStore when true, debug when false.
        Returns:
        The password for the keystore.
        Throws:
        NotFoundException - If properties are not found.
        java.io.IOException - For I/O errors.
        java.security.cert.CertificateException - If any of the certificates in the keystore could not be saved.
        java.security.NoSuchAlgorithmException - If the algorithm used to check the integrity of the keystore cannot be found.
        java.security.KeyStoreException - If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
      • getTextTable

        public TextTable getTextTable()
        Gets the text table.
        Returns:
        The text table used, null for none.
      • getDerivedTextTables

        public TextTable[] getDerivedTextTables()
        Gets all tables in all open projects that derives from this text table.

        In runtime, this method returns an empty array!

        Returns:
        An array of all derived tables, in runtime always empty, only defined in the Designer!
      • isInternalBuild

        public boolean isInternalBuild()
        Checks for internal build.
        Returns:
        true if internal build, false for external.