Skip to content

OEM white-label mobile builds

Original equipment manufacturer (OEM) partners can ship white-label builds of Profinity Mobile with their own branding and bundle identifiers.

The Profinity Mobile source package includes the build guide (BUILD.md) and the white-label guide (WHITE-LABEL.md), which list the prerequisites for building:

  • Node.js 22.11 or later and npm for every build.
  • macOS with Xcode 16 or later and CocoaPods for iOS.
  • Android Studio with SDK platform API 26 or later and JDK 17 for Android.

Branding configuration

OEM partners rebrand the app by editing the build-time file app.config.yaml, which Prohelion supplies with the Profinity Mobile source code and the branding assets, and then building signed iOS and Android binaries. The file holds these fields:

Field Description
appName Display name on the splash screen and in the app stores
companyName Subtitle on the splash screen
primaryColor Action colour for buttons and badges
navBackground Navigation and toolbar background colour
secondaryColor Muted text colour
brandRed Accent colour of the Profinity logo
splashLogo, landingLogo and appIcon Paths to the splash logo, the landing page logo and the app icon source artwork
development.androidEmulatorHostConnect Set to true only for development builds that connect an Android emulator to a Profinity server on the host machine
discovery.profinityHeartbeatPort Must match the Heartbeat UDP port on the Profinity server (default 49025)
discovery.profinityHeartbeatVersion The Profinity product version that the heartbeat is expected to report, set to 2.3 for Profinity 2.3
discovery.staleTimeoutMs Time in milliseconds after which a server that has not been seen is removed from the discovery list

The iOS bundle identifier and the Android application identifier are set in the native projects, and each OEM sets them to its own namespace. The npm run configure command regenerates the application configuration from app.config.yaml, and npm run setup and npm run validate run it automatically. The app build regenerates the launcher icons from the appIcon artwork.

What end users and operators get

End users install the OEM-branded app from the OEM's own store listing, or the OEM installs it on the phones of its service technicians. Server discovery and login behaviour are the same as in standard Profinity Mobile. The app only finds servers whose Heartbeat UDP port matches discovery.profinityHeartbeatPort. A server that uses HTTPS with a self-signed certificate shows the user a certificate prompt on first connection, so install a trusted certificate on the server where the app is deployed to staff. Sign-in through SSO (single sign-on) needs a Profinity site set to the Sso sign-in method.

Refer to the Release notes 2.3 for what changed in this release.