LogoLogo
What's NewDeveloper CommunitySupportStatus
  • 🚀Get Started
    • What is JourneyApps Platform?
    • Tutorial: Build your First App
      • 1. Introduction
      • 2. Create a new App
      • 3. OXIDE IDE Overview
      • 4. Hello World app
      • 5. The Data Model
      • 6. View Components
      • 7. Queries and Data Sync
      • 8. Simple Navigation
      • 9. View Stack
      • 10. Input Validation
      • 11. View Parameters
      • 12. Data Manipulation
      • 13. Responsive Apps
      • 14. Styling
      • 15. Lists
      • 16. GPS Capturing
      • 17. Relationships
      • 18. Multiple User Roles
      • 19. Deployment and Users
      • 20. Version Control
      • 21. CSV and APIs
      • 22. Conclusion
    • JourneyApps Platform Fundamentals
      • Creating a New App
        • Git-enabled Apps
      • What are Views?
      • What is the Data Model?
      • JourneyApps Syntax Basics
      • Access the Database (DB)
        • Manipulate DB Objects
        • Query DB Objects
      • View Navigation
        • Deep Linking
      • CloudCode Overview
      • OXIDE (Online IDE)
  • 💻Build your App
    • JourneyApps Syntax
      • Syntax Basics
      • Access the DB
      • View Navigation
      • Async & Await
      • TypeScript Apps (Beta)
        • runtime-build package
        • TypeScript App Troubleshooting
      • What's New in V4
        • Updating to the V4 API
    • Configure your Data Model
      • What is the data model?
      • Reference: model
        • field
        • belongs-to
        • has-many
        • index
      • Data Rules
        • Data Buckets
        • Sync Rules - Limit data synced to devices
        • Data ACLs - Limit access to data
        • Real-world example for Data Rules
        • ❔FAQs
        • Migrate to Data Rules
      • App Indexes
      • Webhooks
    • UI Components
      • All UI Components
        • actionSheet
        • Attachments
        • button
        • button-group
        • capture-coordinates
          • marker
          • marker-query
        • capture-file
        • capture-photo
        • capture-signature
        • card
          • accent
          • action
        • columns
          • column
        • component
        • context-menu
          • divider
          • item
        • CSV
        • date-input
        • datetime-input
        • dialog
          • body
        • display-3d-model
          • 📖display-3d-model Guides
            • Guide 1: Initialize and layout a 3D model in a view
            • Guide 2: Control playback position
            • Guide 3: Troubleshooting controls
        • display-coordinates
        • display-file
        • display-image
        • display-photo
        • display-signature
        • heading
        • html
          • HTML Advanced Topics
          • ❔HTML FAQs
          • 📖Guide: HTML & JourneyApps iFrame Client
        • icons
        • info
        • info-table
          • row
        • journey.photos (capture multiple photos)
        • JourneyPrinter (print PDFs)
        • grid
          • cell
          • 📖grid Examples
        • list
          • list-item
            • accent
            • asset
            • pills
              • pill
            • action
        • multiple-choice-checklist
        • navigation (Navigation drawer)
          • general-section
            • item
          • section
            • item
              • item
          • ❔navigation FAQs
        • notification
        • object-dropdown
        • object-list
          • action
        • object-repeat
        • object-table
          • action
          • column
            • action
            • edit-boolean
            • edit-date
            • edit-datetime
            • edit-integer
            • edit-number
            • edit-select
            • edit-text
            • edit-time
            • edit-typeahead
              • action
            • header-action
          • column-group
          • empty-action
          • 📖object-table Guides
            • Actions
            • Cell callouts
            • Column groups
            • Columns
            • Controlled object-table
            • Controls
            • Copy & paste data
            • Edit cells
            • Filters
            • Frozen columns
            • Fullscreen object-table
            • Mode
            • State
            • Styles
        • optionList
        • PhotonSync (transfer data offline)
        • power-bi
          • 📖Guide: PowerBI Embedding
        • scan-barcode
        • shortcut
        • sidebar
        • single-choice-dropdown
        • single-choice-radio
        • template
        • text-input
        • time-input
        • toggle
        • view
      • JS/TS Events
      • Show / Hide UI Components
      • View Templates
      • XML Fields (Attributes)
        • align-content
        • align-controls
        • align-label
        • bind
        • clear-button-visibility
        • control-order
        • disabled
        • error-message
        • icon-position
        • id
        • hide-if
        • modifier-text
        • label
        • label-case
        • label-color
        • on-change
        • on-press
        • placeholder
        • required
        • show-if
    • JS / TS APIs
      • Attachment
      • Bluetooth (Beta)
      • Broadcast
      • component
      • CSV
      • DB
      • HardwareBarcode
      • journey
        • journey.config
        • journey.container
        • journey.device
        • journey.diagnostics
        • journey.dialog
        • journey.files
        • journey.hardware
        • journey.photos
        • journey.runtime
        • journey.sensors
        • journey.viewStack
      • JourneyPrinter
      • KeyboardBarcode
      • LocalDB
      • NFC
      • OnlineDB
      • PhotonSync
      • SerialPort
      • ShortcutManager
      • TCPSocket
      • user
    • Extend your App with Custom Code
      • App packages
        • App packages overview
        • PDF report package
        • TypeScript library & unit tests
        • Manage External Dependencies
      • Custom HTML
    • Style & Customize your App
      • Style & configure UI components
        • Overview
        • Understand extendable themes
        • Use themes on a view
        • Theme specific components on a view
        • Examples
        • Debugging
        • ❔FAQs
      • Change your App Font
      • Custom Branding
        • Custom Container Features
        • Special Requirements for iOS Containers
    • Integrate your App
      • Backend integrations with CloudCode
      • Barcode Scanning
        • Barcode Scanning using Keyboard Emulation
        • Hardware Barcode Scanning
        • scan-barcode
      • Bluetooth Low Energy (BLE)
      • Broadcast API
      • HTTP requests (Fetch API)
      • JourneyApps Print (Android)
      • Maps and navigation
      • NFC
      • Opening external links/apps
      • Serial Port
      • TCP Sockets
    • Design Intuitive Apps
      • UX Guidelines
      • Write Effective Copy
  • 📱App Features
    • RealWear® Voice Control
      • Automatic Voice Commands
        • Automatic Voice Commands - Advanced
      • Manual Voice Commands
    • App, Runtime and Container Updates
    • Batch Operations (App)
    • Call JS/TS Functions from XML
    • Capture GPS Locations
    • Push Notifications
    • Translations
    • XML Format Strings
    • Webhooks (External)
  • 🌐CloudCode
    • CloudCode Overview
    • Trigger a CloudCode Task
      • Trigger CC with a Schedule
      • Trigger CC via a Webhook
      • Trigger CC from an App
      • Trigger CC from Another Task
      • Trigger CC via HTTP
    • Attachments in CloudCode
    • Timezones
    • Advanced CloudCode Topics
      • Access Multiple DBs in CloudCode Tasks
      • Batch API (CloudCode)
      • CloudCode Dependencies
      • Configure HTTPS in CloudCode
      • Deployment environment variables
      • Local CloudCode Development
      • PDF Reports using CloudCode
      • Shared CloudCode Tasks
      • Translations in CloudCode
  • 📥Backend API
    • Introduction
    • API Reference
      • Retrieve All Objects
      • Query Objects
      • Sort Results
      • Limit and Skip
      • Count Objects
      • Create a New Object
      • Retrieve a Single Object
      • Update a Single Object
      • Delete a Single Object
      • Batch Operations (v4 API)
      • Oplog API
      • Retrieve the App Data Model
      • Manage App Users and Sessions
      • Field Representation
      • Error Responses
    • API Limits
    • Update to the V4 API
  • ⚙️Technical
    • Data Synchronization Priority
    • Device Diagnostics
    • JSON1 Query Engine
    • Improve App Performance
    • Security Measures
    • Supported Platforms
      • Web Container
      • Windows Installer
    • Domain Whitelist
  • 🖥️OXIDE
    • Get started with OXIDE
      • OXIDE Overview
      • Components of OXIDE
    • Configure Testing Deployments
    • Edit and Manage Files
      • How to Navigate to a Function
      • Manage External Dependencies
    • Create and Manage App Containers
    • Debugging & Troubleshooting
      • Common Troubleshooting Pointers
      • App Diagnostics Reports
      • Build Logs
    • OXIDE Workspaces
      • OXIDE Trees
  • ❕Deprecated Features
    • Deprecated Features and Components
