Class RuntimeBuilderSettings
- Author:
- Christopher Mindus
- Field SummaryFieldsModifier and TypeFieldDescription- final PlainKStringDescriptive text of the app, use text table externalized for multiple languages- final StringSpecifies the app's reverse-domain identifier, e.g.- final StringSpecifies the app's reverse-domain identifier, e.g.- final StringSpecifies the app's reverse-domain identifier, e.g.- final PlainKStringName of the app displayed to the user.- final StringShort name of the app without spaces.- final StringBase text table for iiziRun texts.- final StringThe Assets folder for "icons" and "splash" screens.- final StringEmail to author for app.- final StringWebsite of author for app.- final PlainKStringName of author.- final booleanBuilds the customized iiziRun for Android, default true.- final intWhen build Android for release, this value should be- 1(one) if a Bundle (AAB) should be created,- 0(zero) means an APK, and- 2means BOTH formats.- final booleanBuilds the customized iiziRun for iOS, default true.- final StringSpecifies the address of the Remote iiziRun Builder machine.- final booleanBuild all remotely.- final booleanSecured with TLS.- final intTargets to build: 0=debug, 1=release, 2=both.- final StringFull version number expressed in major.minor.patch notation (default 1.0.0).- final StringCertificate "C": Two letter country code, e.g.- final StringThe Common Name of the author for certificates.- final StringCertificate "L": Locality (city) name, e.g.- final StringCertificate "O": Large organization name, e.g.- final StringCertificate "OU": Small organization name, e.g.- final StringCertificate "ST": State name, e.g.- final intThe operation that are allowed for Deep Linking.- final StringEnables Deep Linking by means of an URL scheme.- final StringDefault locale for the app: "en-US".- final booleanFlag for Firebase Analytics Collection enabled.- final booleanFlag for Firebase Crashlytics Collection enabled.- final booleanFlag for Firebase Performance Collection enabled.- static final String[]Adaptive icon densities for Android.- static final int[]Adaptive icon sizes for Android.- static final String[]The transparent icon names for Android required in the icons directory.- static final String[]The transparent icon names for Common use (Web, etc) required in the icons directory.- static final String[]The opaque icon names for iOS required in the icons directory.- final booleanFlag indicating critical push notifications alerts are enabled, if the user allows it, default false.- final StringThe development team name for Debug builds.- final StringThe development team name for Release builds.- final StringPath to the root of the Java 1.8 to 11 Development Kit.- final StringThe initial password for a default login.- final StringThe initial user name for a default login.- final StringPath where the build output of the customized iiziRun will be placed.- final booleanEnables Barcode Scanner.- final booleanEnables taking pictures and for choosing images from the system's image library.- final booleanEnables fingerprint authentication with Android Fingerprint scanner or iOS Touch ID.- final booleanEnables push notifications, analytics, event tracking, crash reporting and more from Google Firebase.- final booleanEnables flashlight on the device.- final booleanEnables the geolocation functions.- final booleanThis plugin provides the ability to record and play back audio files on a device.- final booleanThis plugin provides access to the device's audio, image, and video capture capabilities.- final booleanEnables you to open OS settings on iOS and Android, e.g.- final booleanEnables simple vibrations on the device.- final booleanEnables advanced Wi-Fi functions.- final RuntimeBuilderPropsThe settings property.- final StringAddress of the iiziServer.- final intServer port number, normally 443 for secure TLS connections (default), otherwise e.g.- final booleanIndicates the server port is configured for secure TLS communication, default true.- final booleanValidates that the server is really present and an iiziServer.- final StringThe iiziServer App Description.- final StringThe iiziServer App ID.- protected TextTableThe text table, null if it comes from a remote party.- static final intCount of icons needed (for wizard to display).- booleanFlag for adaptive bgcolor.xml to be used.
- Constructor SummaryConstructors
- Method SummaryModifier and TypeMethodDescription- static File- generateAndroidDebugKeyStore- (RuntimeBuilderProps props, File assetsDir) Generates the Android debug key store and saves it to the properties.- generateAndroidDebugKeyStore- (File assetsDir) Generates the Android debug key store and saves it to the properties.- static File- generateAndroidReleaseKeyStore- (RuntimeBuilderProps props, X500Principal owner, File assetsDir) Generates the Android release key store and saves it to the properties.- generateAndroidReleaseKeyStore- (X500Principal owner, File assetsDir) Generates the Android release key store and saves it to the properties.Gets the Android app owner used when signing release builds, an X.500 principal used for certificate creation.- static StringGets the Android debug code alias in the keystore ("androiddebugkey").- static X500PrincipalGets the Android Debug owner for signing apps.- static StringGets the Android debug code signing password.- static StringGets the Android release code alias in the keystore ("iizi").Gets the Android release code signing password.- static StringGets the Android release code signing password.Gets the projects subdirectory in the Assets folder.Gets all tables in all open projects that derives from this text table.- getLocalizedString- (PlainKString pks, String languageCode) Resolves a PlainKString that refers to the text table with the specified language code.Gets the output directory where to place the builds.Gets the text table.- boolean- hasAndroidKeyStore- (boolean isRelease) Checks for presence of Android keystore of debug or release type.- static boolean- hasAndroidKeyStore- (RuntimeBuilderProps props, boolean isRelease) Checks for presence of Android keystore of debug or release type.- booleanChecks for internal build.- void- verify- (boolean isDesigner, boolean doCheckAll, File projectDir, Set<String> textTableIDs, ArrayList<BuilderError> errors) Performs verification of the settings.- static String- writeAndroidKeyStore- (RuntimeBuilderProps props, File file, boolean isRelease) Writes an Android KeyStore to file.- writeAndroidKeyStore- (File file, boolean isRelease) Writes an Android KeyStore to file.
- Field Details- ICONS_COMMONThe transparent icon names for Common use (Web, etc) required in the icons directory.
- ICONS_ANDROID_STANDARDThe transparent icon names for Android required in the icons directory.
- ICONS_ANDROID_ADAPTIVE_SIZEpublic static final int[] ICONS_ANDROID_ADAPTIVE_SIZEAdaptive icon sizes for Android.
- ICONS_ANDROID_ADAPTIVE_DENSITYAdaptive icon densities for Android.
- ICONS_IOSThe opaque icon names for iOS required in the icons directory.- Note that there are TWO names that begins with "ios/" and needs a subdirectory. These icons are not square. 
- TOTAL_ICONS_COUNTpublic static final int TOTAL_ICONS_COUNTCount of icons needed (for wizard to display).
- propsThe settings property.
- build_versionFull version number expressed in major.minor.patch notation (default 1.0.0).
- build_androidpublic final boolean build_androidBuilds the customized iiziRun for Android, default true.
- build_android_releasepublic final int build_android_releaseWhen build Android for release, this value should be- 1(one) if a Bundle (AAB) should be created,- 0(zero) means an APK, and- 2means BOTH formats. Please note that it takes almost twice the time to build both formats.- Android App Bundles (AAB) is a publishing format and you can't install the AAB file on a device, only APK files. 
- build_iospublic final boolean build_iosBuilds the customized iiziRun for iOS, default true.
- build_target_typespublic final int build_target_typesTargets to build: 0=debug, 1=release, 2=both. Please note that it takes almost twice the time to produce both build types, and when combined for both Android AAB and APK formats for the release version, it will take about three times longer.
- build_remoteSpecifies the address of the Remote iiziRun Builder machine. Format is 'addr:port'. All communication is done over secured TLS connections.
- build_remote_tlspublic final boolean build_remote_tlsSecured with TLS.
- build_remote_allpublic final boolean build_remote_allBuild all remotely.
- app_idSpecifies the app's reverse-domain identifier, e.g. 'com.iizix.run.devel'. This name cannot be changed once the app has been published.
- app_nameShort name of the app without spaces. This name cannot be localized. This name cannot be changed once the app has been published.
- default_localeDefault locale for the app: "en-US".
- app_textTableBase text table for iiziRun texts. When multiple languages are used, this is the base language text file.
- textTableThe text table, null if it comes from a remote party.
- assets_folderThe Assets folder for "icons" and "splash" screens.
- app_locNameName 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_descrDescriptive text of the app, use text table externalized for multiple languages
- author_nameName of author. Use text table to localize name.
- author_emailEmail to author for app.
- author_hrefWebsite of author for app.
- cert_CNThe Common Name of the author for certificates. If unspecified, it is the author's name in the default language (English). This is only used for Android.
- cert_OCertificate "O": Large organization name, e.g. "Onizuka, Inc.". If unspecified, it is the author's name in the default language (English). This is only used for Android.
- cert_OUCertificate "OU": Small organization name, e.g. "Purchasing". This is only used for Android.
- cert_LCertificate "L": Locality (city) name, e.g. "Palo Alto". This is only used for Android.
- cert_STCertificate "ST": State name, e.g. "California". This is only used for Android.
- cert_CCertificate "C": Two letter country code, e.g. "CH". This is only used for Android.
- server_addrAddress of the iiziServer. 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_portpublic final int server_portServer port number, normally 443 for secure TLS connections (default), otherwise e.g. 80 for unsecure connections.
- server_securepublic final boolean server_secureIndicates the server port is configured for secure TLS communication, default true.
- server_validatepublic final boolean server_validateValidates that the server is really present and an iiziServer. This is done in order to ensure that the server settings are correct. Default is true.
- srv_app_idThe iiziServer App ID. This value MUST be specified and VALID.
- srv_app_descrThe iiziServer App Description.- nullor 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_userThe 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_passwordThe initial password for a default login.- The default is "iiziRun Developer" with "secret" password. 
- deepLink_urlschemeEnables 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.- nullmeans not enabled.
- deepLink_oppublic final int deepLink_opThe 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_pathPath where the build output of the customized iiziRun will be placed. The default is the directory 'iiziRun' in the module project.
- jdk_pathPath to the root of the Java 1.8 to 11 Development Kit. The default will attempt to use the Eclipse settings.
- plugin_camerapublic final boolean plugin_cameraEnables taking pictures and for choosing images from the system's image library.
- plugin_firebasepublic final boolean plugin_firebaseEnables push notifications, analytics, event tracking, crash reporting and more from Google Firebase.
- plugin_geolocationpublic final boolean plugin_geolocationEnables the geolocation functions.- Enabled by default. 
- plugin_mediapublic final boolean plugin_mediaThis plugin provides the ability to record and play back audio files on a device.
- plugin_media_capturepublic final boolean plugin_media_captureThis 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_native_settingspublic final boolean plugin_native_settingsEnables you to open OS settings on iOS and Android, e.g. allow you to open the keyboard settings, Wi-Fi, bluetooth, etc.
- plugin_fingerprintpublic final boolean plugin_fingerprintEnables fingerprint authentication with Android Fingerprint scanner or iOS Touch ID.
- plugin_vibrationpublic final boolean plugin_vibrationEnables simple vibrations on the device.
- plugin_barcode_scannerpublic final boolean plugin_barcode_scannerEnables Barcode Scanner.
- plugin_wifipublic final boolean plugin_wifiEnables advanced Wi-Fi functions.
- plugin_flashlightpublic final boolean plugin_flashlightEnables flashlight on the device.
- app_id_androidSpecifies 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.
- useAdaptiveBGColorpublic boolean useAdaptiveBGColorFlag for adaptive bgcolor.xml to be used.
- app_id_iosSpecifies 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.
- iOS_criticalAlertspublic final boolean iOS_criticalAlertsFlag indicating critical push notifications alerts are enabled, if the user allows it, default false.
- iOS_debug_developmentTeamThe development team name for Debug builds.
- iOS_release_developmentTeamThe development team name for Release builds.
- fb_analyticsCollectionpublic final boolean fb_analyticsCollectionFlag for Firebase Analytics Collection enabled.
- fb_performanceCollectionpublic final boolean fb_performanceCollectionFlag for Firebase Performance Collection enabled.
- fb_crashlyticsCollectionpublic final boolean fb_crashlyticsCollectionFlag for Firebase Crashlytics Collection enabled.
 