Powered by GitBook
On this page
  • Overview
  • Limitations
  • What you need to get started
  • Walkthrough: Create a container for an app
  • General
  • Platforms
  • Features
  • Branding
  • Enrollment
  • Advanced
  • SSO
  • Trigger Container Builds
  • Download and install a Container
  • Long-lived links
  • Build-specific links
  • Troubleshooting
  1. OXIDE

Create and Manage App Containers

PreviousManage External DependenciesNextDebugging & Troubleshooting

Last updated 11 months ago

Overview

Custom Branding

Please familiarize yourself with the section first.

The process to create a custom-branded container in OXIDE can be outlined as follows:

  1. Create a container configuration

    1. Here’s where you define all container-level settings

  2. Select one or more platforms that should share the configured settings

    1. Some platforms have specific settings that also need to be configured (e.g. uploading a provisioning profile for iOS)

    2. Optionally enable/disable container-level features

  3. Trigger builds for each enabled platform

    1. Select a container version

  4. Download and/or distribute the containers

Visually, the main components relate as follows:

Limitations

What you need to get started

Container Icon

Please see below for the requirements for the container icon:

  • A 1024x1024 pixel icon in PNG format, not exceeding 1MB in size.

  • Please note that the app icon should not be transparent nor have an alpha channel

Launch Screen Image

Android limitation

As of container version 22.9.1, Android no longer supports custom launch screen images. This is in accordance with requirements that Android 12 introduced.

Please see below for the requirements for the launch screen image:

  • A 2208x2208 pixel image in PNG format, not exceeding 1MB in size.

  • The launch image typically consists of your company’s full logo (and slogan) on a solid color background. The logo is positioned in the center of the image and is ideally 745 pixels wide.

  • Please note that the launch screen should have no alpha channel.

Walkthrough: Create a container for an app

Click the + icon or trigger the Create container configuration action using the command palette.

What follows is a wizard through all settings that can be configured for a container:

General

Configure general settings for the container, including the Bundle ID and automatically creating new container builds when a new container version becomes available.

  • Bundle ID

    • Uniquely identifies the container on a device

    • Recommended format is xxxx.xxxx.xxxx, e.g. com.orgname.appname, excluding any special characters since platforms have different requirements (see next point).

    • Requirements:

        • It must have at least two segments (one or more periods).

        • Each segment must start with a letter.

        • All characters must be alphanumeric or an underscore [a-zA-Z0-9_].

        • May not contain Java Keywords.

        • Must contain only alphanumeric characters (A–Z, a–z, and 0–9), hyphens (-), and periods (.)

          • Must match the value in the application-identifier value in the provisioning profile if supplied

      • Windows:

        • Must contain only alphanumeric characters (A–Z, a–z, and 0–9) and periods (.)

  • Auto build new versions

  • Enable new features

  • Download link identifier

    • Set an identifier for the configuration that is used in a long-lived link to download the latest versions of a container per platform.

    • The format of these links is https://appinstall.xyz/download/[org-name]-[download-link-identifier]/[platform]

      • Example: https://appinstall.xyz/download/acme-inventory-app/android

Platforms

Select all platforms that you’d like to create a container for and should share the settings defined in this container configuration. Some additional configuration options are specific to certain platforms - these are displayed when a platform is selected.

Due to restrictions of Google Cloud Platform, the Android platform cannot be reenabled after about 30 days of disabling it. To work around this, a new container configuration must be created.

Windows & macOS:

  • Enable debug mode

iOS:

  • Generate unsigned IPA

    • This will skip signing during the build process. If you select this option, you will need to sign the IPA manually before you can install the container.

    • A provisioning profile is required if not checked (i.e. generating a signed build).

  • Provisioning profile

      • A general error notification should appear if the provisioning profile is expired (the ExpirationDate field in the provisioning profile is examined and compared to the current date).

Upload existing private key into OXIDE

Android & RealWear:

  • Enable debug mode

    • This option is only available in version 23.7.1 or greater of the JourneyApps container

Features

Note that some features are only available for certain platforms, and on some container versions.

Branding

Configure the container name, icon and launch screen image.

  • Container name

    • The name displayed with the container icon (e.g. on your device’s app screen). This is typically your app’s name.

  • Container icon

      • Must be a png image with dimensions 1024x1024

  • Launch screen image

      • Must be a png image with dimensions 2208x2208