- Constructor Details- RuntimeBuilderSettingsThe constructor.- Parameters:
- pc- The runtime builder properties container.
 
 
- Method Details- verifypublic void verify- (boolean isDesigner, boolean doCheckAll, File projectDir, Set<String> textTableIDs, 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.
 
- getOutputDirectoryGets the output directory where to place the builds.- Returns:
- The directory, it might not to be present, but the parent directory is.
 
- getLocalizedStringResolves 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. 
 
- getAssetsSubdirectoryGets the projects subdirectory in the Assets folder.- Returns:
- The directory, or null if not verified.
 
- hasAndroidKeyStorepublic 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.
 
- hasAndroidKeyStoreChecks 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.
 
- getAndroidDebugAliasGets the Android debug code alias in the keystore ("androiddebugkey").- Returns:
- The alias "androiddebugkey".
 
- getAndroidReleaseAliasGets the Android release code alias in the keystore ("iizi").- Returns:
- The alias "iizi".
 
- getAndroidDebugPasswordGets the Android debug code signing password.- Returns:
- The password "android".
 
- getAndroidReleasePasswordGets the Android release code signing password.- Returns:
- The password, null if no code signing is configured.
 
- getAndroidReleasePasswordGets the Android release code signing password.- Parameters:
- props- The runtime builder properties.
- Returns:
- The password, null if no code signing is configured.
 
- getAndroidDebugOwnerGets the Android Debug owner for signing apps.- Returns:
- The Android owner.
 
- getAndroidCertificateOwnerGets the Android app owner used when signing release builds, an X.500 principal used for certificate creation.- Returns:
- The principal.
- Throws:
- Exception- For errors.
 
- generateAndroidDebugKeyStorepublic File generateAndroidDebugKeyStore- (File assetsDir) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, IllegalStateException, SignatureException, KeyStoreException, CertificateException, 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:
- IOException- For I/O errors.
- CertificateException- If any of the certificates in the keystore could not be saved.
- NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
- SignatureException- If the signature is in error.
- IllegalStateException- If the state is invalid to generate a keystore.
- NoSuchProviderException- If no provider for the certificate is available.
- InvalidKeyException- If the key in invalid.
- PropException- If there is a Property Exception.
 
- generateAndroidDebugKeyStorepublic static File generateAndroidDebugKeyStore- (RuntimeBuilderProps props, File assetsDir) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, IllegalStateException, SignatureException, KeyStoreException, CertificateException, 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:
- IOException- For I/O errors.
- CertificateException- If any of the certificates in the keystore could not be saved.
- NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
- SignatureException- If the signature is in error.
- IllegalStateException- If the state is invalid to generate a keystore.
- NoSuchProviderException- If no provider for the certificate is available.
- InvalidKeyException- If the key in invalid.
- PropException- If there is a Property Exception.
 
- generateAndroidReleaseKeyStorepublic File generateAndroidReleaseKeyStore- (X500Principal owner, File assetsDir) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, IllegalStateException, SignatureException, KeyStoreException, CertificateException, 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:
- IOException- For I/O errors.
- CertificateException- If any of the certificates in the keystore could not be saved.
- NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
- SignatureException- If the signature is in error.
- IllegalStateException- If the state is invalid to generate a keystore.
- NoSuchProviderException- If no provider for the certificate is available.
- InvalidKeyException- If the key in invalid.
- PropException- If there is a Property Exception.
 
- generateAndroidReleaseKeyStorepublic static File generateAndroidReleaseKeyStore- (RuntimeBuilderProps props, X500Principal owner, File assetsDir) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, IllegalStateException, SignatureException, KeyStoreException, CertificateException, 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:
- IOException- For I/O errors.
- CertificateException- If any of the certificates in the keystore could not be saved.
- NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
- SignatureException- If the signature is in error.
- IllegalStateException- If the state is invalid to generate a keystore.
- NoSuchProviderException- If no provider for the certificate is available.
- InvalidKeyException- If the key in invalid.
- PropException- If there is a Property Exception.
 
- writeAndroidKeyStorepublic String writeAndroidKeyStore- (File file, boolean isRelease) throws NotFoundException, KeyStoreException, NoSuchAlgorithmException, CertificateException, 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.
- IOException- For I/O errors.
- CertificateException- If any of the certificates in the keystore could not be saved.
- NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
 
- writeAndroidKeyStorepublic static String writeAndroidKeyStore- (RuntimeBuilderProps props, File file, boolean isRelease) throws NotFoundException, KeyStoreException, NoSuchAlgorithmException, CertificateException, 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.
- IOException- For I/O errors.
- CertificateException- If any of the certificates in the keystore could not be saved.
- NoSuchAlgorithmException- If the algorithm used to check the integrity of the keystore cannot be found.
- KeyStoreException- If no Provider supports a KeyStoreSpi implementation for the PKCS#12 type.
 
- getTextTableGets the text table.- Returns:
- The text table used, null for none.
 
- getDerivedTextTablesGets 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!
 
- isInternalBuildpublic boolean isInternalBuild()Checks for internal build.- Returns:
- true if internal build, false for external.