Enrollment

The fields in this section are optional. Link your container to one of your app’s deployments by entering a Company ID, or customize the URL scheme of the container.

  • Company ID

    • Links the container to one of your app’s deployments

    • Required for SSO

    • When specified, app users will not have to enter the Company ID when signing in with a JourneyApps username and password

  • URL scheme

    • Used by SSO

Advanced

The fields in this section are optional. Configure advanced settings such as enabling exception domains and a proxy for your container.

  • Enable HTTP exception domains

    • Allows access to unsecured domains via HTTP

  • Exception domains

    • List of domains

      • Must be a comma-separated list of domains, e.g. “foo.example.com,foo2.example.com”

  • Enable HTTP proxy

    • Funnel all network traffic through the provided proxy

  • Proxy host

    • Must be a single valid domain e.g. “sub.example.com”

  • Proxy port

    • Must be a number e.g. 9000

SSO

We will notify you when SSO has been configured. At that point, you can go ahead an trigger builds for the container configuration.

Trigger Container Builds

Once a container configuration has been finalized, container builds can be triggered. The build process produces the container that can be installed on a supported device.

Trigger the Create container build action:

  • Select one of your enabled platforms

    • Only your enabled platforms for the container configuration will be shown here.

  • Select a container version

Note: The build process for a container can take a while (typically around 10 or 20 minutes).

The Builds section will list all build processes and includes the build status: in progress, completed, or failed.

Download and install a Container

After a build succeeds, shareable links to download and install the container will become available.

Long-lived links

Build-specific links

Containers can also be downloaded for a specific build. Click on the build artifact button to download it, or right-click to copy a shareable link (note: these links expire within 7 days):

Troubleshooting

The container configuration wizard contains several validations to minimize issues during the build process.

  1. Link to the app where the container was created

  2. The build ID. This can be copied from the build summary by hovering over the ID field:

Only container versions 23.2.1 or greater are supported in OXIDE. Please contact if you require a custom-branded container for a older version.

Configuring SSO for your app is not currently supported in OXIDE. Please see the section below on details to request SSO.

A high-resolution version of the container icon - see for details.

A launch screen image - see for details

For iOS only: Apple requires that the iOS container is signed with a valid distribution certificate. See the section.

The launch screen on Android will show the in a centered position, surrounded by a solid background color. The background color should be specified by providing a 2208x2208 pixel image in PNG format containing a solid color.

Android ():

iOS and macOS ():

This relates to . If enabled, when a new container version becomes available, a new build will be triggered for all included platforms.

If enabled, when new become available, they will automatically be enabled for new builds for supported platforms.

For more details see the section.

When enabled, users can access the

Upload the provisioning profile that you have created for the container using your Apple developer account. See more details in the section.

If your container's provisioning profile was not created using OXIDE's Create iOS container private key CSR action (see for details), the private key associated with the iOS Distribution certificate which is embedded into the provisional profile needs to be uploaded into OXIDE. Trigger the Upload iOS Container private key action to upload it. The private key must be in PEM format.

When enabled, users can access the

Enable or disable , per platform you have selected in the previous section.

For iOS, usage descriptions can also be customized here when a feature that supports these is enabled. See which features support these in the table .

Upload the

Upload the

Used when

SSO configuration for your container needs to be completed by JourneyApps. Please reach out to to request SSO for your container and include the following details from your container configuration:

Bundle ID (from the section)

Company ID (from the section)

A warning will be shown if any of the enabled are not supported in the selected container version.

Developers can configure a long-lived link that can be used to download the latest build per platform in a configuration by specifying a Download link identifier. See the section. Once an identifier for the link has been set, and a build is available, the latest build can be downloaded by clicking on the corresponding platform pill (or right-click to copy a shareable link):

That said, if a build fails, our support team will be able to review its build logs to assist with troubleshooting. Please contact and include the following information:

🖥️
JourneyApps support
Special Requirements for iOS Containers
reference
reference
container features
Special Requirements for iOS Containers
container-level features
opening the container
JourneyApps Support
JourneyApps Support
SSO
below
below
container icon
triggering builds
Download and install a Container
container icon
launch screen image
General
Enrollment
container features
General
Custom Branding
this section
Chrome Developer Console
Chrome Developer Console
here